(57)【要約】  暗号化方法において、データの入力ブロックは、少なくとも部分的にランダム化されたストリングを生成するように可逆的に処理される。ランダム化されたストリングは、次いでブロック暗号によって暗号化される。復号では、暗号化されたデータの入力ブロックは、まずブロック暗号に対して復号される。その後、ランダム化が元に戻される。
2010500630.tif 000002
【特許請求の範囲】
【請求項１】
メッセージデータの少なくとも１つのブロックを取得することと、メッセージデータのブロックを少なくとも部分的にランダム化することと、ランダム化されたブロックをブロック暗号を使用して暗号化することと、暗号化されたブロックを送信することとを含む、方法。
【請求項２】
メッセージデータのブロックのランダム化が、疑似ランダムストリングを提供することと、メッセージデータのブロックの少なくとも数ビットのそれぞれと疑似ランダムストリングの各ビットとの間でＸＯＲ演算を実行することとを含む、請求項１に記載の方法。
【請求項３】
セッション鍵から鍵Ｋ１およびＫ２を生成することをさらに含み、
疑似ランダムストリングが、Ｋ１を入力鍵としてとる暗号から生成されることによって提供され、
ランダム化されたブロックが、Ｋ２を入力鍵としてとるブロック暗号を使用して暗号化される、請求項２に記載の方法。
【請求項４】
送信された信号を受信することと、暗号化されたメッセージを取得するように受信済み信号を調整することと、メッセージの少なくとも１つのデータブロックをブロック暗号から復号することと、復号されたブロックをランダム化解除することとを含む、方法。
【請求項５】
メッセージデータのブロックのランダム化解除が、疑似ランダムストリングを提供することと、メッセージデータのブロックの少なくとも数ビットのそれぞれと疑似ランダムストリングの各ビットとの間でＸＯＲ演算を実行することとを含む、請求項４に記載の方法。
【請求項６】
セッション鍵から鍵Ｋ１およびＫ２を生成することをさらに含み、
疑似ランダムストリングが、Ｋ１を入力鍵としてとる暗号から生成することによって提供され、
受信済みメッセージブロックが、Ｋ２を入力鍵としてとるブロック暗号の逆の操作を使用して復号される、請求項５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００６年８月１５日に出願された仮出願第６０／８３７６８３号の優先権を主張するものである。
【０００２】
本発明は、メッセージを安全に暗号化する方法に関する。
【背景技術】
【０００３】
多くの種類の通信において、メッセージを改竄および無許可アクセスから保護する必要がある。暗号化は、そのような目的に長く使用されてきた。暗号化技術の高度な適用例では、暗号化鍵が使用されて、暗号化されたメッセージに対して安全性を与えるだけでなく、メッセージの完全性も保護する。たとえば、送信に先立ちデジタル署名がメッセージに付加され、そのデジタル署名の第２バージョンが受信者によって受信済みメッセージから計算され得る。デジタル署名の２つのバージョンが一致しない場合、受信者は、メッセージの完全性が改竄によって損なわれたことを知ることになる。
【０００４】
メッセージの完全性を保証するには、付加されたデジタル署名と一緒に、頑強な暗号の保護下でメッセージを送信することが望ましい。頑強性の特性は、たとえば、悪意のある攻撃の結果として、暗号化されたメッセージの１ビットが変更された場合でさえ、復号の際に、変更の影響がメッセージ全体にわたって分配されることを確実にする。したがって、特に、デジタル署名が影響を受け、受信者によってローカルで計算されたバージョンと一致しない可能性が高くなる。
【０００５】
メッセージの暗号化に使用されるある種の暗号は、ブロック暗号と呼ばれる。ブロック暗号は、入力ストリングとして固定長のバイナリデータのブロックをとり、出力ストリングとして固定長のバイナリデータのブロックを生成する。たとえば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）は、通常、１２８ビットの入力および出力ブロックを有する、よく知られているブロック暗号である。
【０００６】
ＡＥＳなどのブロック暗号を適用する１つの方法は、ＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅｂｏｏｋ）暗号化によるものである。ＥＣＢ暗号化では、メッセージはブロック暗号のための適切な入力長のブロックに分割され、各ブロックは、ブロック暗号を使用して独立して暗号化される。
【０００７】
ＥＣＢ暗号化の１つの弱点は、リプレイ攻撃を受けやすいことである。つまり、攻撃者は、送信されたメッセージ内で反復ストリングを探すことができる。ＥＣＢ暗号化では、平文ストリングの反復は、同一の暗号化されたストリングの反復を招くことがある。そのような場合に、反復が攻撃者によって認識され得る。
【０００８】
改竄、リプレイ攻撃、および他の種類の攻撃に対して、暗号化の方法をより堅牢にする様々な試みがなされてきた。より堅牢なアプローチの一例は、本発明とともに本発明の譲受人に譲渡された、米国特許出願第１１／２６１３９９号明細書、２００５年１０月２８日出願、Ｓ．Ｐａｔｅｌら、表題「Ａｉｒ−Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ  Ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋｓ」に述べられている。そのアプローチでは、たとえば、ブロック暗号は一対の疑似ランダムストリングＡおよびＢの生成に使用される。平文のブロックＸは、式ＡＸ＋Ｂを形成することによって暗号化され、式中、ＡおよびＸは多項式乗算を使用して結合される。ストリングＡおよびＢを結合して使用することにより、頑強性ならびにリプレイ攻撃に対する堅牢性が提供される。
【０００９】
このような多項式の暗号化方法は有用であるが、暗号化のための乗算演算では、また復号のための逆の操作ではなおさら、計算量が莫大であるため、比較的高価である。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
したがって、それらの計算資源の使用において経済的であり、堅牢な暗号化の方法が依然として必要とされている。
【課題を解決するための手段】
【００１１】
我々はそのような方法を見いだした。広範な態様では、我々の方法は、データの入力ブロックを可逆的に処理して、少なくとも部分的にランダム化されたストリングを生成する。ランダム化されたストリングは、次いでブロック暗号によって暗号化される。復号では、暗号化されたデータの入力ブロックは、まずブロック暗号に対して復号される。その後、ランダム化が元に戻される。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例における、本発明による暗号化方法を示す流れ図である。
【図２】実施形態の一例における、本発明による復号方法を示す流れ図である。
【図３】入力データの部分的なストリングを暗号化するための、図１の方法の変形において使用できる方法を示す流れ図である。
【図４】入力データの部分的なストリングを復号するための、図２の方法の変形において使用できる方法を示す流れ図である。
【発明を実施するための形態】
【００１３】
本明細書で述べる暗号化方法は、データトラフィック、音声トラフィック、および信号データを含む、あらゆる種類のコンテンツの無線送信の安全性および完全性を保護するための、特定の用途を有するものである。このような送信は、たとえば、およびこれに限定されるものではないが、無線ユーザー端末と無線ネットワークの基地局との間で発生し得る。しかし、述べられている方法は、無線ネットワークのみに限定されるものではなく、代わりに有線通信の分野にも適した用途であることが理解されよう。同様に、述べられている方法は、ユーザー端末ならびにネットワークサーバーおよびスイッチを含む、様々な種類のネットワークエンティティ間の通信の保護にも適している。
【００１４】
ある特定の例において、セッション鍵Ｋは、保護された通信のために２当事者間で事前に安全に交換される。よく知られている方法により、そのセッション鍵は、２つのさらなる鍵Ｋ１およびＫ２の生成に使用される。たとえば、Ｋ１は、Ｋを入力鍵としてとり、適切にゼロでパディングされた整数１を引数としてとるＡＥＳアルゴリズム、Ｋ１＝ＡＥＳＫ（１）によって生成され得る。同様に、Ｋ２＝ＡＥＳＫ（２）が得られる。鍵Ｋ１は、ＡＥＳとともに使用されて、疑似ランダムのビットストリングＡＥＳＫ１（１）、ＡＥＳＫ１（２）などを生成する。例として、疑似ランダムストリングを形成するためのＡＥＳの引数は、適切にパディングされた連続する整数１、２、などとすることができる。しかしながら、復号に使用する同じ値を受信者も知っている限り、任意の値のシーケンスを使用できる。
【００１５】
図１を参照すると、最初の暗号化ステップ１０では、ｎブロックの入力データＸ１、．．．、Ｘｎは、
【数１】
2010500630.tif 000003
に従って、ＡＥＳによって暗号化される。前述の式中、記号
【数２】
2010500630.tif 000004
は、論理排他的ＯＲ（ＸＯＲ）演算を表す。これらの演算の結果は、入力ブロックに少なくとも部分的なランダム化を追加する。演算は、各ブロックと対応する疑似ランダムストリングとの間の第２のＸＯＲ演算が元の入力ブロックを復元するので可逆的である。
【００１６】
安全性は低いがより経済的な方法が望まれる場合は、より短い疑似ランダムストリングを使用でき、この方法では各入力ブロックの一部分のみがランダム化される。さらに、疑似ランダムストリングを生成するためのブロック暗号に対する別法がある。たとえば、前述の疑似ランダムストリングのそれぞれは、ストリーム暗号によって生成される長い疑似ランダムストリングのブロックであってよい。
【００１７】
第２の暗号化ステップ２０では、Ｙ１、Ｙ２、などのそれぞれは、Ｋ２を入力鍵としてとるＡＥＳによって暗号化されて、暗号テキストのブロックＣ１、Ｃ２、などを生成する。つまり、Ｃ１＝ＡＥＳＫ２（Ｙ１）、Ｃ２＝ＡＥＳＫ２（Ｙ２）、．．．、Ｃｎ＝ＡＥＳＫ２（Ｙｎ）である。
【００１８】
復号は、上記ステップの逆の操作である。たとえば、図２を参照すると、Ｃ１はステップ３０．１、４０．１で下記によってＸ１’へ復号される。
Ｙ１’＝ＡＥＳＫ２−１（Ｃ１）
【数３】
2010500630.tif 000005
【００１９】
同様に、ステップ３０．２、．．．、３０．ｎは、Ｃ２、．．．、ＣｎからＹ２’、．．．、Ｙｎ’を得るように適用され、ステップ４０．２、．．．、４０．ｎは、Ｙ２’、．．．、Ｙｎ’からＸ２’、．．．、Ｘｎ’を得るように適用される。
【００２０】
オプションとして、末尾の入力ブロックＸｎが完全な１２８ビットのブロックサイズより小さい場合に、効率的な方法を末尾の入力ブロックＸｎの暗号化および復号に使用できる。例示のために、Ｘｎは６４ビットであると仮定する。次に、図３を参照すると、暗号化のためにＸＯＲ演算５０がＸｎとＡＥＳＫ１（ｎ）の先頭の６４ビットとの間で実行される。結果として得られる６４ビットのストリング
【数４】
2010500630.tif 000006
は、先行する暗号化されたブロックＣ（ｎ−１）の末尾の６４ビットと連結されて（ステップ６０）、１２８ビットのストリングＺｎを形成する。結果として得られるストリングは、ＡＥＳＫ２（●）を使用して通常の方法で暗号化される（ステップ７０）。
【００２１】
図４を参照すると、Ｃ（ｎ−１）およびＣｎを復号するように、受信者はまず、Ｃ（ｎ−１）の先頭の６４ビット、およびＸｎ（
【数５】
2010500630.tif 000007
を形成するようにランダム化されている）とＣ（ｎ−１）の末尾の６４ビットとを連結６０して暗号化７０した結果として得られるＣｎの１２８ビットからなる１９２ビットの到着および収集を待機する。まず、Ｃｎ、すなわち、連結されたストリングに対応する末尾の１２８ビットが復号される（ステップ８０）。Ｘｎ’は次いで、
【数６】
2010500630.tif 000008
すなわち、末尾の復号された６４ビットから復元されることが可能である（ステップ９０）。それから、Ｃ（ｎ−１）は、連結（ステップ１００）によって再アセンブルされ、復号されて、Ｘ（ｎ−１）’が得られる。
【００２２】
ここに述べる方法は、デジタル信号プロセッサ、ソフトウェアプログラムの制御下で動作するデジタルコンピュータ、または他の適切に適合された回路によって実行され得ることに留意されたい。暗号化の後、メッセージは適切に調整され、エアインターフェイスを介して、または光学もしくは電子送信媒体上で通信信号として送信される。復号の前に、受信者は同様に、エアインターフェイスから、または光学もしくは電子媒体から通信信号を受信し、その通信信号を適切に調整する。
【図１】
2010500630.tif 000009
【図２】
2010500630.tif 000010
【図３】
2010500630.tif 000011
【図４】
2010500630.tif 000012
【国際調査報告】
2010500630.tif 000013
2010500630.tif 000014
2010500630.tif 000015