説明

メッセージ認証のための暗号化方法

【課題】計算資源の使用において経済的であり、かつ、メッセージを安全に暗号化する方法を提供する。
【解決手段】暗号化方法において、データの入力ブロックは、少なくとも部分的にランダム化されたストリングを生成するように可逆的に処理される。ランダム化されたストリングは、次いでブロック暗号によって暗号化される。復号では、暗号化されたデータの入力ブロックは、まずブロック暗号に対して復号される。その後、ランダム化が元に戻される。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2006年8月15日に出願された仮出願第60/837683号の優先権を主張するものである。
【0002】
本発明は、メッセージを安全に暗号化する方法に関する。
【背景技術】
【0003】
多くの種類の通信において、メッセージを改竄および無許可アクセスから保護する必要がある。暗号化は、そのような目的に長く使用されてきた。暗号化技術の高度な適用例では、暗号化鍵が使用されて、暗号化されたメッセージに対して安全性を与えるだけでなく、メッセージの完全性も保護する。たとえば、送信に先立ちデジタル署名がメッセージに付加され、そのデジタル署名の第2バージョンが受信者によって受信済みメッセージから計算され得る。デジタル署名の2つのバージョンが一致しない場合、受信者は、メッセージの完全性が改竄によって損なわれたことを知ることになる。
【0004】
メッセージの完全性を保証するには、付加されたデジタル署名と一緒に、頑強な暗号の保護下でメッセージを送信することが望ましい。頑強性の特性は、たとえば、悪意のある攻撃の結果として、暗号化されたメッセージの1ビットが変更された場合でさえ、復号の際に、変更の影響がメッセージ全体にわたって分配されることを確実にする。したがって、特に、デジタル署名が影響を受け、受信者によってローカルで計算されたバージョンと一致しない可能性が高くなる。
【0005】
メッセージの暗号化に使用されるある種の暗号は、ブロック暗号と呼ばれる。ブロック暗号は、入力ストリングとして固定長のバイナリデータのブロックをとり、出力ストリングとして固定長のバイナリデータのブロックを生成する。たとえば、AES(Advanced Encryption Standard)は、通常、128ビットの入力および出力ブロックを有する、よく知られているブロック暗号である。
【0006】
AESなどのブロック暗号を適用する1つの方法は、ECB(Electronic Codebook)暗号化によるものである。ECB暗号化では、メッセージはブロック暗号のための適切な入力長のブロックに分割され、各ブロックは、ブロック暗号を使用して独立して暗号化される。
【0007】
ECB暗号化の1つの弱点は、リプレイ攻撃を受けやすいことである。つまり、攻撃者は、送信されたメッセージ内で反復ストリングを探すことができる。ECB暗号化では、平文ストリングの反復は、同一の暗号化されたストリングの反復を招くことがある。そのような場合に、反復が攻撃者によって認識され得る。
【0008】
改竄、リプレイ攻撃、および他の種類の攻撃に対して、暗号化の方法をより堅牢にする様々な試みがなされてきた。より堅牢なアプローチの一例は、本発明とともに本発明の譲受人に譲渡された、米国特許出願第11/261399号明細書、2005年10月28日出願、S.Patelら、表題「Air−Interface Application Layer Security For Wireless Networks」に述べられている。そのアプローチでは、たとえば、ブロック暗号は一対の疑似ランダムストリングAおよびBの生成に使用される。平文のブロックXは、式AX+Bを形成することによって暗号化され、式中、AおよびXは多項式乗算を使用して結合される。ストリングAおよびBを結合して使用することにより、頑強性ならびにリプレイ攻撃に対する堅牢性が提供される。
【0009】
このような多項式の暗号化方法は有用であるが、暗号化のための乗算演算では、また復号のための逆の操作ではなおさら、計算量が莫大であるため、比較的高価である。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】米国特許出願第11/261399号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
したがって、それらの計算資源の使用において経済的であり、堅牢な暗号化の方法が依然として必要とされている。
【課題を解決するための手段】
【0012】
我々はそのような方法を見いだした。広範な態様では、我々の方法は、データの入力ブロックを可逆的に処理して、少なくとも部分的にランダム化されたストリングを生成する。ランダム化されたストリングは、次いでブロック暗号によって暗号化される。復号では、暗号化されたデータの入力ブロックは、まずブロック暗号に対して復号される。その後、ランダム化が元に戻される。
【図面の簡単な説明】
【0013】
【図1】実施形態の一例における、本発明による暗号化方法を示す流れ図である。
【図2】実施形態の一例における、本発明による復号方法を示す流れ図である。
【図3】入力データの部分的なストリングを暗号化するための、図1の方法の変形において使用できる方法を示す流れ図である。
【図4】入力データの部分的なストリングを復号するための、図2の方法の変形において使用できる方法を示す流れ図である。
【発明を実施するための形態】
【0014】
本明細書で述べる暗号化方法は、データトラフィック、音声トラフィック、および信号データを含む、あらゆる種類のコンテンツの無線送信の安全性および完全性を保護するための、特定の用途を有するものである。このような送信は、たとえば、およびこれに限定されるものではないが、無線ユーザー端末と無線ネットワークの基地局との間で発生し得る。しかし、述べられている方法は、無線ネットワークのみに限定されるものではなく、代わりに有線通信の分野にも適した用途であることが理解されよう。同様に、述べられている方法は、ユーザー端末ならびにネットワークサーバーおよびスイッチを含む、様々な種類のネットワークエンティティ間の通信の保護にも適している。
【0015】
ある特定の例において、セッション鍵Kは、保護された通信のために2当事者間で事前に安全に交換される。よく知られている方法により、そのセッション鍵は、2つのさらなる鍵K1およびK2の生成に使用される。たとえば、K1は、Kを入力鍵としてとり、適切にゼロでパディングされた整数1を引数としてとるAESアルゴリズム、K1=AES(1)によって生成され得る。同様に、K2=AES(2)が得られる。鍵K1は、AESとともに使用されて、疑似ランダムのビットストリングAESK1(1)、AESK1(2)などを生成する。例として、疑似ランダムストリングを形成するためのAESの引数は、適切にパディングされた連続する整数1、2、などとすることができる。しかしながら、復号に使用する同じ値を受信者も知っている限り、任意の値のシーケンスを使用できる。
【0016】
図1を参照すると、最初の暗号化ステップ10では、nブロックの入力データX1、...、Xnは、
【数1】

に従って、AESによって暗号化される。前述の式中、記号
【数2】

は、論理排他的OR(XOR)演算を表す。これらの演算の結果は、入力ブロックに少なくとも部分的なランダム化を追加する。演算は、各ブロックと対応する疑似ランダムストリングとの間の第2のXOR演算が元の入力ブロックを復元するので可逆的である。
【0017】
安全性は低いがより経済的な方法が望まれる場合は、より短い疑似ランダムストリングを使用でき、この方法では各入力ブロックの一部分のみがランダム化される。さらに、疑似ランダムストリングを生成するためのブロック暗号に対する別法がある。たとえば、前述の疑似ランダムストリングのそれぞれは、ストリーム暗号によって生成される長い疑似ランダムストリングのブロックであってよい。
【0018】
第2の暗号化ステップ20では、Y1、Y2、などのそれぞれは、K2を入力鍵としてとるAESによって暗号化されて、暗号テキストのブロックC1、C2、などを生成する。つまり、C1=AESK2(Y1)、C2=AESK2(Y2)、...、Cn=AESK2(Yn)である。
【0019】
復号は、上記ステップの逆の操作である。たとえば、図2を参照すると、C1はステップ30.1、40.1で下記によってX1’へ復号される。
Y1’=AESK2−1(C1)
【数3】

【0020】
同様に、ステップ30.2、...、30.nは、C2、...、CnからY2’、...、Yn’を得るように適用され、ステップ40.2、...、40.nは、Y2’、...、Yn’からX2’、...、Xn’を得るように適用される。
【0021】
オプションとして、末尾の入力ブロックXnが完全な128ビットのブロックサイズより小さい場合に、効率的な方法を末尾の入力ブロックXnの暗号化および復号に使用できる。例示のために、Xnは64ビットであると仮定する。次に、図3を参照すると、暗号化のためにXOR演算50がXnとAESK1(n)の先頭の64ビットとの間で実行される。結果として得られる64ビットのストリング
【数4】

は、先行する暗号化されたブロックC(n−1)の末尾の64ビットと連結されて(ステップ60)、128ビットのストリングZnを形成する。結果として得られるストリングは、AESK2(●)を使用して通常の方法で暗号化される(ステップ70)。
【0022】
図4を参照すると、C(n−1)およびCnを復号するように、受信者はまず、C(n−1)の先頭の64ビット、およびXn(
【数5】

を形成するようにランダム化されている)とC(n−1)の末尾の64ビットとを連結60して暗号化70した結果として得られるCnの128ビットからなる192ビットの到着および収集を待機する。まず、Cn、すなわち、連結されたストリングに対応する末尾の128ビットが復号される(ステップ80)。Xn’は次いで、
【数6】

すなわち、末尾の復号された64ビットから復元されることが可能である(ステップ90)。それから、C(n−1)は、連結(ステップ100)によって再アセンブルされ、復号されて、X(n−1)’が得られる。
【0023】
ここに述べる方法は、デジタル信号プロセッサ、ソフトウェアプログラムの制御下で動作するデジタルコンピュータ、または他の適切に適合された回路によって実行され得ることに留意されたい。暗号化の後、メッセージは適切に調整され、エアインターフェイスを介して、または光学もしくは電子送信媒体上で通信信号として送信される。復号の前に、受信者は同様に、エアインターフェイスから、または光学もしくは電子媒体から通信信号を受信し、その通信信号を適切に調整する。

【特許請求の範囲】
【請求項1】
メッセージデータの少なくとも1つのブロックを取得することと、メッセージデータのブロックを少なくとも部分的にランダム化することと、ランダム化されたブロックをブロック暗号を使用して暗号化することと、暗号化されたブロックを送信することとを含む、方法。
【請求項2】
メッセージデータのブロックのランダム化が、疑似ランダムストリングを提供することと、メッセージデータのブロックの少なくとも数ビットのそれぞれと疑似ランダムストリングの各ビットとの間でXOR演算を実行することとを含む、請求項1に記載の方法。
【請求項3】
セッション鍵から鍵K1およびK2を生成することをさらに含み、
疑似ランダムストリングが、K1を入力鍵としてとる暗号から生成されることによって提供され、
ランダム化されたブロックが、K2を入力鍵としてとるブロック暗号を使用して暗号化される、請求項2に記載の方法。
【請求項4】
送信された信号を受信することと、暗号化されたメッセージを取得するように受信済み信号を調整することと、メッセージの少なくとも1つのデータブロックをブロック暗号から復号することと、復号されたブロックをランダム化解除することとを含む、方法。
【請求項5】
メッセージデータのブロックのランダム化解除が、疑似ランダムストリングを提供することと、メッセージデータのブロックの少なくとも数ビットのそれぞれと疑似ランダムストリングの各ビットとの間でXOR演算を実行することとを含む、請求項4に記載の方法。
【請求項6】
セッション鍵から鍵K1およびK2を生成することをさらに含み、
疑似ランダムストリングが、K1を入力鍵としてとる暗号から生成することによって提供され、
受信済みメッセージブロックが、K2を入力鍵としてとるブロック暗号の逆の操作を使用して復号される、請求項5に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−47822(P2013−47822A)
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−222786(P2012−222786)
【出願日】平成24年10月5日(2012.10.5)
【分割の表示】特願2009−524624(P2009−524624)の分割
【原出願日】平成19年8月8日(2007.8.8)
【出願人】(596092698)アルカテル−ルーセント ユーエスエー インコーポレーテッド (965)
【Fターム(参考)】