(57)【要約】 【課題】暗号化・復号化のための計算時間を低減し、パケットの紛失等しても回復することができ、効率的なパケット暗号化方法を提供する。【解決手段】Ｓベクトルを生成する工程と、シーケンスナンバーをセットする工程と、第１の変数をセットする工程と、第２の変数をセットする工程と、バイトシーケンスナンバーをセットする工程と、第２の変数とバイトシーケンスナンバーとから第３の変数を計算する工程と、バイトシーケンスナンバーをインクリメントする工程と、第１の変数に、第３の変数によるＳベクトル内の値を加算して第４の変数を計算する工程と、第３の変数と第４の変数によるＳベクトル内の値に基づいて暗号化バイトを特定する工程と、排他的論理和をとり、バイトを生成する工程とを包含する。【選択図】図３
2007140566.tif 000002
【特許請求の範囲】
【請求項１】
平文の少なくとも１つのバイトを暗号化して、暗号文の少なくとも１つのバイトを生成する方法であって、該方法は、
秘密鍵を選択して、標準暗号化方法に従ってＳベクトルを生成する工程と、
シーケンスナンバーをセットする工程であって、該シーケンスナンバーは、第１の部分と第２の部分とを有する、工程と、
該シーケンスナンバーの第１の部分として第１の変数をセットする工程と、
該シーケンスナンバーの該第２の部分として第２の変数をセットする工程と、
バイトシーケンスナンバーをセットする工程と、
該第２の変数と該バイトシーケンスナンバーとの合計として第３の変数を計算する工程と、
該バイトシーケンスナンバーを１つずつインクリメントする工程と、
該第１の変数に、該第３の変数により示されるＳベクトル内の値を加算することにより、第４の変数を計算する工程と、
暗号化バイトを特定する工程であって、該Ｓベクトル内の該暗号化バイトの位置は、該第３の変数と該第４の変数によって示される該Ｓベクトル内の値との合計によって示される、工程と、
該暗号化バイトは、平文の少なくとも１つのバイトと排他的論理和をとり、暗号文の少なくとも１つのバイトを生成する工程と
を包含する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、電気通信伝送、特に、伝送中に紛失および／または順序が狂って送達されるパケットのストリームに関する演算処理が効率的なパケット暗号化方法に関する。
【背景技術】
【０００２】
（問題）
パケット伝送の分野において、暗号化セキュリティを高めて、伝送されたパケットを、承認されないデバイスが傍受および復号化することを防ぎ、他方、平文を暗号化および復号化する演算処理時間を増加させないパケット暗号化方法を提供することが問題である。パケット伝送の分野における第２の問題は、パケットのシーケンスを宛先で組立て直し、他方、パケットストリームを復号化および組立て直すために受信器が過度の時間を要求しないパケット暗号化方法を提供することである。第３の問題は、紛失または順序が狂ったパケットが存在する状態において、受信されたパケットの復号化を同期化することである。
【０００３】
有線または無線の両方のパケット交換において、平文のパケットは、ネットワークを介してソースから宛先へ送信される。パケットは、パケットアセンブラ／ディスアセンブラによって、平文の個々のパケットに組立てられ、および組立て直される。各パケットは、一意に定まる識別番号、すなわちシーケンスナンバーを有し、各パケットは、３つの基本要素、すなわち、ヘッダ、ペイロード、および任意にトレイラを含む。ヘッダは、シーケンスナンバー、同期ビット、宛先アドレス、ソースアドレス、パケット長さといった制御情報（ｃｏｎｔｒｏｌ  ｉｎｆｏｒｍａｔｉｏｎ）を含む。ペイロードは、伝送される平文であり、トレイラはパケットフラグの端ならびに誤り検出ビットおよび誤り訂正ビットを含む。
【０００４】
パケット交換ネットワーク上で伝送するために、媒体ストリームは「パケット」に分解される。各パケットは、ネットワークを介して、利用可能なノードを通って宛先に移動し、帯域幅が伝送のために利用可能になると、ノードからノードへ伝送される。宛先ノードにおいて、パケットを元の連続するストリームに分解する試みがなされる。パケットは、異なったルートをたどるネットワーク該Ｓベクトル内の該次の連続的暗号化バイトＥを介して移動するので、宛先において、順序が狂った状態で到着することがよくある。他のパケットは、ネットワーク内で紛失され得る。紛失したパケットおよび／または順序が狂った状態で受信されるパケットの伝送し直しをリクエストし、パケットを元の連続するメッセージに分解するために、宛先において、さらなる処理時間が要求される。
【０００５】
パケット伝送の分野において、２つの暗号化方法、すなわち、ＲＣ４およびＷＥＰ（Ｗｉｒｅｄ  Ｅｑｕｉｖａｌｅｎｃｙ  Ｐｒｉｖａｃｙ）が一般的に用いられる。ＲＣ４は、ＣＤＰＤ（Ｃｅｌｌｕｌａｒ  Ｄｅｇｉｔａｌ  Ｐａｃｋｅｔ  Ｄａｔａ）で支援される暗号化方法であり、ＷＥＰは、ＩＥＥＥ８０２．１１標準規格により支援される暗号化方法である。電気電子技術者協会（ＩＥＥＥ）は、ローカルエリアネットワーク（ＬＡＮ）で用いられるもの、８０２シリーズの標準規格を含む、多くの電気通信および演算処理の標準規格化を担う団体である。ＩＥＥＥ８０２パート１１ｂ（８０２．１１ｂ）は、普通、ＬＡＮの構築において益々一般的になる無線のために用いられる。
【０００６】
ＷＥＰおよびＲＣ４は、「ストリーム型」暗号であり、ソースにおいて、ランダムな暗号化バイトの文字列を生成し、これらの文字列の全ては平文バイトと論理和をとり、暗号文を形成する。逆に、暗号文は、同じ暗号化ストリームと排他的論理和をとり得、宛先で平文を復元（ｒｅｓｔｏｒｅ）する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
（ＲＣ４暗号化方法）
ＲＣ４は、単一ストリーム生成器、非常に長いストリームの生成器として開始から終了まで動作する。ＲＣ４は、暗号化方法内でパケットシーケンスナンバーを用いない。その代わりに、ペイロード平文の次のバイトのシーケンスが用いられる。換言すると、各バイトの暗号化／復号化は、ストリーム全体の中のバイトの位置に依存する。ＲＣ４は、２５６バイトまでの鍵を用いて、２５６バイトのＳベクトルを生成する。このＳベクトルは、ペイロード平文の各連続的なバイトを逐次的に暗号化する。Ｓベクトルアルゴリズムは、２つの変数を用い、Ｓベクトルは、各バイトが暗号化された後に並べ換えられ、従って、各暗号化ストリームの値は、すでに暗号化または復号化されたペイロードバイトの数に依存する。従って、Ｓベクトルは、時間の経過とともに進化し、ＲＣ４を再同期化することを非実用的にする。
【０００８】
ペイロード平文のバイトの全てが暗号化されると、暗号文は、パケットに組立てられ、ヘッダおよびトレイラは、伝送用に各パケットに付加される。問題は、データのパケットが伝送中に紛失されるときに起こる。宛先は、パケットが紛失されたこと（まだ受信されていないこと）を知る。なぜなら、各ヘッダはシーケンスナンバーを含むからである。第２のパケットが宛先に到着しない場合、この宛先は、第１のパケット内のペイロード暗号文のバイトを復号化することができる。しかしながら、宛先は、受信された第３のパケットを復号化し得ない。なぜなら、宛先は、行方不明の第２のパケットでどれだけのペイロード暗号文のバイトが伝送されたかを知らないからである。従って、宛先は、受信されないすべてのパケットの再伝送をリクエストすることを要求する。これは、リアルタイムの媒体ストリームにとって実用的でない。平文の全てのバイトは、逐次的に暗号文に変換されたので、暗号文のバイトは、復号化と同じ順序で処理されなければならない。
【０００９】
上述のＲＣ４暗号化方法は、パケットが伝送中に回復不可能に紛失された場合、すぐ次の受信されたパケットを復号化する方法を提供することができない。
【００１０】
（Ｗｉｒｅｄ  Ｅｑｕｉｖａｌｅｎｃｙ  Ｐｒｉｖａｃｙ（ＷＥＰ）法）
ＩＥＥＥ８０２．１１ｂは、Ｗｉｒｅｄ  Ｅｑｕｉｖａｌｅｎｃｙ  Ｐｒｉｖａｃｙ（ＷＥＰ）法を用いる。ＲＣ４とＷＥＰとの類似性は、ＷＥＰが、各パケットが鍵の１部としてシーケンスナンバーを用いる方法を再初期化することによりＲＣ４を用いることである。ＷＥＰ暗号化方法は、新しい鍵を用いて新しいＳベクトルを入力し直す（ｒｅｋｅｙｉｎｇ）（新しい鍵を選択する）ことにより再初期化される。
【００１１】
ＲＣ４を用いて生成された問題を解決するために、ＷＥＰはＲＣ４を用いるが、その際、ＷＥＰが、各パケットについて、同様にインクリメントされたＳベクトルを用いるのに対して、ＲＣ４は、ぺイロードの各バイトについて、インクリメントされたＳベクトルを用いるという例外を伴う。各パケットについて新しいＳベクトルを生成することによって、宛先は、受信された任意の順序で、およびパケットが紛失した状態の下で、各パケットを復号化することができる。換言すると、ＷＥＰは、１つのパケットの開始から終了まで動作し、これに対して、ＲＣ４は、各ぺイロードストリームのために伝送されたパケットの数に関係なく、各ペイロードストリームについて開始から終了まで動作する。これは、音声通信などの小さいパケットに対してＷＥＰを非効率にする。なぜなら、新しいＳベクトルは各パケットごとに計算される必要があるからである。
【００１２】
紛失したパケットが宛先における復号化を妨げる問題が解決される一方で、各パケットごとに方法を入力し直しかつ再初期化する工程は、計算量が多く、安全でないことが示された。ＷＥＰには安全上の欠点があることが示されている。Ｓｔｕｂｂｌｅｆｉｅｌｄらによる「Ｕｓｉｎｇ  ｔｈｅ  Ｆｌｕｈｒｅｒ，Ｍａｒｔｉｎ，ａｎｄ  Ｓｈａｍｉｒ  ａｔｔａｃｋ  ｔｏ  ｂｒｅａｋ  ＷＥＰ」ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｒｉｃｅ．ｅｄｕ／〜ａｓｔｕｂｂｌｅ／ｗｅｐ／ｗｅｐ  ａｔｔａｃｋ．ｈｔｍｌ
および「Ｗｅａｋｎｅｓｓｅｓ  ｉｎ  ｔｈｅ  Ｋｅｙ  Ｓｃｈｅｄｕｌｉｎｇ
Ｍｅｔｈｏｄ  ｏｆ  ＲＣ４」
ｈｔｔｐ：／／ｗｗｗ．ｅｙｅｔａｐ．ｏｒｇ／〜ｒｇｕｅｒｒａ／ｔｏｒｏｎｔｏ２００１／ｒｃ４＿ｋｓａｐｒｏｃ．ｐｄｆ
を参照されたい。いくつかのＰＣカードは、初期化される毎に、パケットシーケンスナンバーをゼロにリセットし、その後、使用毎に１度ずつインクリメントする。この方法は処理時間を低減するが、他方、この方法は、鍵ストリームが再利用される高い尤度をもたらし、暗号文に対する単純な暗号解析攻撃およびメッセージトラフィックの復号に至る。ハッカーが１つのパケットの暗号コードを破ることができた場合、ハッカーは、すべてのパケットを復号化し得る。ＷＥＰの別の問題は、ＷＥＰの計算量が多いことである。Ｓベクトルループは、（２５６バイトのベクトルに対して）２５６のステップを要求し、各パケットについてＳベクトルが計算し直される。
【００１３】
ＲＣ４は、ペイロード平文ストリームにおける各バイトのＳベクトルをインクリメントし、パケットがネットワーク内で紛失したときにすぐに回復できないという犠牲のもとに、ＲＣ４暗号化方法の計算量を少なくする。ＷＥＰは、計算量が多い、あまり安全でない暗号化方法を提供することにより問題を解決し、従って、平文ストリームを暗号化および暗号文ストリームを復号化するために必要とされるオーバーヘッドタイムを増加させる。
【００１４】
上述の暗号化方法は、ペイロード平文のストリームを効率的に暗号化する方法を提供することはできないが、他方、パケットが伝送中に紛失した場合、受信されたパケットを復号化することを可能にする。
【００１５】
この理由によって、ペイロード平文を暗号化するため、およびペイロード暗号文を復号化するために必要とされる時間を増加させず、パケットの紛失またはパケット（単数または複数）が順序が狂って到着した後にそれを回復する能力を有する、効率的なパケット暗号化方法が必要である。
【００１６】
本発明は、上記事情に鑑みてなされたものであり、平文データの連続的パケットを暗号化および復号化する計算時間を低減し、パケットの紛失またはパケットが順序が狂って到着した後でも、回復する能力を有する、効率的なパケット暗号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
（解決）
本効率的なパケット暗号化方法は、上に概要が説明された問題を克服し、各パケットについてＳベクトルを計算し直さない方法を提供することによって技術を進歩させ、従って、ペイロード平文を暗号化およびペイロード暗号文を復号化するために要求される時間を低減する。本効率的なパケット暗号化方法は、さらに、パケットが紛失または順序が狂うという問題を克服する。これは、パケットシーケンスナンバーを利用して、暗号化方法内で２つの変数を初期化する方法を提供することによって行なわれる。第３および第４の変数は、計算の中に注入され、暗号化計算内で用いられる値の予測可能性を最小化し、暗号化ストリームが反復する頻度を低減する。
【００１８】
本効率的なパケット暗号化方法は、標準ＲＣ４方法を利用し、秘密鍵を用いて初期Ｓベクトルを生成する。各連続的なパケットについて新しいＳベクトルを生成するＷＥＰと異なって、Ｓベクトルは、平文ストリーム全体を暗号化するために一度生成され、従って、各すぐ次のパケットについて新しいＳベクトルを生成するために必要な時間を削除する。
【００１９】
本発明の効率的なパケット暗号化方法は、平文の少なくとも１つのバイトを暗号化して、暗号文の少なくとも１つのバイトを生成する方法であって、該方法は、秘密鍵を選択して、標準暗号化方法に従ってＳベクトルを生成する工程と、シーケンスナンバーをセットする工程であって、該シーケンスナンバーは、第１の部分と第２の部分とを有する、工程と、該シーケンスナンバーの第１の部分として第１の変数をセットする工程と、該シーケンスナンバーの該第２の部分として第２の変数をセットする工程と、バイトシーケンスナンバーをセットする工程と、該第２の変数と該バイトシーケンスナンバーとの合計として第３の変数を計算する工程と、該バイトシーケンスナンバーを１つずつインクリメントする工程と、該第１の変数に、該第３の変数により示されるＳベクトル内の値を加算することにより、第４の変数を計算する工程と、暗号化バイトを特定する工程であって、該Ｓベクトル内の該暗号化バイトの位置は、該第３の変数と該第４の変数によって示される該Ｓベクトル内の値との合計によって示される、工程と、該暗号化バイトは、平文の少なくとも１つのバイトと排他的論理和をとり、暗号文の少なくとも１つのバイトを生成する工程とを包含する。
【００２０】
上記本発明の方法において、第２の変数をセットする工程は、前記シーケンスナンバーの前記第２の部分と、前記第１の変数により示される前記Ｓベクトル内の前記値とが排他的論理和をとる工程をさらに包含することが好ましい。
【００２１】
上記本発明の方法において、第４の変数を計算する工程は、カウンタの値をセットする工程と、前記第１の変数に、前記第３の変数と前記カウンタにより示される前記Ｓベクトル内の前記値とによって示される該Ｓベクトル内の値を加算する工程とをさらに包含することが好ましい。
【００２２】
また、本発明の方法は、平文の１つ以上のパケットを暗号化する方法であって、平文の該１つ以上のパケットは、平文の複数のバイトを有し、該方法は、秘密鍵を取得する工程と、該秘密鍵を用いてＳベクトルを生成する工程と、平文の各連続的な１つ以上のパケットについて、第１の部分および第２の部分を有するシーケンスナンバーを取得する工程と、該シーケンスナンバーの該第１の部分を用いて、第１の変数をセットする工程と、該シーケンスナンバーの該第２の部分を用いて、第２の変数をセットする工程と、ゼロと等しいバイトシーケンスナンバーをセットする工程と、平文の複数のバイトの各次のバイトについて、次の暗号化バイトを計算する工程であって、該計算する工程は、該第２の変数を該バイトシーケンスナンバーに加算して第３の変数を生成する工程と、該第１の変数を、該第３の変数により示される該Ｓベクトル内の値に加算することにより第４の変数を計算する工程と、該第３の変数により示される該Ｓベクトル内の値を、ポインタを計算して該次の暗号化バイトを特定する該第４の変数に加算することにより該Ｓベクトル内の次の暗号化バイトを特定する工程とを包含する、計算工程と、該第２の変数と該第３の変数を等しくセットする工程と、該バイトシーケンスナンバーを１つずつインクリメントする工程とを包含する。
【００２３】
上記本発明の方法において、第２の変数を計算する工程は、前記シーケンスナンバーの前記第２の部分が前記第１の変数により示される前記Ｓベクトル内の値と排他的論理和をとる工程を包含することが好ましい。
【００２４】
上記本発明の方法において、送信器において、各次の暗号化されたバイトについて、前記次の暗号化バイトが平文の該複数のバイトの前記次のバイトと排他的論理和をとることによって、次の暗号文バイトを計算する工程をさらに包含することが好ましい。
【００２５】
上記本発明の方法において、受信器において、各次の暗号化バイトについて、前記次の暗号化バイトが、平文の各１つ以上のパケット内の前記次の暗号文と排他的論理和をとることによって、受信された次の平文バイトを計算する工程をさらに包含することが好ましい。
【００２６】
上記本発明の方法において、第４の変数を計算する工程は、カウンタをセットする工程と、前記第１の変数を、前記第３の変数と該カウンタとによって示される前記Ｓベクトル内の値に加算することによって、該第４の変数を計算する工程と、平文の各次の１つ以上のパケットについて、予め決定されたスケジュールにより、該カウンタの値をインクリメントする工程とをさらに包含することが好ましい。
【００２７】
上記本発明の方法において、カウンタをセットする工程は、平文の１つ以上のパケットのうちの第１のパケットについて、ロールオーバカウンタをゼロにリセットする工程と、平文の各次の１つ以上のパケットについて、前記シーケンスナンバーをインクリメントすることが該シーケンスナンバーの値を１からすべて０に変換させる場合、該ロールオーバカウンタをインクリメントする工程をさらに包含することが好ましい。
【００２８】
上記本発明の方法において、平文の前記複数のバイトの各次のバイトについて、前記Ｓベクトルを並べ替える工程であって、前記Ｓベクトルのコピーを保存する工程と、前記第３の変数、および前記第４の変数により示される該Ｓベクトル内の値により示される該Ｓベクトル内の値を入れ替える工程であって、該Ｓベクトル内の該値は、前記次の暗号化バイトが特定された後に入れ替えられる、工程と、平文の各次の１つ以上のパケットについて、保存された該Ｓベクトルを復元する工程とをさらに包含することが好ましい。
【００２９】
また、本発明の方法は、平文Ｐの複数のバイトを有する１つ以上のパケットを、複数の暗号文バイトＣを有する１つ以上のパケットに変換する方法であって、該方法は、秘密鍵を取得する工程と、該秘密鍵を用いて、複数のＳベクトルバイトを有するＳベクトルを計算する工程と、第１の部分と第２の部分とを有するシーケンスナンバーをランダムにセットする工程と、各連続的な１つ以上のパケットについて、該シーケンスナンバーをインクリメントする工程と、ｊ＝該シーケンスナンバーの第１の部分により、第１の変数ｊをセットする工程と、ｉ＝該シーケンスナンバーの第２の部分により、第２の変数ｉを計算する工程と、平文Ｐの該複数のバイトの各連続的バイトについて、次の連続的暗号文バイトＣを計算する工程であって、該計算する工程は、ｊ＝ｊ＋Ｓ［ｉ］により、該第１の変数をさらに計算する工程と、第３の変数ｋをセットする工程と、ｉ＝ｉ＋ｋにより、該第２の変数ｉをさらに計算する工程と、Ｅ＝Ｓ［Ｓ［ｉ］＋Ｓ［ｊ］］により、該Ｓベクトル内の該次の連続的暗号化バイトＥを特定する工程と、該次の連続的暗号化バイトＥを、Ｃ＝Ｅ＋Ｐにより、次の連続的暗号文バイトＣに変換する工程とを包含する工程と、平文Ｐの該複数のバイトの最後のバイトが該１つ以上のパケットの該次のパケットについて暗号文バイトＣに変換された場合、該１つ以上のパケットの該次の連続的パケットを受信器に伝送する工程とを包含する。
【００３０】
上記本発明の方法において、第２の変数を計算する工程は、下位シーケンスナンバー、および第１の変数により示される前記Ｓベクトル内の値が、ｉ＝（該シーケンスナンバーの下位）＋Ｓ［ｊ］により、排他的論理和を取る工程をさらに包含することが好ましい。
【００３１】
上記本発明の方法において、前記第１の変数ｊをさらに計算する工程は、
カウンタｒをセットする工程と、ｊ＝ｊ＋Ｓ［ｉ］＋Ｓ［ｒ］により、該第１の変数ｊをさらに計算する工程と、１つ以上のパケットの各連続的パケットに関して、該カウンタｒの値をインプリメントする工程とをさらに包含することが好ましい。
【００３２】
上記本発明の方法において、次の連続的暗号化バイトＥを計算する工程は、前記Ｓベクトルを並べ替える工程であって、該Ｓベクトルのコピーを保存する工程と、前記第１の変数ｊにより示される複数のＳベクトルのバイトと、前記第２の変数ｉにより示される複数のＳベクトルのバイトとを入れ替える工程とを包含する、工程と、平文Ｐの複数のバイトの最後のバイトが、次の１つ以上のパケットについて、複数の暗号文バイトＣに変換される場合、該保存されたＳベクトルを復元する工程とをさらに包含することが好ましい。
【００３３】
また、本発明の方法は、平文Ｐの複数のバイトを有する１つ以上のパケットを、複数の暗号文バイトＣを有する１つ以上のパケットに変換する方法であって、該方法は、秘密鍵を取得する工程と、該秘密鍵を用いて、複数のＳベクトルバイトを有するＳベクトルを計算する工程と、高位または下位を有するシーケンスナンバーをランダムにセットする工程と、各連続的な１つ以上のパケットに関して、該シーケンスナンバーをインクリメントする工程と平文Ｐの該複数のバイトの各連続的バイトについて、次の連続する暗号化バイトＥを計算する工程であって、ｊ＝該シーケンスナンバーの高位により、第１の変数ｊをセットする工程と、ｉ＝（シーケンスナンバーの下位）＋Ｓ［ｊ］により、第２の変数ｉを計算する工程と、カウンタｒをセットする工程と、ｊ＝ｊ＋Ｓ［ｉ］＋Ｓ［ｒ］により、該第１の変数をさらに計算する工程と、第３の変数ｋをセットする工程と、ｉ＝ｉ＋ｋにより、該第２の変数ｉをインクリメントする工程と、Ｅ＝Ｓ［Ｓ［ｉ］＋Ｓ［ｊ］］により、該Ｓベクトル内の該次の連続的暗号化バイトＥを特定する工程とを包含する工程と、該次の連続的暗号化バイトＥを、Ｃ＝Ｅ＋Ｐにより、次の連続的暗号文バイトＣに変換する工程と、平文Ｐの該複数のバイトの最後のバイトが、１つ以上のパケットの次のパケットに関して、暗号文バイトＣに変換された場合、該１つ以上のパケットの該次の連続的パケットを受信器に伝送する工程と、を包含する。
【００３４】
（変数計算）
２つの変数ｉおよびｊは、パケット内の平文の各バイトと排他的論理和をとる暗号化ストリームを生成するために用いられる。変数ｉおよびｊの新しい値は、パケット内の連続的な平文バイトについて計算される。変数ｉおよびｊが最初にゼロにセットされ、ペイロードにおけるすぐ次の平文バイトに関してインクリメントされるＲＣ４と異なって、初期Ｓベクトルが生成された後、第１のパケットに対して開始シーケンスナンバーが生成される。シーケンスナンバーの第１の部分は、変数ｊを表し、シーケンスナンバーの第２の部分は変数ｉを計算するために用いられる。
【００３５】
１実施形態において、変数ｉは、シーケンスナンバーの第２の部分がＳ［ｊ］の値と排他的論理和をとることによって計算される。ここで、Ｓ［ｊ］はＳベクトルから導き出される。第３の変数Ｓ［ｊ］を変数ｉの開始値の計算工程に注入することは、従って、本効率的なパケット暗号化方法は、公知の平文攻撃に対してより安全であるようにする。変数ｉおよびｊの新しい開始値は、各すぐ次のパケットについて計算される。シーケンスナンバーを用いて、暗号化ストリームを生成することは、パケットが受信される順序に関係なく、宛先においてパケットを解読する方法を提供する。これは、さらに、パケットが紛失された後、受信されたすぐ次のパケットを解読する方法を提供し、従って、平文の連続的パケットを暗号化、伝送および解読する時間を低減する。
【００３６】
（連続的暗号化および暗号文バイトの計算）
パケット内の次の連続的バイトが暗号化されていな場合、変数ｉおよびｊは、パケット内の各連続的バイトについて計算し直される。第２の変数ｉは、前の繰返しからの第２の変数ｉと、第４の変数ｋとの合計として計算し直される。ここで、ｋはパケットペイロード内のバイトシーケンスナンバーである。各パケットの開始において、ｋはリセットされ、ｋはパケット内の平文の各連続的バイトについてインクリメントされる。第４の変数ｋは、第２の変数ｉを計算するために用いられ、本効率的なパケット暗号化方法が、平文の大きいペイロードを暗号化するために利用されるとき、異なったパケット内で同じ暗号化ストリームの部分が利用される可能性を低減する。第１の変数ｊは、前の繰返しに第３の変数Ｓ［ｉ］およびｓ［ｊ］をそれぞれ加えることによって、第１の変数の合計として計算し直される。ここで、Ｓ［ｉ］およびｓ［ｊ］はＳベクトルから導き出される。
【００３７】
Ｓ［ｒ］を暗号化方法に注入することは、暗号化ストリームを生成し、ここで、暗号化ストリームは、パケットの長いシーケンスにわたって反復しない。Ｓ［ｒ］を含むことなく、暗号化ストリームは、１秒毎に１００個のパケットでほぼ１１分毎に反復する。Ｓ［ｒ］を計算の中に注入することは、暗号化ストリームを生成し、この暗号化ストリームは、４６時間毎に反復し、従って、本効率的なパケット暗号化方法をより安全にする。
【００３８】
別の実施形態において、Ｓベクトルは、各連続的パケットが暗号化される間に並べ替えられる。この実施形態において、Ｓベクトルが最初に計算され、Ｓベクトルのコピーが保存される。暗号化された平文の各連続的バイトに関して、第１の変数ｊおよび第２の変数ｉにより示されるＳベクトル内の値が入れ替えられる。
平文の各連続的バイトについて、Ｓベクトル内の値を入れ替えることによって、Ｓベクトルは、時間の経過とともに並べ替えられ、従って、長い平文ペイロードのために生成された暗号化ストリームは、パケット内で反復する確率が低い。パケット内の平文のすべてのバイトが暗号化されている場合、初期Ｓベクトルは、次のパケットの暗号化および復号化に用いるために復元される。
【００３９】
（第１の暗号化および暗号文バイトの計算）
暗号化ストリームの第１のバイトは、式Ｅ＝［Ｓ［ｉ］＋Ｓ［ｊ］］を用いてＳベクトルから導き出される。Ｓ［ｉ］とＳ［ｊ］との合計によって示されるＳベクトル内の位置は、暗号化ストリームの次のバイトを含む。送信器において、暗号ストリームの次のバイトを計算するために、暗号化ストリームの次のバイトが用いられる。暗号化ストリームにおける次のバイトは、パケットペイロードにおける次の平文バイトと排他的論理和（ＸＯＲ）をとる。
【００４０】
受信器において、受信された次の暗号文バイトは、次に受信された暗号文バイトが次に計算された暗号文バイトと排他的論理和をとることによって復号化され、次の平文バイトを回復する。本効率的なパケット暗号化方法における次のステップは、第１のパケットペイロードにおける最後の平文が暗号化されているかどうかを決定することである。
【００４１】
次のパケット内のすべての連続する平文バイトが暗号化されていると、パケットシーケンスナンバーはインクリメントされ、方法は出発点に戻り、次の連続的パケットシーケンスナンバーから変数ｉおよびｊについての新しい値を計算する。最初に生成されたＳベクトルは、すべての連続的パケットのために用いられる。
【００４２】
本効率的なパケット暗号化方法の第１の利点は、パケット毎の処理時間が低減されることである。連続的パケットに同じＳベクトルを用いることは、平文ストリームを暗号化または暗号文ストリームを復号化するパケット毎の処理時間を低減し、本効率的なパケット暗号化方法を、上述のＷＥＰ方法等の従来の暗号化方法よりも効率的にする。本効率的なパケット暗号化方法の第２の利点は、この方法がＷＥＰを安全でなくする同じ攻撃を受けないことである。
【００４３】
本効率的なパケット暗号化方法の第３の利点は、この方法が、パケットが紛失および／または狂った順序で受信される状態において、容易に再同期化するように設計されることである。本効率的なパケット暗号化方法は、各パケットシーケンスナンバーを用いて、変数ｉおよびｊの初期値を選択し、連続的パケットのパケットシーケンスナンバーをインクリメントする。ＲＣ４は、シーケンスナンバーを用いず、従って、受信器は、暗号ストリームの最初からバイトをカウントしなければならない。
【００４４】
シーケンスナンバーを用いて変数ｉおよび変数ｊを初期化することは、次の値を予測可能にする。変数ｉの初期値の計算が、変数ｉおよびｊの値を決定する予測可能性を排除するとき、第３の変数Ｓ［ｊ］を注入することは、本効率的なパケット暗号化方法をより安全にする。Ｓ［ｒ］を計算の中に注入することは、パケット暗号化ストリームが、頻繁に反復しない暗号化ストリームを生成し、ハッカーに対するさらなる保護を提供する。同様に、バイトシーケンスナンバーｋは、暗号化ストリームの断片が長いシーケンスにわたるどこかで反復する尤度を低減するために注入される。
【００４５】
（詳細な説明）
上述の、および記載された請求項により定義された効率的パケット暗号化方法は、添付の図面と関連付けて読まれるべきである以下の詳細な説明を参照することによって、より良好に理解され得る。好適な実施形態の本詳細な説明は、記載された請求項を限定することを意図しないが、その特定の例示として利用される。さらに、本明細書中に用いられる語法および用語は、説明する目的で用いられ、限定する目的で用いられるのではない。
【００４６】
有線および無線の両方のパケット交換において、ペイロード平文のパケットは、ネットワークを介してソースから宛先に伝送される。パケットは、パケット組立て器／分解器（Ｐａｃｋｅｔ  Ａｓｓｅｍｂｌｅｒ／Ｄｉｓａｓｓｅｍｂｌｅｒ）により、ペイロードデータの個々のパケットに組立ておよび分解される。各パケットは、一意に定まる識別番号、すなわちシーケンスナンバーを有し、各パケットは、３つの基本要素、すなわち、ヘッダ、ペイロード、および任意にトレイラを含む。ヘッダは、シーケンスナンバー、同期ビット、宛先アドレス、ソースアドレス、パケット長さといった制御情報（ｃｏｎｔｒｏｌ  ｉｎｆｏｒｍａｔｉｏｎ）を含む。ペイロードは、伝送される平文であり、トレイラはパケットフラグの端ならびに誤り検出ビットおよび誤り訂正ビットを含む。
【発明の効果】
【００４７】
以上に説明したように、本発明の効率的なパケット暗号化方法は、秘密鍵を選択して、標準暗号化方法に従ってＳベクトルを生成する工程と、シーケンスナンバーをセットする工程であって、該シーケンスナンバーは、第１の部分と第２の部分とを有する、工程と、該シーケンスナンバーの第１の部分として第１の変数をセットする工程と、該シーケンスナンバーの該第２の部分として第２の変数をセットする工程と、バイトシーケンスナンバーをセットする工程と、該第２の変数と該バイトシーケンスナンバーとの合計として第３の変数を計算する工程と、該バイトシーケンスナンバーを１つずつインクリメントする工程と、該第１の変数に、該第３の変数により示されるＳベクトル内の値を加算することにより、第４の変数を計算する工程と、暗号化バイトを特定する工程であって、該Ｓベクトル内の該暗号化バイトの位置は、該第３の変数と該第４の変数によって示される該Ｓベクトル内の値との合計によって示される、工程と、該暗号化バイトは、平文の少なくとも１つのバイトと排他的論理和をとり、暗号文の少なくとも１つのバイトを生成する工程とを包含し、これにより、本願は、ペイロード平文を暗号化するため、およびペイロード暗号文を復号化するために必要とされる時間を増加させず、パケットの紛失またはパケット（単数または複数）が順序が狂って到着した後にそれを回復する能力を有する、効率的なパケット暗号化方法を提供することができる。
【発明を実施するための最良の形態】
【００４８】
（パケット交換−図１）
図１を参照して、パケット交換ネットワーク１００上での伝送のために、単一メッセージ、またはデータストリーム１１０が「パケット」に解体される。それぞれ１〜４で表示される各パケット１１２、１１４、１１６および１１８は、ネットワーク１００を介して利用可能なノード１２０、１２２、１２４、１２６、１２８および１３０を通って宛先に移動し、帯域幅が伝送のために利用可能になると、ノードからノードへ伝送される。宛先ノード１３０において、パケット１１２、１１４、１１６および１１８は、もとの連続したメッセージまたはストリームの中に組立て直される。パケットは、異なったルートをたどるネットワーク１００を介して移動するので、パケットは、順序が狂った状態で宛先１３０に到着することがよくある。他のパケットは、ネットワーク内で紛失され得る。紛失したパケットの伝送をリクエストし、パケットを元の連続したメッセージに組立て直すために、宛先においてさらなる処理時間が必要とされる。多くの場合、紛失したパケットの再伝送は、適時に達成され得ない。そのために、紛失したパケットは回復不可能である。
【００４９】
パケット交換の主な特徴は、伝送リンクが必要に応じて共有される方法である。各パケットは適切なリンクが利用可能になるとすぐに伝送され、送信するものを何も有さないソースにより保持されるリンクはない。ソースノード１２０が第１のパケット１１２を伝送した後、このソースノードは、残りのパケットを送信するために同じプロセスをたどらなければならない。各パケットは、ソースノード１２０と宛先ノード１３０との間の異なったルートを進み得、各パケットは、シーケンスナンバーを有する。本実施例において、シーケンスナンバー１〜４が宛先ノード１３０で用いられ、パケットをもとの連続したメッセージ１１０に組立て直す。例えば、第１のパケット１１２は、ソースノード１２０から第１のノード１２２へと移動する。第２のパケット１１４はソースノード１２０を去り、第１のノード１２２へ移動するが、他方、第１のパケット１１２は、宛先ノード１３０へと移動し、宛先ノード１３０に最初に到着し、順序正しく到着する。第３のパケット１１６が第１のノード１２２から宛先ノード１３０に移動すると、第３のパケット１１６はソースノード１２０を去り、第３のノード１２６に移動する。最後のパケット１１８は、ソースノード１２０から第１のノード１２２に移動するが、他方、第３のパケット１１６は宛先ノード１３０に移動する。第３のパケットのルート１１６（ｔｈｅ  ｒｏｕｔｅ  ｔｈｉｒｄ  ｐａｃｋｅｔ）１１６は、ルートが最後のパケット１１８よりも伝搬時間が長いので、最後のパケット１１８および第３のパケット１１６は、宛先ノード１３０において乱れた順序で到着し得る。
【００５０】
同様に、ネットワーク上の別のノードがパケットの順序を狂わせて伝送する場合、このパケットはソースノード１２０によって伝送されるパケットのうちの１つと衝突し、結果としてパケットが紛失され得る。従って、宛先ノード１３０は、４つのパケットのうちの３つを受信する。プロセッサが宛先ノード１３０においてパケットを組立て直すと、プロセッサは、パケットが行方不明であることを理解する。上述のＲＣ４およびＷＥＰ暗号化方法を用いて、宛先ノード１３０は、狂った順序で受信されたパケットまたは紛失パケットの後に受信された任意のパケットを復号することはできない。
【００５１】
暗号化スキームは、２つの一般的なカテゴリーに分類される。すなわち、対称暗号化方式および非対称暗号化方式である。例えば、Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＤＥＳ）に属するような対称暗号化方式において、発信者がデータを暗号化するため（すなわち、平文を暗号文に変換する）、および受信者が同じデータを復号するために（すなわち、暗号文をもとの平文に変換する）同じ鍵が用いられる。本効率的なパケット暗号化方法は対称型である。
【００５２】
（Ｓベクトルの生成  図２）
本効率的なパケット暗号化方法は、標準的ＲＣ４法を利用して、開始Ｓベクトルを生成する。図２を参照して、送信器および受信器は、ブロック２１０における平文を暗号化／復号化するために秘密鍵が用いられることに同意する。送信器は、秘密鍵をランダムに生成し得、その秘密鍵を第１のパケットヘッダにおける受信器に伝送するか、または２つのデバイスが呼出しセットアップ（ｃａｌｌ  ｓｅｔ−ｕｐ）中に特定の鍵を用いることに同意し得る。図示するために、本効率的暗号化方法は、２５６の構成要素のベクトルを含んで記載および図示されるが、他の長さのベクトルで代用され得る。
【００５３】
ブロック２２０において、秘密鍵は反復され、必要ならば、２５６の構成要素のＫベクトルを秘密鍵のバイトで逐次的に満たす。２５６の構成要素のＫベクトル内の各バイトの値は２５６よりも小さい。ブロック２３０において、２５６の構成要素のＳベクトルは初期化され、０〜２５５のすべてのｉに関してＳ［ｉ］＝ｉになるようにする。標準ＲＣ４法を用いて、ブロック２４０において、初期Ｓベクトルは、Ｋベクトルを用いてスクランブルがかけられる。すべての算術演算にモジューロ２５６が実行される。
【００５４】
ステップ１  
秘密鍵を受信し、この秘密鍵を用いてＫベクトルを生成する
標準暗号化方法に従ってＳベクトルを初期化する
ただし、すべての０≦ｉ＜２５５についてＳ［ｉ］＝ｉになるようにする
Ｋベクトルを用いて初期Ｓベクトルにスクランブルをかける
ここでｊ＝０
ｉ＝０〜２５５であるため
ｊ＝ｊ＋Ｓ［ｉ］＋Ｋ［ｉ］
Ｓ［ｉ］とＳ［ｊ］とを入れ替える
ここで、Ｓ［ｉ］、Ｓ［ｊ］およびＫ［ｉ］の値は、ＳベクトルおよびＫベクトルから導き出される。初期Ｓベクトルが生成された後、平文のパケットを暗号化するための変数が計算される。
【００５５】
（変数の計算−図３）
パケット平文を暗号化するために用いられる変数はｉおよびｊである。ｉおよびｊが最初にゼロにセットされ、暗号化計算において平文ストリーム内の平文の次のバイトについてインクリメントされるＲＣ４、または各パケットの開始においてＲＣ４が再初期化されるＷＥＰ法と異なって、本効率的なパケット暗号化法は、シーケンスナンバーを用いて、各パケットについて暗号化処理を開始する。初期シーケンスナンバーは、ランダムに生成されたシーケンスナンバーであり得る。シーケンスナンバーはインクリメントされ、次のシーケンスナンバーは各次のパケットを暗号化するために用いられる。図２におけるフローチャートを参照して、ロールオーバカウンタｒは、最初、ブロック３１０においてゼロにリセットされ、初期シーケンスナンバーは、第１のパケットについて、ブロック３２０においてランダムに生成される。
【００５６】
ステップ２
初期シーケンスナンバーをセット（連続的パケットのシーケンスナンバーをインクリメントする）
初期ロールオーバカウンタｒ＝０をセット
（シーケンスナンバー＝０の場合、ｒ、モジューロ２５６をインクリメントする）
バイトシーケンスナンバーｋ＝０をリセット
ロールオーバカウンタｒの値は、暗号化ストリームを生成するために利用される変数ｊを計算するときに用いられる。同様に、パケット間で同じ暗号化シーケンスが用いられることを回避するために、暗号化ストリームを生成する際に用いられる変数ｉを計算するためにバイトシーケンスナンバーｋが用いられる。
【００５７】
シーケンスナンバーは、少なくとも２つのバイト、すなわち下位バイトおよびそのバイトの次のバイトを含む。シーケンスナンバーが２つより多いバイトを含む場合、超過した高位部分がロールオーバカウンタｒとして（モジューロ２５６）が用いられる。変数ｊは、ブロック３３０におけるシーケンスナンバーの高位バイトと等しくなるように初期化される。変数ｉは、ブロック３３０において、シーケンスナンバーの下位バイトがＳ［ｊ］と排他的論理和をとるように計算される。
【００５８】
ステップ３
変数ｉおよびｊをセットする
ｊ＝高位シーケンスナンバー
ｉ＝（下位シーケンスナンバー）＋Ｓ［ｊ｝
ここで、Ｓ［ｊ］は、前に生成されたＳベクトルから導き出される。シーケンスナンバーを用いて、変数ｉおよびｊの初期値を設定することは、パケットが受信された順序に関わらず、受信器においてパケットの復号化を組立て直すか、または同期化する方法を提供する。
【００５９】
平文パケットの暗号化においてシーケンスナンバーのみを用いることは、変数ｉおよびｊの次の値を予測可能にし、従って、暗号化法は安全でない。公知の平文攻撃を用いて、一度いくつかのパケットの復号化が成功すると、攻撃者はＳベクトルの成分に関する情報を導き出すことができる。この攻撃を用いて、一度Ｓベクトル成分に関する十分な情報が導き出されると、残りのＳベクトルを決定し、暗号文を復号化することが可能である。変数Ｓ［ｊ］をブロック３３０における変数ｉの初期値の計算の中に注入することは、変数ｉの予測可能性を低減する。なぜなら、Ｓ［ｊ］の値はＳベクトルから導き出されるからである。従って、Ｓベクトルに対する特定の公知の平文攻撃を防止する。下位シーケンスナンバーがＳ［ｊ］と排他的論理和をとることは、公知の平文攻撃から獲得された任意の関係が非線形であることを保証する。従って、本効率的なパケット暗号化法は、公知の平文攻撃に対してより安全である。
【００６０】
（連続的パケット変数の計算）
本効率的なパケット暗号化法のセキュリティをさらに高めるために、変数ｉおよびｊは、平文の各次のバイトについて、第２の計算を用いてブロック３４０においてさらに計算される。
【００６１】
ステップ４
ｉ＝ｉ＋ｋ
ｊ＝ｊ＋Ｓ［ｉ］＋Ｓ［ｒ］を用いて
変数ｉおよびｊを計算する
ここで、ｒは、ロールオーバカウンタの値であり、Ｓ［ｉ」およびＳ［ｒ］は、Ｓベクトルから導き出され、ｋはパケット内のバイトシーケンスナンバーである。上述のように、１実施形態において、暗号化法が初期化されると、ロールオーバカウンタはブロック３２０においてゼロにセットされる。本実施形態におけるロールオーバカウンタはインクリメントされ、シーケンスナンバーはすべての１が０にインクリメントする。暗号化法が初期化されると、シーケンスナンバーはロールオーバカウンタと置き替えられ得、ロールオーバカウンタをインクリメントすることに関する上述のようにインクリメントされる。
【００６２】
１実施形態において、第２の変数ｉは、前の繰返しからの第２の変数と、第４の変数ｋとの合計として計算し直される。ここで、ｋは、パケットペイロードバイトシーケンスナンバーである。各パケットの開始において、ｋはリセットされ、ｋはパケット内の平文の各連続的バイトについてインクリメントされる。第４の変数ｋは、第２の変数ｉを計算する際に用いられ、本効率的なパケット暗号化法が利用される場合、異なったパケットにおいて暗号化ストリームの部分が再利用される可能性を低減する。第１の変数ｊは、前の繰返しからの第１の変数と第３の変数Ｓ［ｉ］と第４の変数Ｓ［ｒ］との合計として計算し直される。ここで、Ｓ［ｉ］およびＳ［ｒ］は、Ｓベクトルから導き出される。第２の変数ｉが、パケット内の各次の平文バイトについて１ずつインクリメントされるにすぎないが、他方、１つのパケットに対して用いられる暗号化ストリームの部分は、任意の他のパケットのために再利用される。従って、バイトシーケンスナンバーを用いて、パケット内の平文の連続的バイトの変数ｉを計算し直すことは、ペイロードの反復が２２５６バイト未満のペイロードの反復を防止し、従って、本効率的なパケット暗号化法にさらなる安全性を付加する。
【００６３】
次のパケットについて、必要に応じて、ブロック３４０において、Ｓ［ｒ］を暗号化計算の中に注入し、ブロック３２０において、ｒの値をインクリメントすることは、暗号化ストリームが反復する頻度を低減する。連続的ｊ変数を計算する際に、Ｓ［ｒ］を用いずに、毎秒１００個のパケットを暗号化することは、暗号化ストリームを１１分毎に反復させる。Ｓ［ｒ］をパケット内の各バイトの変数ｊの計算の中に注入し、必要に応じて、ｒを次のパケット毎にインクリメントして、暗号化ストリームは約４６時間毎に繰返す。従って、さらなるロールオーバカウンタの変数ｒを本効率的なパケット暗号化法の中に注入することは、ハッカーに対するさらなるセキュリティを提供する。
【００６４】
変数ｉおよびｊの計算が、ロールオーバカウンタまたはシーケンスナンバーから直接的に得られた変数ｒを用いて説明されたが、他方、ｒ値をセットする他の方法が代用され得る。ｒ値を生成する他の公知の方法は、開始ｒ値をランダムに選択し、ｒ値をヘッダの部分として配信することを含むか、またはｒの値はＲＴＰ以外のプロトコルから導き出され得る。同様に、カウンタを更新する代替的方法は、シーケンスナンバーがすべて１のシリーズからすべて０のシリーズにインクリメントする場合、カウンタをインクリメントすることと置き替えられ得る。ブロック３４０において生成された変数ｉおよびｊを用いて、ブロック３５０において暗号化バイトが計算される。
【００６５】
（第１の暗号化および暗号文バイトの計算）
暗号化ストリームの第１のバイトは、前のステップ４において計算された変数ｉおよびｊの値を用いてブロック３５０において計算される。
【００６６】
ステップ５
Ｅ［ｋ］＝Ｓ［Ｓ［ｉ］＋Ｓ［ｊ］］を用いて、パケット暗号化ストリームにおける次のバイトを計算する
ここで、Ｓ［ｉ］およびＳ［ｊ］のバイナリ値はＳベクトルから導き出される。Ｓ［ｉ］とＳ［ｊ］との合計により示されるＳベクトル内の位置は、暗号化ストリームの次のバイトを含む。暗号化ストリームの次のバイトを用いて、暗号ストリームの次のバイトがブロック３６０において計算される。
【００６７】
選択的実施形態において、各連続的パケットの暗号化が行なわれる間、Ｓベクトルはブロック３８０において並べ替えられるか、またはスクランブルがかけられる。本実施形態において、パケット内の平文の第１のバイトを暗号化する前に、Ｓベクトルのコピーが保存される。平文の各連続的バイトについて、第１の変数ｊおよび第２の変数ｉによって示されるＳベクトル内の値は入れ替えられる。平文の各連続的バイトのＳベクトル内の値を入れ替えることによって、Ｓベクトルは時間の経過とともに並べ換えられ、長い平文ペイロードについて生成された暗号化ストリームがパケット内で反復する確率が低い。パケット内の平文のすべてのバイトが暗号化された場合、初期Ｓベクトルは、次のパケットの暗号化または復号化に用いるために復元される。
【００６８】
送信器および受信器の両方は、ステップ１〜ステップ５に従い、同じ暗号化ストリームを生成する。送信器において、暗号化ストリームが用いられ、暗号文ストリームを生成する。受信器において、暗号文のストリームが受信され、暗号化ストリームは、暗号文を解読し平文を回復するために用いられる。
【００６９】
ステップ６
送信器：Ｃ［ｋ］＝Ｅ＋Ｐ［ｋ］ただしＰ［ｋ］＝平文のｋ番目のバイトを用いて、次のバイト暗号文ストリームを計算する
受信器：Ｐ［ｋ］＝Ｅ＋Ｃ［ｋ］
を用いて、次のバイト平文ストリームを計算する
ここで、Ｐ［ｋ］は、パケットペイロードにおける平文の次のバイトである。ステップ４において、送信器において、暗号化ストリームにおける次のバイトは、パケットペイロードにおける次の平文バイトと排他的論理和をとり、次のバイト暗号文を生成する。
【００７０】
ステップ７
バイトシーケンスをインクリメントする
ｋ＝ｋ＋１
平文の次のバイトがブロック３６０において暗号文に変換された後、バイトシーケンスｋは、ブロック３９０において１つずつインクリメントされる。本効率的なパケット暗号化方法における次のステップは、第１のパケットペイロードにおける最後の平文バイトが暗号化されたかどうかをブロック３７０において決定することである。パケットペイロード内の平文の次のバイトが暗号化されていない場合、この方法はペイロードの各連続的バイトに関するステップ３〜ステップ６を繰返す。ペイロード平文ストリーム内のすべてのバイトが暗号化／復号化されると、この方法は次のパケットについてのステップ２に戻る。
【００７１】
ブロック２３０および２４０において生成されたＳベクトルは、ブロック３３０〜３５０において、伝送されるべき平文の各ペイロードについてすべての変数を計算するために用いられる。Ｓベクトルが各パケットについて再計算されるＷＥＰと異なって、本効率的なパケット暗号化方法において、Ｓベクトルは、ペイロード平文の現在のストリームについて再初期化されない。Ｓベクトル成分の任意の入れ替えがインクリメントされる場合、このＳベクトルは復元され得ない。送信器がペイロード平文の新しいストリームを発信する準備を整えるまで、Ｓベクトルは計算し直されない。
【００７２】
本効率的なパケット暗号化方法は、平文データの連続的パケットを暗号化および復号化する計算時間を低減する。Ｓベクトルが生成され、平文の連続的パケットを暗号化するために用いられ、従って、パケット毎の暗号化／復号化時間を低減する。連続的パケットを暗号化する式は、変数の予測可能性を排除するために注入された第３の変数を用いるパケットシーケンスナンバーの使用を含み、従って、本効率的なパケット暗号化法をより安全にする。第４の変数は、計算の中に注入され、頻繁に反復されない暗号化ストリームを生成し、ハッカーに対するさらなるセキュリティを提供する。平文の長いペイロードを有するパケットを暗号化するために、パケットバイトシーケンスナンバーが用いられ、特定のパケット内で反復する確率が低い暗号化ストリームを生成する。
【００７３】
本効率的なパケット暗号化法を利用することは、セキュリティのレベルを益々向上させる一方で、ペイロード平文のストリーム全体の伝送を成功させるための計算時間を低減する。パケット毎の再計算を排除することは、各パケットの新しいＳベクトルを生成する計算ステップを排除する。
【００７４】
本効率的なパケット暗号化法を用いることは、時間を節約するためにセキュリティを犠牲にしない。その代わりに、計算工程にさらなる変数、変数ｉを注入してセキュリティを向上させる。同様に、変数ｊを計算するために用いられるカウンタを含むことは、反復頻度が低い暗号化ストリームを生成することによって、本効率的なパケット暗号化法のセキュリティをさらに向上させる。
【００７５】
代替的実施形態に関して、当業者は、本効率的なパケット暗号化法が初期シーケンスナンバーおよび変数ｒの初期値を生成する種々の方法を用いて生成され得ることを理解する。本効率的なパケット暗号化法が、第１のランダムシーケンスナンバーを生成し、ロールオーバカウンタｒをゼロにセットすることが説明および図示されたが、代替的方法が用いられてもよい。同様に、予め設定する効率的なパケット暗号化法は２５６の構成要素ベクトルを用いて図示および説明されたが、当業者は構成要素の代替的数を有するベクトルが代用され得ることを理解する。
【００７６】
上述の目的、目標および利点を完全に満たす効率的なパケット暗号化法が記載されたことは明らかである。効率的パケット暗号化法は、その特定の実施形態と関連付けて説明されたが、一方で、複数の代替案、改変および／または変形が上述の記載に照らして当業者によって考案され得る。従って、本記載は、添付の請求項の趣旨および範囲内に含まれる、すべてのそのような代替案、改変および変形を容認することが意図される。
【図面の簡単な説明】
【００７７】
【図１】図１は、パケット交換ネットワークにわたって伝送するためのペイロード平文のシーケンスを示す。
【図２】図２は、標準的Ｓベクトルを生成する従来技術のＲＣ４方法のフローチャートを示す。
【図３】図３は、本効率的なパケット暗号化方法のフローチャートを示す。
【図１】
2007140566.tif 000003
【図２】
2007140566.tif 000004
【図３】
2007140566.tif 000005