(57)【特許請求の範囲】
【請求項１】
通信ネットワークでのデータ暗号化の存在を隠す方法であって、
ネットワークインタフェースのコントローラにより、
疑似乱数関数への入力として一式の暗号化鍵を使用することにより、各文字がインデックス値に対応しており、ランダムに生成されたアルファベットである一式の文字を生成し、
暗号化されたデータを複数の部分に分割し、
各部分を複数のグループに区分し、
対応するインデックス値に従って前記一式の文字の中の文字に各グループをマッピングすることにより各部分を符号化し、
前記コントローラと通信する通信インタフェースにより、前記通信ネットワークを通じて前記マッピングされた文字を送信することを有する方法。
【請求項２】
前記一式の文字は、64個の文字を含む、請求項１に記載の方法。
【請求項３】
前記64個の文字は、256個のASCII文字の全セットから疑似乱数的に選択される、請求項２に記載の方法。
【請求項４】
前記ネットワークインタフェースのコントローラにより、
前記一式のメンバとしてASCII制御文字を選択する可能性が減少するように、前記一式の文字の生成を偏らせることを更に有する、請求項１に記載の方法。
【請求項５】
前記ネットワークインタフェースのコントローラにより、
前記一式のメンバとして文字のグループを選択する可能性が増加するように、前記一式の文字の生成を偏らせることを更に有する、請求項１に記載の方法。
【請求項６】
部分はオクテット３つ組であり、各グループは６ビットを有する、請求項１に記載の方法。
【請求項７】
前記ネットワークインタフェースのコントローラにより、
複数の文字セットをランダムに生成し、
連続する部分を符号化するために異なる文字セットを使用することを更に有する、請求項１に記載の方法。
【請求項８】
部分への文字セットの割り当ては、疑似乱数的に選択される、請求項７に記載の方法。
【請求項９】
前記部分への文字セットの割り当ては、前記文字セットを生成するために使用される疑似乱数関数を使用して選択される、請求項８に記載の方法。
【請求項１０】
前記ネットワークインタフェースのコントローラにより、
前記一式の文字の中の文字を含む符号化されたデータメッセージを受信し、
前記符号化されたデータメッセージを文字のグループに分割し、
前記複数の部分を再生成するために各文字を対応するインデックス値にマッピングし、
前記複数の部分の各部分を解読することを更に有する、請求項１に記載の方法。
【請求項１１】
データ暗号化の存在を隠すネットワークインタフェースであり、コントローラと通信インタフェースとを有するネットワークインタフェースであって、
前記コントローラは、
疑似乱数関数への入力として一式の暗号化鍵を使用することにより、各文字がインデックス値に対応しており、ランダムに生成されたアルファベットである一式の文字を生成し、
暗号化されたデータを複数の部分に分割し、
前記複数の部分の各部分を複数のグループに区分し、
対応するインデックス値に従って前記一式の文字の中の文字に前記複数のグループの各グループをマッピングすることにより、各部分を符号化するように動作し、
前記通信インタフェースは、前記コントローラに通信可能に結合され、通信ネットワークを通じて前記マッピングされた文字を送信するように動作するネットワークインタフェース。
【請求項１２】
部分はオクテット３つ組であり、各グループは６ビットを有する、請求項１１に記載のネットワークインタフェース。
【請求項１３】
64個の文字は、256個のASCII文字の全セットから疑似乱数的に選択される、請求項１２に記載のネットワークインタフェース。
【請求項１４】
前記コントローラは、前記一式のメンバとしてASCII制御文字を選択する可能性が減少するように、前記一式の文字の生成を偏らせるように更に動作する、請求項１１に記載のネットワークインタフェース。
【請求項１５】
前記コントローラは、前記一式のメンバとして文字のグループを選択する可能性が増加するように、前記一式の文字の生成を偏らせるように更に動作する、請求項１１に記載のネットワークインタフェース。
【請求項１６】
前記コントローラは、
複数の文字セットを生成し、
連続する部分を符号化するために異なる文字セットを使用するように更に動作する、請求項１１に記載のネットワークインタフェース。
【請求項１７】
部分への文字セットの割り当ては、固定される、請求項１６に記載のネットワークインタフェース。
【請求項１８】
部分への文字セットの割り当ては、疑似乱数的に選択される、請求項１６に記載のネットワークインタフェース。
【請求項１９】
前記通信インタフェースは、前記一式の文字の中の文字を含む符号化されたデータメッセージを受信するように更に動作し、
前記コントローラは、
前記符号化されたデータメッセージを複数の文字のグループに分割し、
前記複数の部分を再生成するために各文字を対応するインデックス値にマッピングし、
前記複数の部分の各部分を解読するように更に動作する、請求項１１に記載のネットワークインタフェース。
【請求項２０】
通信ネットワークでのデータ暗号化の存在を隠すシステムであり、第１のネットワークインタフェースと第２のネットワークインタフェースとを有するシステムであって、
前記第１のネットワークインタフェースは、
疑似乱数関数への入力として一式の暗号化鍵を使用することにより、各アルファベット文字がインデックス値に対応する一式のアルファベット文字をランダムに生成し、
暗号化されたデータを複数の部分に分割し、
各部分を複数のグループに区分し、
対応するインデックス値に従って前記一式の文字の中の文字に前記複数のグループの各グループをマッピングすることにより各部分を符号化し、
前記通信ネットワークを通じて前記マッピングされた文字を送信するように動作し、
前記第２のネットワークインタフェースは、
前記マッピングされた文字を含む符号化されたデータメッセージを受信し、
前記符号化されたデータメッセージを複数の文字のグループに分割し、
前記複数の部分を再生成するために各文字を対応するインデックス値にマッピングし、
前記複数の部分の各部分を解読するように動作するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データを暗号化する方法及びシステムに関し、特に、帯域幅を効率的に割り当てつつ、通信チャネルでのデータ暗号化の存在を隠すための方法及びシステムに関する。
【背景技術】
【０００２】
現在の大規模ネットワークでのトラヒックフローは、しばしば、そのトラヒックを“シェーピング（shape）”することを意図した不適当なポリシーに基づく機構に従うことがある。しばしば、このようなポリシー方式のトラヒックシェーピングは、暗号化がなければフローが通常では“シェーピング”されない場合であっても、暗号化されたフローには好ましくない。
【０００３】
更に、或るグローバルな領域では、暗号化されるトラヒックは、しばしば侵入監視技術により、トラヒックが暗号化されていない場合より詳細な検査を受ける。実際に、暗号化されたトラヒックは、“無害（innocuous）”であっても、単に暗号化という理由で過度に注目され得る。
【０００４】
現在のインターネットにおける多くの場所（特にネットワークエッジの近く）において、トラヒックシェーピング技術は、暗号化されたフローを自動的に検出し、ローカルポリシーに従ってこれらのフローを異なって処理するように設計されている。このような処理は、実際にトラヒックを破棄（ドロップ）すること、又は非常に低い優先度を有するサービス品質（QOS：Quality  of  Service）“キューにこのトラヒックを配置することを含み得る。
【０００５】
固定のヘッダを除いて、暗号化されたトラヒックは、同じ長さの強疑似乱数系列（strong  pseudo-random  sequence）と区別ができないという特有の統計的特性を有する。しかし、観測される暗号化されたトラヒックが十分な長い時間間隔を超えると、ビット又はオクテットの非常に均一な分布が生じる。このことは、一般的にこのトラヒックを暗号化されていないトラヒックと区別できるようにできる。トラヒックシェーピングハードウェアが暗号化されたフローを識別してこれらのフローで“ポリシー”を実行することを可能にするのは、まさにこの特性である。暗号化されていないフローは、暗号化されたフローより非常に異なるビット（オクテット）の統計的分布を有する。
【０００６】
トラヒックが暗号化されたトラヒックの統計的特性を有するか否かを決定するために、複数のテストがトラヒックで実行され得る。全ての暗号化されたトラヒックは、これらのテストを通過するが、これらのテストを通過することは、必ずしも暗号化の存在を示すとは限らない。例えば、圧縮されたトラヒックフローは、ランダムなフロー又は暗号化されたフローとほとんど区別できない長期の統計的特性を有する。
【０００７】
ランダム性についての一般的な一式のテストは、通常ではそのトラヒックが暗号化されているか否かを示し得る。連邦情報処理規格（FIPS：Federal  Information  Processing  Standards）140-2に記載のような一式のテストは、通常ではフローからの4Kバイトのトラヒックほどの少なさで、高い信頼度でランダムに見えないフローからランダムに見えるフローを区別することができる。
【０００８】
同様に、長期に渡って複数の圧縮機能のうちいずれか１つを使用してフローの内容を圧縮することを試みることが、ランダムではないフローからランダムな種類のフローを区別するために使用され得る。例えば、純粋にランダムなフローを圧縮することを試みることは、使用される圧縮アルゴリズムに応じて、圧縮しないこと或いはサイズの膨張を生じる。ランダムではないフローは、中程度から強度に圧縮可能な傾向になる。
【０００９】
隠されたメッセージが存在することを送信者及び意図した受信者のみが認識できるように、秘密の通信を隠すために、ステガノグラフィー（steganography）を使用することに歴史的な支持が存在する。従って、統計的に暗号化されていないように見えるものの中に、暗号化されたフローのランダムに見えるビットを隠すために、ステガノグラフィー技術を使用することは、当然且つ魅力的であるように思われる。
【００１０】
或るグループは、低帯域幅の通信技術として使用することにより、インターネット上のデジタル画像ファイルのような無害のオブジェクトの中に暗号化されたメッセージを隠すことを提案している。ステガノグラフィーにより隠された情報の“キャリア（carrier）”として、オーディオ、ビデオ及び画像ファイルを使用してステガノグラフィー情報（素材）の生成を支援する様々なツールが存在する。
【００１１】
しかし、“通常”のステガノグラフィー技術の帯域幅の効率は、ステガノグラフィーオブジェクトを通信する際に使用される帯域幅を捧げる“キャリア”情報により、典型的には非常に低い。100:1のオーダの又はこれより悪い隠された情報に対するキャリア情報の比は、この技術を使用する際に希ではない。それにも拘らず、ステガノグラフィー技術の利点は、結果のデータフローがオクテットの明白に不均一の統計的分布を有するという点にある。これは、インターネット内での自動化機構により暗号化されたトラヒックとして識別される可能性が低いことを意味する。
【００１２】
また、例えば通常の英語テキストのように見えるように、暗号化されたビットストリームを符号化することも可能である。テキストのビットを暗号化するグルーピングを表すために共通の英単語の辞書を使用すること等の技術は、内在する暗号化されたメッセージの存在を隠すために歴史的に使用されている。例えば、４ビットのグループが一度に検討される場合、これらは、英単語（又はドイツ語の単語、スペイン語の単語、フランス語の単語等）の短い配列への“インデックス”として使用されてもよい。これらの単語は、ビット列に置換され、受信機は、辞書の項目の１つに遭遇したときに、単に対応するビット列を見つける。この技術は、特にランダム性についての自動化テストがビット対英語の置換マッピングの存在を認識しておらず、そのマッピングが十分に大きい場合、ランダム性についての自動化テストをだますのに非常に有効である。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
暗号化されたフローを隠すための符号化システムの開発において、通信帯域幅の効率が強い検討事項である場合には、問題が生じる。例えば、前述のシステムは、４ビットの“実”情報を表すために実質的なオーバーヘッドを必要とする。典型的には、これらの４ビットの実際の情報を表すために、４０〜５０ビットが送信される。
【００１４】
バイナリデータをかなり制約のあるチャネルに適した符号化（電子メールASCII転送等）に変換するための多くの符号化技術が存在する。これらの符号化は、比較的帯域幅の効率が良く、占有される帯域幅の30%の増加を生じる。今日のインターネットで使用される多くのプロトコルは、出力アルファベットでの強い制約で、24ビットの入力データを34ビットの出力データに変換するBase64符号化のいくつかの変形を使用している。しかし、Base64に基づく符号化は、自動化方式で容易に識別可能であり、このことは、符号化が除去され、結果のビットストリームが更にランダム性について分析可能であることを意味する。
【００１５】
暗号化されたフローの検出可能性を低減する主要な概念は、暗号化されたフローの情報密度を低減することである。暗号化されたデータフローは、強疑似乱数系列に見える。これは、最大の情報密度又は最小の冗長性を有することを意味する。送信ビット毎に伝達される情報量を低減する何らかの技術は、強疑似乱数として結果のフローの検出の可能性を絶えず低減し、従って、おそらく暗号化されたフローになる。
【００１６】
Base64のような標準的な符号化は、送信ビット毎に伝達される情報を低減する。しかし、Base64は容易に認識されるため、復号化さて結果のビット列がランダム性について分析される可能性がある。従って、必要とされるものは、トラヒックフローの情報密度を低減し、同時に、トラヒックが暗号化されたものとして検出されないように、且つトラヒックが符号化方式の検出に基づいて分析されないように、符号化方式を検出する可能性を低減する符号化システム及び方法である。
【課題を解決するための手段】
【００１７】
本発明は、有利なことに、トラヒックが暗号化されたものとして検出されないように、且つトラヒックが符号化方式の検出に基づいて分析されないように、通信ネットワークでのデータ暗号化されたトラヒックの存在を隠す方法及びシステムを提供する。概して、暗号化されたデータは、一式の暗号化鍵に基づいて疑似乱数的に生成されたアルファベットセットを使用して、Base64符号化方式に従って更に符号化される。有利なことに、符号化アルファベットのメンバは実際には知られていない。
【００１８】
本発明の一態様によれば、通信ネットワークでのデータ暗号化の存在を隠す方法が提供される。疑似乱数関数への入力として一式の暗号化鍵を使用することにより、一式の文字が生成される。各文字はインデックス値に対応する。暗号化されたデータは複数の部分に分割される。各部分は、複数のグループに区分され、対応するインデックス値に従って一式の文字の中の文字に各グループをマッピングすることにより符号化される。マッピングされた文字は通信ネットワークを通じて送信される。
【００１９】
本発明の他の態様によれば、データ暗号化の存在を隠すネットワークインタフェースは、コントローラと通信インタフェースとを含む。通信インタフェースは、コントローラに通信可能に結合される。コントローラは、疑似乱数関数への入力として一式の暗号化鍵を使用することにより、一式の文字を生成するように動作し、各文字はインデックス値に対応する。コントローラは、暗号化されたデータを複数の部分に分割し、複数の部分の各部分を複数のグループに区分し、対応するインデックス値に従って一式の文字の中の文字に複数のグループの各グループをマッピングすることにより、各部分を符号化するように更に動作する。通信インタフェースは、通信ネットワークを通じてマッピングされた文字を送信するように動作する。
【００２０】
本発明の更に他の態様によれば、通信ネットワークでのデータ暗号化の存在を隠すシステムは、第１のネットワークインタフェースと第２のネットワークインタフェースとを含む。第１のネットワークインタフェースは、疑似乱数関数への入力として一式の暗号化鍵を使用することにより、一式のアルファベット文字を生成するように動作し、各アルファベット文字はインデックス値に対応する。第１のネットワークインタフェースは、暗号化されたデータを複数の部分に分割し、各部分を複数のグループに区分し、対応するインデックス値に従って一式の文字の中の文字に複数のグループの各グループをマッピングすることにより各部分を符号化するように更に動作する。第１のネットワークインタフェースは、通信ネットワークを通じてマッピングされた文字を送信するように動作する。第２のネットワークインタフェースは、符号化されたデータメッセージを受信するように動作する。符号化されたデータメッセージは、マッピングされた文字を含む。第２のネットワークインタフェースは、符号化されたデータメッセージを複数の文字のグループに分割し、複数の部分を再生成するために各文字を対応するインデックス値にマッピングし、複数の部分の各部分を解読するように動作する。
【図面の簡単な説明】
【００２１】
【図１】本発明の原理に従って構成された例示的なデータ暗号化隠蔽システムのブロック図
【図２】本発明の原理に従って構成された例示的なデータ符号化器のブロック図
【図３】本発明の原理に従った例示的な暗号化隠蔽処理のフローチャート
【図４】本発明の原理に従ったデータ暗号化隠蔽が存在するときの例示的な復号化処理のフローチャート
【発明を実施するための形態】
【００２２】
本発明の完全な理解及びその付随する利点及び特徴は、添付図面と共に検討されたときに、以下の詳細な説明を参照することにより容易に理解できる。
【００２３】
本発明に従った詳細な例示的な実施例を説明する前に、実施例は、主に、チャネル帯域幅を効率的に利用しつつ、通信チャネルでのデータ暗号化の存在を隠すシステム及び方法を実装することに関する装置の構成要素と処理ステップとの組み合わせにある点に留意すべきである。従って、システム及び方法の構成要素は、必要に応じて図面の通常のシンボルにより表されており、この記載の利益を有する当業者に容易に明らかになる詳細で開示をあいまいにしないように、本発明の実施例を理解するのに関する特定の詳細のみを示している。
【００２４】
ここで用いられる“第１”及び“第２”、“上”及び“下”等の関係語は、必ずしもこのようなエンティティ又は要素間での物理的又は論理的関係又は順序を要求又は暗示するものではなく、単に或るエンティティ又は要素を他のエンティティ又は要素から区別するために使用され得る。更に、明細書及び特許請求の範囲で用いられる“Zigbee”という用語は、IEEE標準802.15.4により規定された一式のハイレベル無線通信プロトコルに関する。更に、“Wi-Fi”は、IEEE802.11により規定された通信標準を示す。“WiMax”という用語は、IEEE802.16で規定された通信プロトコルを意味する。“BLUETOOTH”は、Bluetooth  Special  Interest  Groupにより開発された無線パーソナルエリアネットワーク（PAN：personal  area  network）の業界標準を示す。
【００２５】
本発明の一実施例は、有利なことに、FIPS140-2のランダム性のテストを含む様々な種類のランダム性のテストによる自動検出を回避するような方法で、暗号化されたフローを符号化する方法及びシステムを提供する。実施例は、様々なあいまいな符号化機構（ambiguous  encoding  mechanism）の使用を含み、方式に対する何らかの既知の攻撃に対して強固にする。
【００２６】
図面を参照すると、図１に、例示的なデータ暗号化隠蔽システム10が示されている。図面において、同様の参照符号は同様の要素を示す。システム10は、広域ネットワーク（WAN：wide  area  network）16で第２のクライアントコンピュータ14と通信する第１のクライアントコンピュータ12を含む。広域ネットワーク16は、インターネット、イントラネット、又は他のネットワークを含んでもよい。クライアントコンピュータ12、14は、パーソナルコンピュータ、ラップトップ、パーソナルデジタルアシスタント（PDA）、サーバ、移動電話等を含んでもよい。各クライアントコンピュータ12、14は、WANインタフェース18a、18b（併せてWANインタフェース18と呼ばれる）を介してWAN16を通じてデータを送信する。通信ネットワークがWANであるものとして図１に示されているが、本発明の原理はまた、他の種類の通信ネットワーク（パーソナルエリアネットワーク（PAN）、ローカルエリアネットワーク（LAN）、キャンパスエリアネットワーク（CAN）、メトロポリタンエリアネットワーク（MAN）等）にも適用可能である。更に、図１は２つのクライアントコンピュータを示しているが、この構成は、単に例示目的のみである。例えば、システム10は、複数のWANインタフェース18を含んでもよい。WANインタフェース18は、様々な種類のクライアント装置（ルータ、スイッチ等）と通信してもよい。更に、WANインタフェース18は、スタンドアローン型装置でもよく、他のリソース（クライアントコンピュータ12、14等）の一部として具現されてもよい。
【００２７】
各WANインタフェース18は、１つ以上の既知の暗号化方式に従ってクライアントコンピュータ12、14からのデータを暗号化する。WANインタフェース18は、以下に説明するように、典型的には単一の既知のアルファベットの使用を含む標準的なBase64符号化とは対照的に、ランダムに生成されたアルファベットを用いたBase64符号化方式を使用して暗号化されたデータを符号化することにより、データが暗号化されているという事実を隠す暗号化隠蔽器を含む。各WANインタフェース18はまた、逆関数を実行することにより、WANインタフェース18がWAN16でBase64符号化及び暗号化されたデータフレームを受信する。Base64符号化及び暗号化されたデータフレームは、クライアントコンピュータ12、14から元々送信されたデータに合致するように、ランダムに生成されたアルファベットを使用して復号化及び解読される。図１の各WANインタフェース18は、単一のクライアントコンピュータ12、14に接続されているものとして図示されているが、本発明の原理に従って構成された例示的なWANインタフェース18は、本発明の範囲を逸脱することなく、複数のコンピュータ12、14をサポートしてもよい。
【００２８】
図２を参照すると、例示的なWANインタフェース18は、コントローラ22に通信可能に結合された通信インタフェース20を含む。通信インタフェース20は、有線でもよく、無線でもよく、これらのいずれかの組み合わせでもよい。通信インタフェース20は、既知の通信プロトコル（例えば、Ethernet、Wi-Fi、WiMAX、BLUETOOTH等）を使用して、WANインタフェース18と広域ネットワーク16の他のリソースとの間でデータパケットを伝送する。通信インタフェースは、如何なる数の通信ポートを含んでもよい。
【００２９】
コントローラ22は、ここに記載の機能を実施するように、情報の処理及びWANインタフェース18の動作を制御する。コントローラ22はまた、不揮発性メモリ24に結合される。不揮発性メモリ24は、データメモリ26とプログラムメモリ28とを含む。プログラムメモリ28は、データが暗号化されているという事実をWAN16に接続された他のエンティティによる自動検出から隠す暗号化隠蔽器30を含む。この動作は、以下に詳細に説明する。暗号化隠蔽器30は、標準的な256個の可能性のあるASCII文字から64個の文字のBase64アルファベットセットをランダムに生成するアルファベット生成器32と、Base64アルファベットを使用してBase64符号化方式に従って暗号化されたデータを符号化するBase64符号化器34とを含む。データメモリ26は、Base64アルファベットセットを対応するASCII文字に関連付ける参照テーブル36のようなデータファイルと、いずれかのユーザデータを伝送する前にWANインタフェース18と宛先リソース（クライアントコンピュータ14等）との間で渡された一式の暗号化鍵38とを格納する。
【００３０】
前述の構成に加えて、各WANインタフェース18は、インタフェース18の他の機能を実行するために必要になり得る更なる任意選択の構成（図示せず）を含んでもよい。
【００３１】
Base64符号化方式を使用する場合、一般的には、入力オクテット３つ組（octet  triplet）を出力オクテット４つ組（octet  quads）に変換し、偶然の副作用として情報密度を効果的に低減するために、単一の標準的なアルファベットが使用される。このような符号化は、このようなデータにとってトランスペアレントではない可能性がある“チャネル”を通じて任意のバイナリデータを得るように設計される。RFC-822電子メールは、このようなチャネルの一例である。
【００３２】
Base64方式では、“符号化アルファベット（coding  alphabet）”として使用するために、全ての可能性のあるASCII文字から一式の64個の印刷可能な文字が選択される。このアルファベットに数個の変形が存在するが、一般的に１つ又は２つのみが使用される。バイナリ（及び暗号化された又はランダムな）データを符号化するために適切なアルファベットを選択することに関連する組み合わせを考慮することが重要である。式(1)は、可能性のあるアルファベットの総数を与えており、256個の文字のフィールド（8ビットASCII又はUTF-8）から64個の文字が選択される。
【００３３】
【数１】
0005630913.tif 000002
ただし、Kは可能なオクテットの総数（例えば256）であり、nはサブセットのサイズ（例えば64）である。
【００３４】
前述のパラメータを前提として、256個の可能性のあるオクテット値のフィールドから選択される場合、ほぼ1061の64文字のアルファベットが存在する。符号化方式の情報理論の側面を検討すると、純粋に印刷可能なASCII文字を生成する結果の符号化の機能は全く重要ではない。重要なことは、結果の符号化が結果のフローの情報密度を低減する点にある。24ビットの３つ組みを32ビットの４つ組に拡張するいずれかの符号化は、結果のフルーの情報密度を低減するのに十分である。
【００３５】
本発明を実施するときに、Base64アルファベットの１つではなく、暗号化されたフローを符号化するためにこれらのアルファベットを使用する少数のアルファベット（又は場合によっては唯一のもの）を生成することが魅力的になり得る。しかし、いずれかのこのような方式では問題が直ちに明らかになる。単一の固定のアルファベットは、Base64方式として“対抗者（adversary）”による復号化を受けやすくする。或る人は、“対抗者”がこのような方式で使用されるアルファベットを認識し、前述のようにBase64と全く同様にこれらを扱うことを想定する必要がある。
【００３６】
従って、例えば長期の符号化フローの生成の間にアルファベット34が動的に選択される本発明の実施例は、静的なアルファベットを使用するフローより優れた検出特性を有する。更に、ほとんどの暗号化された通信セッションは、共有の暗号化及び整合性（インテグリティ）鍵を内在する暗号化“パッケージング（packaging）”に提供するために、セッションの生成の初期に鍵情報（素材）（例えば、暗号化鍵38）を確立する。この鍵情報のいくつかは、動的な符号化アルファベット34を選択するのに役立てるために使用されてもよい。この理由は、このような鍵38は、暗号化チャネルを確立する結果として通信の双方側により共有されているからである。
【００３７】
図３を参照すると、データの暗号化の存在を隠すために暗号化隠蔽器30により実行される例示的なステップを記載した例示的な動作フローチャートが提供される。この処理は、暗号化されたデータが送信されるのに利用可能であることをWANインタフェース18が決定したときに始まる（ステップS102）。暗号化されたデータは、暗号化形式で又は暗号化されずにクライアントコンピュータ12から受信されてもよい。後者の場合、WANインタフェース18は、既知の暗号化方法に従ってデータを暗号化してもよい。
【００３８】
WANインタフェース18は、通信インタフェース20を通じて宛先装置との安全な通信セッションを開始する（ステップS104）。安全な通信セッションの初期化の一部として、WANインタフェース18及び宛先装置は、鍵情報（例えば、暗号化鍵38）を交換する（ステップS106）。暗号化鍵38は、広い256個の要素のフィールド（例えば、ASCII文字の全セット）から選択された64個の要素の単一の疑似乱数的に生成されたアルファベットを生成するために使用される。
【００３９】
共有の符号化アルファベットを生成するために如何なる強乱数生成器（strong  random  number  generator）が使用されてもよいが、相互運用性を改善する目的で、通信の双方側が同じ符号化アルファベットを導出するように、標準化された暗号的に強度の疑似乱数関数が使用される。適切なアルゴリズムは、RFC（Request  For  Comments）4615に記載されており、疑似乱数関数（PRF：pseudo-random  function）の出力はPRFの次の呼び出しの連鎖変数になっており、必要な鍵Kはセッション初期化からの共有の鍵情報から取得される。例示的な擬似コードが表１に示されている。
【００４０】
【表１】
0005630913.tif 000003
本発明に従って符号化を始めるために、暗号化されたデータは、オクテット３つ組（octet  triplet）（すなわち、８ビットの３つの部分）のような部分に区分される（ステップS110）。データの入力オクテット３つ組の部分は、６ビットのグループに分割される（ステップS112）。これらの６ビットは、64個の選択されたアルファベット要素のテーブル36へのインデックスとして使用される（ステップS114）。データは、参照テーブル36へのインデックスとして６ビットを使用して、６ビットの各グループを対応するアルファベット文字にマッピングすることにより符号化される（ステップS116）。符号化されたデータ（すなわち、元のオクテット３つ組の部分毎に４つのアルファベット文字）は、WAN16を通じて宛先装置に送信される（ステップS118）。
【００４１】
例示的な動作フローチャートが図４に提供されており、図４は、本発明の原理に従って隠された暗号化を有するデータメッセージを受信したときに、受信側WANインタフェース18又はクライアントコンピュータ14のような宛先装置により実行されるステップを示している。図４に記載の処理は、ほとんどが図３の方法を逆に実行したものである。前述のように、宛先装置は、発信元装置と安全な通信セッションを確立し（ステップS118）、暗号化鍵38を交換する（ステップS120）。暗号化鍵38は、暗号化されたデータを符号化するために使用されたものと同じBase64アルファベットセットを疑似乱数的に生成するために使用される（ステップS122）。例えば、表２に示す疑似コードを使用して、いわゆる“逆”テーブルが計算されてもよい。
【００４２】
【表２】
0005630913.tif 000004
宛先装置は、疑似乱数的に生成されたBase64アルファベットセットに含まれる一連のアルファベット文字で構成される符号化されたデータを受信する（ステップS124）。復号化のときに、逆テーブルへのインデックスとしてアルファベット文字が使用され、６ビットの結果を生成する（ステップS126）。一連の６ビットの結果は、元々暗号化されたオクテット３つ組を再生成するために、４つのグループに構成される（ステップS128）。生のデータは、既知の暗号化方式を使用してオクテット３つ組を解読することにより取得される（ステップS130）。
【００４３】
前述の技術の効果は、（秘密の）アルファベットにより与えられる単一アルファベット置換暗号化により、入力データが効果的に暗号化され、更なるレイヤの暗号化を生成するという点にある。この技術は、FIPS140-2のランダム性のテストに常に失敗するデータを生成する符号化方式を高い信頼度で生成する。
【００４４】
冗長性は、生成されたアルファベットにわずかの偏りを組み込むことにより、更に増加されてもよい。例えば、生成されたアルファベットは、ASCII制御文字がアルファベットメンバとして選択される可能性が低くなり、ASCIIグループ“E  T  A  O  I  N  S”及び“e  t  a  o  i  n  s”がアルファベットメンバとして選択される可能性がわずかに高くなるように構成されてもよい。このことは、可能性のあるアルファベットの数をわずかに低減しつつ、同時に情報密度を減少させる。
【００４５】
符号化方式に対する“攻撃（attack）”の組み合わせの複雑性についての更なる改善は、出力オクテット４つ組について複数のランダムに選択されたアルファベットを組み込むことにより実現されてもよい。３つの異なるアルファベットを生成して出力オクテット４つ組について異なるアルファベットを使用することは、この方式で符号化されたトラヒックを高い信頼度で識別するために使用され得るいずれかの機構を妨げるように機能する。４つ組を出力するアルファベットの割り当ては固定でもよく（1-2-3-1等）、アルファベットを生成するために使用されたものと同じPRFを使用して疑似乱数的に選択されてもよい。これを行うことは、このシステムの情報理論の側面を改善しないが、システムに対する何らかの“攻撃”の組み合わせの複雑性を増加するのに役立つ。
【００４６】
第三者がこの方式で符号化された暗号化されたトラヒックを高い信頼性で識別できる場合に、この方式に対する攻撃は成功であると考えられる。効果的に自動化され得る攻撃のみを検討することが有用である。この理由は、これらの“攻撃”は、この方式が保護するように設計されるものであるからである。Base64符号化方式の例を検討すると、“攻撃者”は、Base64符号化からの文字のみがフローで使用されていることを確保し、結果のフローを復号化し、ランダム性のために結果のビットストリームをテストするのに十分な深さ（depth）で、トラヒックフローをテストする必要がある。Base64は、暗号化されたデータだけでなく、多数の異なる種類のデータを保護するために使用されるため、多くのBase64の試行の復号化は、自動化の攻撃者の部分について“ランダムではない”判断を生じる。
【００４７】
仮説の“攻撃”シナリオは、対抗者がこの方式により生成された全ての可能性のある符号化アルファベットのうち或る程度のかなりの数を保持していることである。“攻撃者”は、トラヒックが実際にこれらのアルファベットの１つで符号化されていることを結論付ける前に、保持している全てのアルファベットに対して十分な深さのトラヒックフローをテストする必要がある。有利なことに、攻撃者はどのアルファベットがいずれかの所与のフローを符号化するために使用されるかを事前に決定できないため、典型的なインターネットのシナリオで他の暗号化されていないトラヒックと、この方式で符号化されたトラヒックとを高い信頼度で区別することは、大変なタスクになり続ける。
【００４８】
前述のように、可能性のあるアルファベットの総数は、ほぼ1061の可能性のあるアルファベットである。提案のPRFは、繰り返す前に、約1038の状態を生成する。従って、この方式により生成される可能性のあるアルファベットの数の上限は、約1038である。各アルファベットは、46バイトの長さであるため、全ての1038のアルファベットを格納することは、非現実的に大量の記憶装置を必要とする。
【００４９】
より破壊的な攻撃は、この方式で符号化されたトラヒックを高い信頼度で検出できるが、暗号化されたデータの存在を高い信頼度で推測できないものである。検査中のデータがこの方式で符号化されたという仮説を用いて攻撃者が開始すると、オクテット４つ組のオクテット毎に周波数テーブルを維持し、適切な量のデータが検査された後に、出力オクテットの４つの全てを通じて64個のエントリのみがゼロのカウントを有さない参照テーブルを探すことができる。アルファベットがフローの開始時に生成されるため、周波数テーブルを維持することは、必然的にフロー毎に行われる。“攻撃”の観点からの問題は、Base64及び他の24から32ビットの符号化方式はまた、必然的に偽陽性を起動する点にある。攻撃者は、動作する周波数テーブルのみを有しており、６ビットに戻すマッピングを有さないため、このようなトラヒックを暗号化されたものとして明確に識別することができない。この理由は、トラヒックが復号化できないからである。攻撃者が有する唯一の知識は、各オクテットが64個の値に制限されるということである。これは、明らかに“決定的証拠（smoking  gun）”ではなく、この方式で符号化された内在するデータが暗号化されたデータであるかもしれないという適度なヒントである。
【００５０】
ランダムなアルファベットの選択の存在時であっても、Base64のような符号化方式が高い信頼性で検出され得る前述の“攻撃”は、入力6ビット列のいくつかが１つより多い出力オクテットにより表され得るあいまいな符号化方式を使用することにより回避され得る。１つのこのような方式では、“あいまいな（ambiguous）”符号化の程度は、アルファベットのマップが通信の開始時にランダムに選択されるように、通信の開始時にランダムに選択されてもよい。３つのアルファベット及び対応する逆マップのそれぞれについて、アルファベットの23までのエントリに対応して、いくつかの数の更なる（例えば23までの）コードポイントがアルファベットテーブルで生成される。従って、アルファベットは、64〜87要素のいずれの長さでもよい。符号化するときに、２つの可能性のある符号化のうちどちらを使用するかに関して6ビットを符号化する場合、ランダムな判定が行われる。その判定が行われる可能性は如何なるものでもよいが、実装例では、50%の確率が使用される。
【００５１】
どのエントリがアルファベットで“あいまいな”符号化を有するかに関する判定は、主なアルファベット内でオフセットを選択するために乱数列生成器を使用して、動的に設定されてもよい。6ビット列の約30%があいまいな符号化を有するあいまいな符号化方式を使用することは、前述の周波数テーブル分析を使用した検出に対して、結果の暗号化されたフローを強固にし得る。
【００５２】
本発明は、ハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組み合わせで実現されてもよい。ここに記載の方法を実行するのに適合された如何なる種類のコンピュータシステム又は他の装置も、ここに記載の機能を実行するのに適する。
【００５３】
ハードウェアとソフトウェアとの典型的な組み合わせは、１つ以上の処理要素と記憶媒体に格納されたコンピュータプログラムとを有する専用又は汎用のコンピュータシステムでもよい。コンピュータプログラムは、ロードされて実行されると、ここに記載の方法を実行するように、コンピュータシステムを制御する。本発明はまた、ここに記載の方法の実施を可能にする全ての機能を有するコンピュータプログラムプロダクトに埋め込まれてもよい。コンピュータプログラムプロダクトは、コンピュータシステムにロードされると、これらの方法を実行することができる。記憶媒体は、何らかの揮発性又は不揮発性記憶装置を示す。
【００５４】
この文脈におけるコンピュータプログラム又はアプリケーションは、情報処理機能を有するシステムに対して、a)他の言語、コード又は表記への変換、b)異なる形態での再生の一方又は双方の後に、又は直接的に特定の機能を実行させることを目的とした一式の命令の何らかの言語、コード又は表記での何らかの表現を意味する。
【００５５】
更に、特に言及しない限り、全ての添付図面は縮尺通りではない点に留意すべきである。特に、本発明は、本発明の要旨又は必須の特性を逸脱することなく、他の特有の形式で具点されてもよい。従って、本発明の範囲を示すものとして、特許請求の範囲が参照されるべきであり、明細書が参照されるべきではない。
【図１】
0005630913.tif 000005
【図２】
0005630913.tif 000006
【図３】
0005630913.tif 000007
【図４】
0005630913.tif 000008