(57)【特許請求の範囲】
【請求項１】
メッセージを認証するために構成されたワイヤレスデバイスであって、
前記メッセージを取得するための手段と、
鍵ストリームを生成するための手段と、
前記ワイヤレスデバイスで、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算するための手段と、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算され、ここにおいて、前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、ワイヤレスデバイス。
【請求項２】
前記第２の３２ビット変数が最初に０に設定される、請求項１に記載のワイヤレスデバイス。
【請求項３】
前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、請求項１に記載のワイヤレスデバイス。
【請求項４】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、請求項１に記載のワイヤレスデバイス。
【請求項５】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、請求項１に記載のワイヤレスデバイス。
【請求項６】
前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、請求項１に記載のワイヤレスデバイス。
【請求項７】
前記メッセージを取得するための前記手段が、送信メッセージを生成するための手段を備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信するための手段をさらに備える、請求項６に記載のワイヤレスデバイス。
【請求項８】
前記メッセージを取得するための前記手段が、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信するための手段を備え、
前記単一のメッセージから送信メッセージ認証コードを抽出するための手段と、
前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較するための手段と
をさらに備える、請求項６に記載のワイヤレスデバイス。
【請求項９】
前記鍵ストリームが、ストリーム暗号を使用して生成される、請求項１に記載のワイヤレスデバイス。
【請求項１０】
前記ワイヤレスデバイスがワイヤレス通信デバイスである、請求項１に記載のワイヤレスデバイス。
【請求項１１】
前記ワイヤレスデバイスが基地局である、請求項１に記載のワイヤレスデバイス。
【請求項１２】
キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、請求項１に記載のワイヤレスデバイス。
【請求項１３】
メッセージを認証するために構成された装置であって、
前記メッセージを取得することと、鍵ストリームを生成することと、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算することとを行うように構成された回路を備え、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算され、前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、装置。
【請求項１４】
前記第２の３２ビット変数が最初に０に設定される、請求項１３に記載の装置。
【請求項１５】
前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、請求項１３に記載の装置。
【請求項１６】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、請求項１３に記載の装置。
【請求項１７】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、請求項１３に記載の装置。
【請求項１８】
前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、請求項１３に記載の装置。
【請求項１９】
前記メッセージを取得するように構成された前記回路が、送信メッセージを生成するように構成された回路を備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信するように構成された回路をさらに備える、請求項１８に記載の装置。
【請求項２０】
前記メッセージを取得するように構成された前記回路が、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信するように構成された回路を備え、前記単一のメッセージから送信メッセージ認証コードを抽出するように構成された回路と、前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較するように構成された回路とをさらに備える、請求項１８に記載の装置。
【請求項２１】
前記鍵ストリームが、ストリーム暗号を使用して生成される、請求項１３に記載の装置。
【請求項２２】
前記装置がワイヤレス通信デバイスである、請求項１３に記載の装置。
【請求項２３】
前記装置が基地局である、請求項１３に記載の装置。
【請求項２４】
キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、請求項１３に記載の装置。
【請求項２５】
ワイヤレスデバイスによってメッセージを認証するための方法であって、
前記メッセージを取得することと、
鍵ストリームを生成することと、
前記ワイヤレスデバイスで、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算することと、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算され、ここにおいて、前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、方法。
【請求項２６】
前記第２の３２ビット変数が最初に０に設定される、請求項２５に記載の方法。
【請求項２７】
前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、請求項２５に記載の方法。
【請求項２８】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、請求項２５に記載の方法。
【請求項２９】
前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、請求項２５に記載の方法。
【請求項３０】
前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、請求項２５に記載の方法。
【請求項３１】
前記メッセージを取得することが、送信メッセージを生成することを備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信することをさらに備える、請求項３０に記載の方法。
【請求項３２】
前記メッセージを取得することが、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信することを備え、
前記単一のメッセージから送信メッセージ認証コードを抽出することと、
前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較することと
をさらに備える、請求項３０に記載の方法。
【請求項３３】
前記鍵ストリームが、ストリーム暗号を使用して生成される、請求項２５に記載の方法。
【請求項３４】
前記ワイヤレスデバイスがワイヤレス通信デバイスである、請求項２５に記載の方法。
【請求項３５】
前記ワイヤレスデバイスが基地局である、請求項２５に記載の方法。
【請求項３６】
キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、請求項２５に記載の方法。
【請求項３７】
命令をその上に有する非一時的コンピュータ可読媒体であって、前記命令は、
ワイヤレスデバイスにメッセージを取得させるためのコードと、
前記ワイヤレスデバイスに鍵ストリームを生成させるためのコードと、
前記ワイヤレスデバイスに、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算させるためのコードと、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算され、ここにおいて、前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、非一時的コンピュータ可読媒体。
【請求項３８】
前記第２の３２ビット変数が最初に０に設定される、請求項３７に記載の非一時的コンピュータ可読媒体。
【請求項３９】
前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、請求項３７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、一般にワイヤレス通信システムに関する。より詳細には、本開示は、キャリーレス乗算（carryless multiplication）を用いたユニバーサルハッシュ関数（universal hash function）を使用したメッセージ認証のためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]ワイヤレス通信システムは、音声、ビデオ、データなど、様々なタイプの通信コンテンツを提供するために広く展開されている。これらのシステムは、１つまたは複数の基地局との複数のモバイルデバイスの同時通信をサポートすることが可能な多元接続システムであり得る。
【０００３】
[0003]ワイヤレス通信に追加のセキュリティを与えるために、暗号化技法が使用され得る。暗号化は、盗聴者／ハッカーがメッセージを読み取り、および／またはメッセージを改変するのを防ぐために、メッセージを符号化するプロセスである。許可された当事者のみが、解読アルゴリズムを使用して暗号化されたメッセージを復号し得る。暗号化技法／解読技法にもかかわらず、メッセージの完全性（integrity）および真正性（authenticity）を保護するために他の技法が必要とされ得る。暗号化されたメッセージを認証するための改善された方法によって利益が実現され得る。
【図面の簡単な説明】
【０００４】
【図１】[0004]複数のワイヤレスデバイスをもつワイヤレス通信システムを示す図。
【図２】[0005]送信ワイヤレスデバイスと受信ワイヤレスデバイスとの間の認証プロシージャを示すブロック図。
【図３】[0006]送信メッセージに認証を与えるための方法の流れ図。
【図４】[0007]受信メッセージを認証するための方法の流れ図。
【図５】[0008]本システムおよび方法において使用するための１２８−ＥＩＡ３モジュールを示すブロック図。
【図６】[0009]入力メッセージ（Ｍ）を使用してメッセージ認証コード（ＭＡＣ：message authentication code）を計算するための方法の流れ図。
【図７】[0010]キャリーレス乗算を使用したメッセージ認証コード（ＭＡＣ）の計算を示すブロック図。
【図８】[0011]ワイヤレス通信デバイス内に含まれ得るいくつかの構成要素を示す図。
【図９】[0012]基地局内に含まれ得るいくつかの構成要素を示す図。
【発明を実施するための形態】
【０００５】
[0013]ワイヤレスに送信されたメッセージに完全性および真正性保証を与えるために、ワイヤレス通信においてメッセージ認証が使用され得る。このメッセージ認証は、ユニバーサルハッシュ関数を使用してメッセージ認証コード（ＭＡＣ）を生成することを含み得る。ユニバーサルハッシュ関数は、入力メッセージを認証するための（鍵ストリーム中の）鍵として働く。しかしながら、そのような認証は著しい数の機械命令を必要とし得る。ユニバーサルハッシュ関数を計算するためにキャリーレス乗算を使用することによって、必要とされる機械命令の数は大幅に低減され、その結果、より効率的な演算が生じ得る。これにより、完全性アルゴリズムのスループットが改善され得る。さらに、キャリーレス乗算を使用してユニバーサルハッシュ関数を計算することは、メッセージビット値とは無関係である壁時計時間（wall clock time）で実行され得る。
【０００６】
[0014]以下の説明では、簡潔および明快の理由で、国際電気通信連合（ＩＴＵ：International Telecommunication Union）によって第３世代パートナーシッププロジェクト（３ＧＰＰ：3rd Generation Partnership Project）の下で公表されたＬＴＥ規格に関連する用語を使用する。本発明は、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、直交周波数分割多元接続（ＯＦＤＭＡ）などに関係する技術およびその関連規格など、他の技術にも適用可能であることに留意されたい。異なる技術に関連する用語は異なることがある。たとえば、考察する技術に応じて、ワイヤレスデバイスは、ほんのいくつかの例を挙げれば、ユーザ機器、移動局、モバイル端末、加入者ユニット、アクセス端末などと時々呼ばれることがある。同様に、基地局は、アクセスポイント、ノードＢ、発展型ノードＢなどと時々呼ばれることがある。ここでは、適用可能なとき、異なる用語が異なる技術に適用されることに留意されたい。
【０００７】
[0015] 図１に、複数のワイヤレスデバイスをもつワイヤレス通信システム１００を示す。ワイヤレス通信システム１００は、音声、データなど、様々なタイプの通信コンテンツを提供するために広く展開されている。ワイヤレスデバイスは基地局１０２またはワイヤレス通信デバイス１０４であり得る。基地局１０２とワイヤレス通信デバイス１０４の両方は、（たとえば、送信メッセージに認証を与えるためにおよび受信メッセージのための認証を取得するために）暗号化されたメッセージを認証するように構成され得る。認証中に、キャリーレス乗算を使用してユニバーサルハッシュ関数が計算され得る。キャリーレス乗算を使用してユニバーサルハッシュ関数を計算することについては、図５および図６に関して以下でさらに詳細に説明する。
【０００８】
[0016]基地局１０２は１つまたは複数のワイヤレス通信デバイス１０４と通信する局である。基地局１０２は、アクセスポイント、ブロードキャスト送信機、ノードＢ、発展型ノードＢなどと呼ばれることもあり、それらの機能の一部または全部を含み得る。本明細書では「基地局」という用語を使用する。各基地局１０２は特定の地理的エリアに通信カバレージを与える。基地局１０２は１つまたは複数のワイヤレス通信デバイス１０４に通信カバレージを与え得る。「セル」という用語は、この用語が使用されるコンテキストに応じて基地局１０２および／またはそれのカバレージエリアを指すことがある。
【０００９】
[0017]ワイヤレスシステム（たとえば、多元接続システム）における通信は、ワイヤレスリンクを介した送信によって達成され得る。そのような通信リンクは、単入力単出力（ＳＩＳＯ）、多入力単出力（ＭＩＳＯ）または多入力多出力（ＭＩＭＯ）システムを介して確立され得る。ＭＩＭＯシステムは、それぞれ、データ伝送のための複数（ＮT）個の送信アンテナと複数（ＮR）個の受信アンテナとを装備した、（１つまたは複数の）送信機と（１つまたは複数の）受信機とを含む。ＳＩＳＯシステムおよびＭＩＳＯシステムはＭＩＭＯシステムの特定の事例である。複数の送信アンテナおよび受信アンテナによって生成された追加の次元数が利用された場合、ＭＩＭＯシステムは、改善された性能（たとえば、より高いスループット、より大きい容量または改善された信頼性）を与えることができる。
【００１０】
[0018]ワイヤレス通信システム１００はＭＩＭＯを利用し得る。ＭＩＭＯシステムは、時分割複信（ＴＤＤ）システムと周波数分割複信（ＦＤＤ）システムの両方をサポートし得る。ＴＤＤシステムでは、アップリンク送信とダウンリンク送信とが同じ周波数領域中で行われるので、相反原理によりアップリンクチャネルからのダウンリンクチャネルの推定が可能である。これにより、送信ワイヤレスデバイスは、その送信ワイヤレスデバイスが受信した通信から送信ビームフォーミング利得を抽出することが可能になる。
【００１１】
[0019]ワイヤレス通信システム１００は、利用可能なシステムリソース（たとえば、帯域幅および送信電力）を共有することによって複数のワイヤレス通信デバイス１０４との通信をサポートすることが可能な多元接続システムであり得る。そのような多元接続システムの例としては、符号分割多元接続（ＣＤＭＡ）システム、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ（登録商標））システム、時分割多元接続（ＴＤＭＡ）システム、周波数分割多元接続（ＦＤＭＡ）システム、直交周波数分割多元接続（ＯＦＤＭＡ）システム、シングルキャリア周波数分割多元接続（ＳＣ−ＦＤＭＡ）システム、第３世代パートナーシッププロジェクト（３ＧＰＰ）ロングタームエボリューション（ＬＴＥ：Long Term Evolution）システム、および空間分割多元接続（ＳＤＭＡ）システムがある。
【００１２】
[0020]「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。ＣＤＭＡネットワークは、ユニバーサル地上波無線アクセス（ＵＴＲＡ：Universal Terrestrial Radio Access）、ｃｄｍａ２０００などの無線技術を実装し得る。ＵＴＲＡは、Ｗ−ＣＤＭＡと低チップレート（ＬＣＲ）とを含み、ｃｄｍａ２０００は、ＩＳ−２０００、ＩＳ−９５およびＩＳ−８５６規格をカバーする。ＴＤＭＡネットワークは、モバイル通信用グローバルシステム（ＧＳＭ（登録商標）：Global System for Mobile Communications）などの無線技術を実装し得る。ＯＦＤＭＡネットワークは、発展型ＵＴＲＡ（Ｅ−ＵＴＲＡ：Evolved UTRA）、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＩＥＥＥ８０２．２０、Ｆｌａｓｈ−ＯＦＤＭＡなどの無線技術を実装し得る。ＵＴＲＡ、Ｅ−ＵＴＲＡおよびＧＳＭは、ユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ：Universal Mobile Telecommunication System）の一部である。ロングタームエボリューション（ＬＴＥ）は、Ｅ−ＵＴＲＡを使用するＵＭＴＳのリリースである。ＵＴＲＡ、Ｅ−ＵＴＲＡ、ＧＳＭ、ＵＭＴＳおよびロングタームエボリューション（ＬＴＥ）は、「第３世代パートナーシッププロジェクト」（３ＧＰＰ）と称する団体からの文書に記載されている。ｃｄｍａ２０００は、「第３世代パートナーシッププロジェクト２」（３ＧＰＰ２：3rd Generation Partnership Project 2）と称する団体からの文書に記載されている。
【００１３】
[0021]第３世代パートナーシッププロジェクト（３ＧＰＰ）は、グローバルに適用可能な第３世代（３Ｇ）モバイルフォン仕様を定義することを目的とする電気通信協会のグループ間のコラボレーションである。３ＧＰＰロングタームエボリューション（ＬＴＥ）は、ユニバーサルモバイルテレコミュニケーションズシステム（ＵＭＴＳ：Universal Mobile Telecommunications System）モバイルフォン規格を改善することを目的とした３ＧＰＰプロジェクトである。３ＧＰＰは、次世代のモバイルネットワーク、モバイルシステムおよびモバイルデバイスのための仕様を定義し得る。
【００１４】
[0022]３ＧＰＰロングタームエボリューション（ＬＴＥ）では、ワイヤレス通信デバイス１０４は「ユーザ機器」（ＵＥ）と呼ばれることがある。ワイヤレス通信デバイス１０４は、端末、アクセス端末、加入者ユニット、局などと呼ばれることもあり、それらの機能の一部または全部を含み得る。ワイヤレス通信デバイス１０４は、セルラーフォン、携帯情報端末（ＰＤＡ）、ワイヤレスデバイス、ワイヤレスモデム、ハンドヘルドデバイス、ラップトップコンピュータなどであり得る。
【００１５】
[0023]ワイヤレス通信デバイス１０４は、所与の瞬間において、ダウンリンク１０６および／またはアップリンク１０８上で０、１つ、または複数の基地局１０２と通信し得る。ダウンリンク１０６（または順方向リンク）は、基地局１０２からワイヤレス通信デバイス１０４への通信リンクを指し、アップリンク１０８（または逆方向リンク）は、ワイヤレス通信デバイス１０４から基地局１０２への通信リンクを指す。
【００１６】
[0024]ワイヤレス通信デバイス１０４と基地局１０２の両方は暗号化／解読モジュール１１０ａ〜ｂを含み得る。暗号化／解読モジュール１１０は、ワイヤレス通信デバイス１０４と基地局１０２との間でワイヤレスに送られたメッセージの暗号化および解読を可能にし得る。たとえば、暗号化／解読モジュール１１０ａは、ワイヤレス通信デバイス１０４がメッセージを暗号化することを可能にし得る。暗号化されたメッセージは、次いで、アップリンク１０８を介して基地局１０２に送信され得る。基地局１０２は、メッセージを解読するために暗号化／解読モジュール１１０ｂを使用し得る。
【００１７】
[0025]暗号化されたメッセージを使用するとき、メッセージを認証し、偽造を検出するために認証プロシージャが使用され得る。認証プロシージャは、送信より前にメッセージ中に認証を挿入することと、受信メッセージの認証を検証することとを含み得る。暗号化／解読モジュール１１０は１２８−ＥＩＡ３モジュール１１２ａ〜ｂを含み得る。１２８−ＥＩＡ３モジュール１１２は、キャリーレス乗算を使用して、暗号化されたメッセージのための認証プロシージャ（たとえば、送信より前に認証を挿入することおよび受信メッセージのための認証を取得すること）を実行し得る。したがって、１２８−ＥＩＡ３モジュール１１２は、キャリーレス乗算関数１３９ａ〜ｂを使用する、完全性アルゴリズムのためのユニバーサルハッシュ関数を使用し得る。キャリーレス乗算関数１３９については、図５および図６に関して以下でさらに詳細に説明する。
【００１８】
[0026]ＬＴＥシステムのセキュリティアーキテクチャ内に、機密性および完全性のための規格化されたアルゴリズムがある。アルゴリズムの２つのセット（１２８−ＥＥＡ１／１２８−ＥＩＡ１および１２８−ＥＥＡ２／１２８−ＥＩＡ２）は、（３ＧＰＰ機密性および完全性アルゴリズム、文献１：ｆ８およびｆ９仕様、（３ＧＰＰ  ＴＳ３５．２０１リリース６）と、３ＧＰＰシステムアーキテクチャエボリューション（ＳＡＥ：System Architecture Evolution）、セキュリティアーキテクチャ、（３ＧＰＰ  ＴＳ３３．４０１リリース９）との仕様において）すでに指定されている。１２８−ＥＩＡ３は、ストリーム暗号（ＺＵＣ）に基づいて完全性（すなわち、認証）のための第３のアルゴリズムを適用する。１２８−ＥＩＡ３アルゴリズムは、完全性鍵（ＩＫ：integrity key）を使用して所与の入力メッセージの３２ビットメッセージ認証コード（ＭＡＣ）を計算し得る。メッセージ認証コード（ＭＡＣ）によって採用されるコアアルゴリズムはユニバーサルハッシュおよびストリーム暗号（ＺＵＣ）である。したがって、１２８−ＥＩＡ３アルゴリズムは、メッセージビットごとに１つの３２ビット排他的ＯＲ（ＸＯＲ）命令を必要とするソフトウェアでメッセージ認証コード（ＭＡＣ）を計算する。
【００１９】
[0027]図２は、送信ワイヤレスデバイス２１４ａと受信ワイヤレスデバイス２１４ｂとの間の認証プロシージャを示すブロック図である。送信ワイヤレスデバイス２１４ａはワイヤレス通信デバイス１０４または基地局１０２のいずれかであり得る。受信ワイヤレスデバイス２１４ｂはワイヤレス通信デバイス１０４または基地局１０２のいずれかであり得る。送信ワイヤレスデバイス２１４ａと受信ワイヤレスデバイス２１４ｂの両方における認証プロシージャは１２８−ＥＩＡ３アルゴリズムを使用し得る。
【００２０】
[0028]送信ワイヤレスデバイス２１４ａは送信メッセージ２１８を取得し得る（すなわち、送信メッセージ２１８を生成することによって）。一構成では、送信ワイヤレスデバイス２１４ａ上のプロセッサが送信メッセージ２１８を生成し得る。送信メッセージ２１８は１２８−ＥＩＡ３モジュール２１２ａに与えられ得る。１２８−ＥＩＡ３モジュール２１２ａは、（図５および図７に関して以下で説明する）キャリーレス乗算関数２３９ａを含み得る。送信メッセージ２１８を使用して、１２８−ＥＩＡ３モジュール２１２ａは送信メッセージ認証コード（ＭＡＣ）２２０ａを出力し得る。送信メッセージ２１８と送信メッセージ認証コード（ＭＡＣ）２２０ａの両方は送信機２２２に与えられ得る。送信機２２２は、送信メッセージ２１８と送信メッセージ認証コード（ＭＡＣ）２２０ａとを組み合わせて、メッセージ２２４を取得し得る。送信機２２２は、次いで、（送信メッセージ認証コード（ＭＡＣ）２２０ｂとともに）メッセージ２２４を送信し得る。
【００２１】
[0029]受信ワイヤレスデバイス２１４ｂは、（たとえば、受信機２２８を使用してメッセージ２２４を受信することによって）メッセージ２２４を取得し得る。一構成では、受信ワイヤレスデバイス２１４ｂは、アンテナを使用してメッセージ２２４を取得し得る。受信機２２８はメッセージ２２４から送信メッセージ認証コード（ＭＡＣ）２２０ｃを抽出し得る。受信機２２８は送信メッセージ認証コード（ＭＡＣ）２２０ｃを認証モジュール２２６に与え得る。受信機２２８はまた、受信メッセージ２３０を１２８−ＥＩＡ３モジュール２１２ｂに与え得る。１２８−ＥＩＡ３モジュール２１２ｂは、受信メッセージ２３０を使用して受信メッセージ認証コード（ＭＡＣ）２２０ｄを計算し得る。１２８−ＥＩＡ３モジュール２１２ｂは、（図５および図７に関して以下で説明する）キャリーレス乗算関数２３９ｂを含み得る。１２８−ＥＩＡ３モジュール２１２ｂは受信メッセージ認証コード（ＭＡＣ）２２０ｄを認証モジュール２２６に与え得る。次いで、認証モジュール２２６は、受信されたメッセージ２２４が認証されるかどうかを決定するために送信メッセージ認証コード（ＭＡＣ）２２０ｃと受信メッセージ認証コード（ＭＡＣ）２２０ｄとを比較し得る。
【００２２】
[0030]（１２８−ＥＩＡ３アルゴリズムなどの）メッセージ認証コード（ＭＡＣ）アルゴリズムは鍵付き（暗号化）ハッシュ関数と呼ばれることもある。メッセージ認証コード（ＭＡＣ）アルゴリズムは、秘密鍵と、認証されるべき任意の長さのメッセージ（たとえば、送信メッセージ２１８または受信メッセージ２３０）とを入力として受け付け、メッセージ認証コード（ＭＡＣ）２２０タグを出力し得る。受信ワイヤレスデバイス２１４ｂは（偽造などの）メッセージコンテンツの変更を検出することができるので、メッセージ認証コード（ＭＡＣ）アルゴリズムを使用することは、メッセージ２２４のデータの完全性と真正性の両方を保護し得る。
【００２３】
[0031]図３は、送信メッセージ２１８に認証を与えるための方法３００の流れ図である。方法３００は、（基地局１０２またはワイヤレス通信デバイス１０４などの）送信ワイヤレスデバイス２１４ａによって実行され得る。送信ワイヤレスデバイス２１４ａは、３０２において送信メッセージ２１８を生成する。送信ワイヤレスデバイス２１４ａは、３０４において、送信メッセージ認証コード（ＭＡＣ）２２０ａを取得するために送信メッセージ２１８に１２８−ＥＩＡ３アルゴリズムを適用する。送信ワイヤレスデバイス２１４ａは、３０６において、単一のメッセージ２２４中で送信メッセージ２１８と送信メッセージ認証コード（ＭＡＣ）２２０ａとを受信ワイヤレスデバイス２１４ｂに送信する。
【００２４】
[0032]図４は、受信メッセージ２２４を認証するための方法４００の流れ図である。方法４００は、（基地局１０２またはワイヤレス通信デバイス１０４などの）受信ワイヤレスデバイス２１４ｂによって実行され得る。受信ワイヤレスデバイス２１４ｂは、４０２において、送信メッセージ認証コード（ＭＡＣ）２２０ｂを含むメッセージ２２４を受信する。受信ワイヤレスデバイス２１４ｂは、４０４において、受信メッセージ２２４から送信メッセージ認証コード（ＭＡＣ）２２０ｃを抽出する。受信ワイヤレスデバイス２１４ｂは、４０６において、受信メッセージ認証コード（ＭＡＣ）２２０ｄを取得するために受信メッセージ２３０に１２８−ＥＩＡ３アルゴリズムを適用する。受信ワイヤレスデバイス２１４ｂは、４０８において、メッセージ２２４の認証を決定するために受信メッセージ認証コード（ＭＡＣ）２２０ｄを送信メッセージ認証コード（ＭＡＣ）２２０ｃと比較する。たとえば、受信メッセージ認証コード（ＭＡＣ）２２０ｄが送信メッセージ認証コード（ＭＡＣ）２２０ｃと同じである場合、メッセージ２２４は真正であると見なされ得る。別の例として、受信メッセージ認証コード（ＭＡＣ）２２０ｄが送信メッセージ認証コード（ＭＡＣ）２２０ｃとは異なる場合、メッセージ２２４は真正でないと見なされ得る。
【００２５】
[0033]図５は、本システムおよび方法において使用するための１２８−ＥＩＡ３モジュール５１２を示すブロック図である。図５の１２８−ＥＩＡ３モジュール５１２は、図１の１２８−ＥＩＡ３モジュール１１２ａ〜ｂの一構成であり得る。１２８−ＥＩＡ３モジュール５１２は、入力メッセージ（Ｍ）５３２を受信し、入力メッセージ（Ｍ）５３２を使用して計算されるメッセージ認証コード（ＭＡＣ）５２０と、鍵ストリーム５５２と、キャリーレス乗算関数５３９を使用するユニバーサルハッシュ関数Ｈ５３５とを出力し得る。鍵ストリーム５５２は、ストリーム暗号（ＺＵＣ）５４４を使用して計算され得る。したがって、１２８−ＥＩＡ３モジュール５１２は、メッセージ認証コード（ＭＡＣ）５２０を取得する（したがって入力メッセージ（Ｍ）５３２のための認証を与える／取得する）ために入力メッセージ（Ｍ）５３２に１２８−ＥＩＡ３アルゴリズムを適用し得る。
【００２６】
[0034]１２８−ＥＩＡ３モジュール５１２は、３２ビットであるカウンタＣＯＵＮＴ５３４を含み得る。１２８−ＥＩＡ３モジュール５１２は、５ビットであるベアラ識別情報ＢＥＡＲＥＲ５３６をも含み得る。１２８−ＥＩＡ３モジュール５１２は、１ビットである、送信の方向ＤＩＲＥＣＴＩＯＮ５３８をさらに含み得る。１２８−ＥＩＡ３モジュール５１２は、１２８ビットである完全性鍵（ＩＫ）５４０をも含み得る。入力メッセージ（Ｍ）５３２のＬＥＮＧＴＨ５４２は３２ビットであり得る（すなわち、３２ビットＬＥＮＧＴＨ５４２は、入力メッセージ（Ｍ）５３２の長さを示すために３２ビットを使用し得る）。たとえば、ＬＥＮＧＴＨ５４２は、（１ビットと６５５０４ビットとの間の）入力メッセージ（Ｍ）５３２のビット数を示す。１２８−ＥＩＡ３モジュール５１２によって出力されたメッセージ認証コード（ＭＡＣ）５２０は３２ビットであり得る。
【００２７】
[0035]１２８−ＥＩＡ３モジュール５１２はユニバーサルハッシュ関数Ｈ５３５を含み得る。ユニバーサルハッシュ関数Ｈ５３５は、固定長のより小さいデータセット（すなわち、鍵ストリーム５５２）に大きいデータセット（すなわち、入力メッセージ（Ｍ）５３２）をマッピングする１２８−ＥＩＡ３アルゴリズムにおけるサブルーチンを指す。ユニバーサルハッシュ関数Ｈ５３５は、キャリーレス乗算関数５３９を使用して計算され得る。キャリーレス乗算関数５３９の使用は、１２８−ＥＩＡ３モジュールがユニバーサルハッシュ関数Ｈ５３５をより効率的に計算することを可能にし得る。
【００２８】
[0036]１２８−ＥＩＡ３モジュール５１２はワード指向のストリーム暗号（ＺＵＣ）５４４をも含み得る。ストリーム暗号（ＺＵＣ）５４４は、１２８ビット初期鍵（ＫＥＹ）５４６と１２８ビット初期ベクトル（ＩＶ）５４８とを入力として取り、３２ビットワードの鍵ストリームｚ［ｉ］５５２を出力し得る（各３２ビットワードはキーワードと呼ばれる）。ストリーム暗号（ＺＵＣ）５４４によって生成されたキーワードの数は変数Ｌ５５０によって定義され得る。鍵ストリーム５５２は暗号化／解読のために使用され得る。入力メッセージ（Ｍ）５３２を使用したメッセージ認証コード（ＭＡＣ）５２０の計算については、図６および図７に関して以下でさらに詳細に説明する。
【００２９】
[0037]図６は、入力メッセージ（Ｍ）５３２を使用してメッセージ認証コード（ＭＡＣ）５２０を計算するための方法６００の流れ図である。方法６００は、基地局１０２またはワイヤレス通信デバイス１０４など、ワイヤレスデバイス２１４上で１２８−ＥＩＡ３モジュール５１２によって実行され得る。
【００３０】
[0038]ワイヤレスデバイス２１４は、鍵ストリーム５５２の生成の前に、６０２において、初期鍵（ＫＥＹ）５４６を初期化し、６０４において、初期ベクトル（ＩＶ）５４８を完全性鍵（ＩＫ）５４０と初期化変数とで初期化する。変数が（以下の式で使用する）いくつかのサブストリングに分解されるとき、最左サブストリングは［０］であり、次の最上位サブストリングは［１］であり、最下位サブストリングまで以下同様である。下付き文字２（たとえば、０００2）は、バイナリ表現における数字を示すために使用される。表記法ａ｜｜ｂは、サブストリングａとｂとの連結を示すために使用される。表記法
【数１】
0005902362.tif 000002
【００３１】
は、ｘ以上の最小整数を指す。
【００３２】
[0039]１２８ビット完全性鍵（ＩＫ）５４０は、式（１）を使用して定義され得る。
【数２】
0005902362.tif 000003
【００３３】
[0040]式（１）では、ＩＫ［ｉ］（０≦ｉ≦１５）はバイトである。ストリーム暗号（ＺＵＣ）５４４に対する１２８ビット初期鍵５４６（ＫＥＹ）は、式（２）を使用して設定され得る。
【数３】
0005902362.tif 000004
【００３４】
[0041]式（２）では、ＫＥＹ［ｉ］（０≦ｉ≦１５）はバイトである。したがって、６０２において、式（３）を使用して初期鍵（ＫＥＹ）５４６を初期化する。
【数４】
0005902362.tif 000005
【００３５】
[0042]式（３）では、初期鍵（ＫＥＹ）５４６の各サブストリングは、完全性鍵（ＩＫ）５４０の各対応するサブストリングに等しく設定される。３２ビットカウンタＣＯＵＮＴ５３４は、式（４）を使用して定義され得る。
【数５】
0005902362.tif 000006
【００３６】
[0043]式（４）では、ＣＯＵＮＴ［ｉ］、ｉ＝０、１、２、３はバイトである。１２８ビット初期ベクトル（ＩＶ）５４８は、式（５）を使用して定義され得る。
【数６】
0005902362.tif 000007
【００３７】
[0044]式（５）では、ＩＶ［ｉ］（０≦ｉ≦１５）はバイトである。次いで、６０４において、式（６）を使用して初期ベクトル（ＩＶ）５４８を初期化する。
【数７】
0005902362.tif 000008
【００３８】
[0045]式（６）では、
【数８】
0005902362.tif 000009
【００３９】
は排他的ＯＲ演算を指し、ａ＜＜ｔはｔ個のビットによる整数ａの左シフトを指す。したがって、ＤＩＲＥＣＴＩＯＮ＜＜７は、ＤＩＲＥＣＴＩＯＮ５３８を左に７ビットシフトすることを指す。
【００４０】
[0046]ワイヤレスデバイス２１４は、次いで、６０６において鍵ストリーム５５２を生成する。一構成では、鍵ストリーム５５２はワイヤレスデバイス２１４上のプロセッサによって生成され得る。別の構成では、鍵ストリーム５５２は、ワイヤレスデバイス２１４上のメモリを使用して生成され得る。ストリーム暗号（ＺＵＣ）５４４は、Ｌ５５０のキーワードを用いて鍵ストリーム５５２を生成し得、ここで、
【数９】
0005902362.tif 000010
【００４１】
ワードである。鍵ストリーム５５２は、ｚ［０］、ｚ［１］、．．．、ｚ［３２×（Ｌ−１）］によって示され得、ここで、ｚ［０］はストリーム暗号（ＺＵＣ）５４４の第１の出力ワードの最上位ビットであり、ｚ［３１］は最下位ビットである。各ｉ＝０、１、２、．．．、３２×（Ｌ−１）について、式（７）が適用され得る。
【数１０】
0005902362.tif 000011
【００４２】
[0047]したがって、鍵ストリーム５５２の各ｚiは３２ビットワードである。ワイヤレスデバイス２１４は、次いで、メッセージ認証コード（ＭＡＣ）５２０を計算するより前に、６０８においてユニバーサルハッシュ関数を計算する。Ｔは３２ビットワードとして定義され得る。Ｔは最初に０に等しく設定され得る。各ｉ＝０、１、２、．．．、ＬＥＮＧＴＨ−１について、Ｍ［ｉ］＝１である場合、式（８）が適用され得る。
【数１１】
0005902362.tif 000012
【００４３】
[0048]式（８）はユニバーサルハッシュ関数Ｈと呼ばれることがある。しかしながら、（ユニバーサルハッシュ関数Ｈの計算が入力メッセージ（Ｍ）５３２中のあらゆるシングルビットについて実行されなければならないので）式（８）は冗長である。代わりに、６０８においてユニバーサルハッシュ関数Ｈを効率的に計算するために、入力メッセージ（Ｍ）５３２の３２ビットを一度に処理するためにキャリーレス乗算が使用され得る。
【００４４】
[0049]キャリーレス乗算では、多項式が乗算される。１つのキャリーレス乗算反復が式（８）の３２回の反復と入れ替わり得る。キャリーレス乗算ＣＬＭＵＬ（Ｆ，Ｇ）が、３２ビットワードＦと３２ビットワードＧとを入力として取り、６４ビットワードＥを出力し、ここで、ＦおよびＧのビットはＧＦ（２）［ｘ］中の多項式の（最大程度３１の）係数として取られ、ＥはＧＦ（２）［ｘ］中の（最大程度６２の）得られた多項式積である。この概念は、所与のワードサイズｗｌｏｇのためのすべてのキャリーレス乗算関数に適用され得る。簡単のために、ワードサイズｗｌｏｇが３２によって分割可能な整数であると仮定され得る。
【００４５】
[0050]キャリーレス乗算を使用してユニバーサルハッシュ関数Ｈを計算するために、３２ビットワードＴは最初に０に設定され得る。式（９）に従って、入力メッセージ（Ｍ）５３２の３２ビットワードＭi．．．Ｍjが反転させられ得、ここでｊ＝ｉ＋３１である。
【数１２】
0005902362.tif 000013
【００４６】
[0051]第１の６４ビットワードＥが、式（１０）を使用して見つけられ得る。
【数１３】
0005902362.tif 000014
【００４７】
[0052]式（１０）では、Ｚ＿ｉ．．．Ｚ＿ｊは鍵ストリーム５５２のビットを指し、ＣＬＭＵＬは、現代のコモディティプロセッサ上にますます存在するキャリーレス乗算関数を指す。第２の６４ビットワードＦが、式（１１）を使用して見つけられ得る。
【数１４】
0005902362.tif 000015
【００４８】
[0053]式（１１）では、ｋ＝ｊ＋１およびｌ＝ｋ＋３１である（したがって、３２ビットワードＺ＿ｋ．．．Ｚ＿ｌは３２ビットワードＺ＿ｉ．．．Ｚ＿ｊの直後にくる）。変数ｍはＥの最下位３２ビットワードに設定され得る。変数ｎはＦの最上位３２ビットワードに設定され得る。次いで、式（１２）が実行され得る。
【数１５】
0005902362.tif 000016
【００４９】
[0054]次いで、６０８において、式（１３）を使用してユニバーサルハッシュ関数を計算する。
【数１６】
0005902362.tif 000017
【００５０】
[0055]次いで、６１０において、式（１４）に従って出力メッセージ認証コード（ＭＡＣ）５２０を計算する。
【数１７】
0005902362.tif 000018
【００５１】
[0056]機械命令中の、メッセージの３２ビットごとのコストは固定であり得る。１２８９−ＥＩＡ３仕様のための従来の方法では、メッセージビットごとに少なくとも１つの命令（すなわち、条件付きＸＯＲ）が必要とされる。したがって、３２個のメッセージビットごとに３２個の命令が必要とされる。６０８においてハッシュ関数を計算するためにキャリーレス乗算を使用することは、３２個のメッセージビットごとに５つの命令、すなわち、ワードの１つのビット反転、２つのキャリーレス乗算および２つのＸＯＲを必要とする。６０８においてユニバーサルハッシュ関数を計算するためにキャリーレス乗算を使用することは、ハッシュ関数Ｈを評価するために必要とされる機械命令の数を著しく低減する。これは、ＬＴＥ完全性アルゴリズム１２８−ＥＩＡ３のスループットを改善する。さらに、６０８においてユニバーサルハッシュ関数を計算するためにキャリーレス乗算を使用することは、メッセージビット値とは無関係である壁時計時間で実行する（メッセージビット＝１であるとき、式（８）のみが適用されるので、既存のソリューションはメッセージビット値への依存性を有する）。したがって、６０８においてユニバーサルハッシュ関数を計算するためにキャリーレス乗算を使用することは、タイミング攻撃および電力解析攻撃など、サイドチャネル攻撃の大きいアレイからの追加の保護を与え、それにより、システムの物理的セキュリティが改善され得る。キャリーレス乗算の壁時計実行時間がオペランドのハミング重み（hamming weight）とは無関係であり、サイドチャネルセキュリティが向上し得る。
【００５２】
[0057]図７は、キャリーレス乗算を使用したメッセージ認証コード（ＭＡＣ）２２０の計算を示すブロック図である。一構成では、メッセージ認証コード（ＭＡＣ）２２０は、ワイヤレスデバイス２１４上のプロセッサおよび／またはメモリを使用して計算され得る。入力メッセージ（Ｍ）７３２の３２ビットワードＭi．．．Ｍi+31が受信される。式（９）において説明したように、７５４において、Ｍi+32．．．Ｍiを形成するために、入力メッセージ（Ｍ）７３２中のビットを反転させる。入力メッセージ（Ｍ）７３２中のビットは、入力メッセージ（Ｍ）７３２のワードを多項式環（ring of polynomial）中のそれらの表現にマッピングすることによって反転させられ得る。
【００５３】
[0058]次いで、反転させられたメッセージビットＭi+32．．．Ｍiは第１のキャリーレス乗算段７５２ａと第２のキャリーレス乗算段７５２ｂとに与えられ得る。キャリーレス乗算段７５２の各々はキャリーレス乗算関数７３９ａ〜ｂであり得る。上記の式（１０）において説明したように、鍵ストリーム７５２ａの３２ビットＺi．．．Ｚi+31は、第１の６４ビットワードＥを形成するために第１のキャリーレス乗算段７５２ａに与えられる。同様に、鍵ストリーム７５２ｂの３２ビットＺi+32．．．Ｚi+63は、（上記の式（１１）において説明したように）第２の６４ビットワードＦを形成するために第２のキャリーレス乗算段７５２ｂに与えられる。
【００５４】
[0059]第１の６４ビットワードＥは最上位３２ビットワードと最下位３２ビットワードとに分離され得る。同様に、第２の６４ビットワードＦは最上位３２ビットワードと最下位３２ビットワードとに分離され得る。第１の６４ビットワードＥの最下位３２ビットワードは変数ｍによって示され得る。第２の６４ビットワードＦの最上位３２ビットワードは変数ｎによって示され得る。次いで、式（１２）において上記で説明したように、ｍとｎとの間で排他的ＯＲ（ＸＯＲ）７５６が実行され得る。次いで、ユニバーサルハッシュ関数Ｔ７３５は、上記の式（１３）に従って計算される。
【００５５】
[0060]図８に、上記で説明した方式またはプロセスを実行するためのワイヤレス通信デバイス８０４のハードウェア実装形態の一部を示す。ワイヤレス通信デバイス８０４は、以下で説明する回路を備える。本明細書および添付の特許請求の範囲では、「回路」という用語は、機能上の用語ではなく構造上の用語として解釈されることが明らかなはずである。たとえば、回路は、図８において図示および説明する処理および／またはメモリセル、ユニット、ブロックなどの形態の多数の集積回路構成要素など、回路構成要素の集合体であり得る。
【００５６】
[0061]ワイヤレス通信デバイス８０４は、いくつかの回路を互いにリンクする中央データバス８８３を含む。回路は、ＣＰＵ（中央処理ユニット）またはコントローラ８８５と、受信回路８８１と、送信回路８７３と、メモリユニット８７９とを含む。
【００５７】
[0062]受信回路８８１および送信回路８７３は、（図面に示されていない）ＲＦ（無線周波数）回路に接続され得る。受信回路８８１は、受信信号を処理し、バッファした後、その信号をデータバス８８３に送る。一方、送信回路８７３は、データバス８８３からのデータを処理し、バッファした後、そのデータをワイヤレス通信デバイス８０４の外側に送る。ＣＰＵ／コントローラ８８５は、データバス８８３のデータ管理の機能を実行し、メモリユニット８７９の命令コンテンツを実行することを含む、一般的なデータ処理の機能を進める。
【００５８】
[0063]メモリユニット８７９は、参照番号８７５によって概略的に示されたモジュールおよび／または命令のセットを含む。この実施形態では、モジュール／命令は、特に、上記で説明した方式およびプロセスを実行するキャリーレス乗算関数を使用したユニバーサルハッシュ８７７を含む。関数８７７は、図１〜図６において図示および説明したプロセスステップを実行するためのコンピュータ命令またはコードを含む。エンティティに特有の特定の命令は、関数８７７中に選択的に実装され得る。
【００５９】
[0064]この実施形態では、メモリユニット８７９はＲＡＭ（ランダムアクセスメモリ）回路である。関数８７７などの例示的な関数は、１つまたは複数のソフトウェアルーチン、モジュールおよび／またはデータセットを含む。メモリユニット８７９は、揮発性または不揮発性のいずれかであり得る別のメモリ回路（図示せず）に結合され得る。代替として、メモリユニット８７９は、ＥＥＰＲＯＭ（登録商標）（電気消去可能プログラマブル読取り専用メモリ）、ＥＰＲＯＭ（電気プログラマブル読込み専用メモリ）、ＲＯＭ（読取り専用メモリ）、ＡＳＩＣ（特定用途向け集積回路）、磁気ディスク、光ディスク、および当技術分野でよく知られている他のものなど、他の回路タイプから製造され得る。
【００６０】
[0065]図９に、上記で説明した方式またはプロセスを実行するための基地局９０２のハードウェア実装形態の一部を示す。基地局９０２は、以下で説明する回路を備える。本明細書および添付の特許請求の範囲では、「回路」という用語は、機能上の用語ではなく構造上の用語として解釈されることが明らかなはずである。たとえば、回路は、図９において図示および説明する処理および／またはメモリセル、ユニット、ブロックなどの形態の多数の集積回路構成要素など、回路構成要素の集合体であり得る。
【００６１】
[0066]基地局９０２は、いくつかの回路を互いにリンクする中央データバス９８３を含む。回路は、ＣＰＵ（中央処理ユニット）またはコントローラ９８５と、受信回路９８１と、送信回路９７３と、メモリユニット９７９とを含む。
【００６２】
[0067]受信回路９８１および送信回路９７３は、（図面に示されていない）ＲＦ（無線周波数）回路に接続され得る。受信回路９８１は、受信信号を処理し、バッファした後、その信号をデータバス９８３に送る。一方、送信回路９７３は、データバス９８３からのデータを処理し、バッファした後、そのデータを基地局９０２の外側に送る。ＣＰＵ／コントローラ９８５は、データバス９８３のデータ管理の機能を実行し、メモリユニット９７９の命令コンテンツを実行することを含む、一般的なデータ処理の機能を進める。
【００６３】
[0068]メモリユニット９７９は、参照番号９７５によって概略的に示されたモジュールおよび／または命令のセットを含む。この実施形態では、モジュール／命令は、特に、上記で説明した方式およびプロセスを実行するキャリーレス乗算関数を使用したユニバーサルハッシュ９７７を含む。関数９７７は、図１〜図６において図示および説明したプロセスステップを実行するためのコンピュータ命令またはコードを含む。エンティティに特有の特定の命令は、関数９７７中に選択的に実装され得る。
【００６４】
[0069]この実施形態では、メモリユニット９７９はＲＡＭ（ランダムアクセスメモリ）回路である。関数９７７などの例示的な関数は、１つまたは複数のソフトウェアルーチン、モジュールおよび／またはデータセットを含む。メモリユニット９７９は、揮発性または不揮発性のいずれかであり得る別のメモリ回路（図示せず）に結合され得る。代替として、メモリユニット９７９は、ＥＥＰＲＯＭ（電気消去可能プログラマブル読取り専用メモリ）、ＥＰＲＯＭ（電気プログラマブル読込み専用メモリ）、ＲＯＭ（読取り専用メモリ）、ＡＳＩＣ（特定用途向け集積回路）、磁気ディスク、光ディスク、および当技術分野でよく知られている他のものなど、他の回路タイプから製造され得る。
【００６５】
[0070]「決定」という用語は、多種多様なアクションを包含し、したがって、「決定」は、計算、算出、処理、導出、調査、ルックアップ（たとえば、テーブル、データベースまたは別のデータ構造でのルックアップ）、確認などを含むことができる。また、「決定」は、受信（たとえば、情報を受信すること）、アクセス（たとえば、メモリ中のデータにアクセスすること）などを含むことができる。また、「決定」は、解決、選択、選定、確立などを含むことができる。
【００６６】
[0071]「に基づいて」という句は、別段に明示されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という句は、「のみに基づいて」と「に少なくとも基づいて」の両方を表す。
【００６７】
[0072]いかなるクレーム要素も、その要素が「手段」という語句を使用して明確に具陳されていない限り、または方法クレームの場合には、その要素が「ステップ」という語句を使用して具陳されていない限り、米国特許法第１１２条第６項の規定の下で解釈されるべきではない。
【００６８】
[0073]本明細書および添付の特許請求の範囲では、「回路」という用語は、機能上の用語ではなく構造上の用語として解釈されることが明らかなはずである。たとえば、回路は、図８および図９において図示および説明した処理および／またはメモリセル、ユニット、ブロックなどの形態の多数の集積回路構成要素など、回路構成要素の集合体であり得る。
【００６９】
[0074]「プロセッサ」という用語は、汎用プロセッサ、中央処理ユニット（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、マイクロコントローラ、状態機械などを包含するものと広く解釈されたい。いくつかの状況下では、「プロセッサ」は、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを指すことがある。「プロセッサ」という用語は、処理デバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは他のそのような構成を指すことがある。
【００７０】
[0075]「メモリ」という用語は、電子情報を記憶することが可能な任意の電子的構成要素を包含するものと広く解釈されたい。メモリという用語は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データストレージ、レジスタなど、様々なタイプのプロセッサ可読媒体を指すことがある。プロセッサがメモリから情報を読み取り、および／または情報をメモリに書き込むことができる場合、メモリはプロセッサと電子通信していると言われる。プロセッサに一体化されたメモリはプロセッサと電子通信している。
【００７１】
[0076]「命令」および「コード」という用語は、任意のタイプの（１つまたは複数の）コンピュータ可読ステートメントを含むものと広く解釈されたい。たとえば、「命令」および「コード」という用語は、１つまたは複数のプログラム、ルーチン、サブルーチン、関数、プロシージャなどを指すことがある。「命令」および「コード」は、単一のコンピュータ可読ステートメントまたは多くのコンピュータ可読ステートメントを備え得る。
【００７２】
[0077]本明細書で説明した機能は、ハードウェアによって実行されるソフトウェアまたはファームウェアで実装され得る。機能は、１つまたは複数の命令としてコンピュータ可読媒体上に記憶され得る。「コンピュータ可読媒体」または「コンピュータプログラム製品」という用語は、コンピュータまたはプロセッサによってアクセスされ得る任意の有形記憶媒体を指す。限定ではなく例として、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を含み得る。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。コンピュータ可読媒体は有形で非一時的であり得ることに留意されたい。「コンピュータプログラム製品」という用語は、コンピューティングデバイスまたはプロセッサによって実行、処理または計算され得るコードまたは命令（たとえば、「プログラム」）と組み合わせたコンピューティングデバイスまたはプロセッサを指す。本明細書で使用する「コード」という用語は、コンピューティングデバイスまたはプロセッサによって実行可能であるソフトウェア、命令、コードまたはデータを指すことがある。
【００７３】
[0078]ソフトウェアまたは命令はまた、伝送媒体を介して送信され得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、伝送媒体の定義に含まれる。
【００７４】
[0079]本明細書で開示する方法は、説明した方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、本明細書で説明した方法の適切な動作のためにステップまたはアクションの特定の順序が必要とされない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲を逸脱することなく修正され得る。
【００７５】
[0080]さらに、図３、図４および図６によって示されたものなど、本明細書で説明した方法および技法を実行するためのモジュールおよび／または他の適切な手段は、デバイスによってダウンロードおよび／または他の方法で取得され得ることを諒解されたい。たとえば、デバイスは、本明細書で説明した方法を実行するための手段の転送を可能にするために、サーバに結合され得る。代替的に、本明細書で説明した様々な方法は、デバイスが、記憶手段をそのデバイスに結合するかまたは与えると様々な方法を得ることがあるように、記憶手段（たとえば、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）またはフロッピーディスクなどの物理記憶媒体など）によって与えられ得る。その上、本明細書で説明した方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【００７６】
[0081]特許請求の範囲は、上記で示した厳密な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、本明細書で説明したシステム、方法、および装置の動作および詳細において、様々な修正、変更および変形が行われ得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  メッセージを認証するために構成されたワイヤレスデバイスであって、
前記メッセージを取得するための手段と、
鍵ストリームを生成するための手段と、
前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算するための手段と、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算される、
を備える、ワイヤレスデバイス。
［Ｃ２］  前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、Ｃ１に記載のワイヤレスデバイス。
［Ｃ３］  前記第２の３２ビット変数が最初に０に設定される、Ｃ２に記載のワイヤレスデバイス。
［Ｃ４］  前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、Ｃ２に記載のワイヤレスデバイス。
［Ｃ５］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、Ｃ１に記載のワイヤレスデバイス。
［Ｃ６］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、Ｃ１に記載のワイヤレスデバイス。
［Ｃ７］  前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、Ｃ１に記載のワイヤレスデバイス。
［Ｃ８］  前記メッセージを取得するための前記手段が、送信メッセージを生成するための手段を備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信するための手段をさらに備える、Ｃ７に記載のワイヤレスデバイス。
［Ｃ９］  前記メッセージを取得するための前記手段が、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信するための手段を備え、
前記単一のメッセージから送信メッセージ認証コードを抽出するための手段と、
前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較するための手段と
をさらに備える、Ｃ７に記載のワイヤレスデバイス。
［Ｃ１０］  前記鍵ストリームが、ストリーム暗号を使用して生成される、Ｃ１に記載のワイヤレスデバイス。
［Ｃ１１］  前記ワイヤレスデバイスがワイヤレス通信デバイスである、Ｃ１に記載のワイヤレスデバイス。
［Ｃ１２］  前記ワイヤレスデバイスが基地局である、Ｃ１に記載のワイヤレスデバイス。
［Ｃ１３］  キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、Ｃ１に記載のワイヤレスデバイス。
［Ｃ１４］  メッセージを認証するために構成された装置であって、
前記メッセージを取得することと、鍵ストリームを生成することと、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算することと、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算される、を行うように構成された回路
を備える、装置。
［Ｃ１５］  前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、Ｃ１４に記載の装置。
［Ｃ１６］  前記第２の３２ビット変数が最初に０に設定される、Ｃ１５に記載の装置。
［Ｃ１７］  前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、Ｃ１５に記載の装置。
［Ｃ１８］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、Ｃ１４に記載の装置。
［Ｃ１９］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、Ｃ１４に記載の装置。
［Ｃ２０］  前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、Ｃ１４に記載の装置。
［Ｃ２１］  前記メッセージを取得するように構成された前記回路が、送信メッセージを生成するように構成された回路を備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信するように構成された回路をさらに備える、Ｃ２０に記載の装置。
［Ｃ２２］  前記メッセージを取得するように構成された前記回路が、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信するように構成された回路を備え、前記単一のメッセージから送信メッセージ認証コードを抽出するように構成された回路と、前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較するように構成された回路とをさらに備える、Ｃ２０に記載の装置。
［Ｃ２３］  前記鍵ストリームが、ストリーム暗号を使用して生成される、Ｃ１４に記載の装置。
［Ｃ２４］  前記装置がワイヤレス通信デバイスである、Ｃ１４に記載の装置。
［Ｃ２５］  前記装置が基地局である、Ｃ１４に記載の装置。
［Ｃ２６］  キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、Ｃ１４に記載の装置。
［Ｃ２７］  ワイヤレスデバイスによってメッセージを認証するための方法であって、
前記メッセージを取得することと、
鍵ストリームを生成することと、
前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算することと、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算される、
を備える、方法。
［Ｃ２８］  前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、Ｃ２７に記載の方法。
［Ｃ２９］  前記第２の３２ビット変数が最初に０に設定される、Ｃ２８に記載の方法。
［Ｃ３０］  前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、Ｃ２８に記載の方法。
［Ｃ３１］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに３２個よりも少ない機械命令を使用して計算される、Ｃ２７に記載の方法。
［Ｃ３２］  前記ユニバーサルハッシュ関数が、３２個のメッセージビットごとに５つの機械命令を使用して計算される、Ｃ２７に記載の方法。
［Ｃ３３］  前記メッセージ認証コードが、１２８−ＥＩＡ３アルゴリズムを使用して計算される、Ｃ２７に記載の方法。
［Ｃ３４］  前記メッセージを取得することが、送信メッセージを生成することを備え、単一のメッセージ中で前記送信メッセージと前記メッセージ認証コードとを送信することをさらに備える、Ｃ３３に記載の方法。
［Ｃ３５］  前記メッセージを取得することが、前記メッセージと前記メッセージ認証コードとを備える単一のメッセージを受信することを備え、
前記単一のメッセージから送信メッセージ認証コードを抽出することと、
前記単一のメッセージの認証を決定するために前記送信メッセージ認証コードを前記メッセージ認証コードと比較することと
をさらに備える、Ｃ３３に記載の方法。
［Ｃ３６］  前記鍵ストリームが、ストリーム暗号を使用して生成される、Ｃ２７に記載の方法。
［Ｃ３７］  前記ワイヤレスデバイスがワイヤレス通信デバイスである、Ｃ２７に記載の方法。
［Ｃ３８］  前記ワイヤレスデバイスが基地局である、Ｃ２７に記載の方法。
［Ｃ３９］  キャリーレス乗算の壁時計実行時間がオペランドのハミング重みとは無関係である、Ｃ２７に記載の方法。
［Ｃ４０］  メッセージを認証するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品が、命令をその上に有する非一時的コンピュータ可読媒体を備え、前記命令は、
ワイヤレスデバイスに前記メッセージを取得させるためのコードと、
前記ワイヤレスデバイスに鍵ストリームを生成させるためのコードと、
前記ワイヤレスデバイスに、前記鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算させるためのコードと、ここにおいて、前記ユニバーサルハッシュ関数が、キャリーレス乗算を使用して計算される、
を備える、コンピュータプログラム製品。
［Ｃ４１］  前記ユニバーサルハッシュ関数を計算することが、
前記メッセージの３２ビットワードを反転させることと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第１の３２ビットワードとの間でキャリーレス乗算を使用して第１の６４ビットワードを計算することと、
前記メッセージの前記反転させられた３２ビットワードと前記鍵ストリームの第２の３２ビットワードとの間でキャリーレス乗算を使用して第２の６４ビットワードを計算することと、
第１の３２ビット変数を取得するために、前記第１の６４ビットワードの最下位３２ビットワードと前記第２の６４ビットワードの最上位３２ビットワードとの間で排他的ＯＲ演算を実行することと、
第２の３２ビット変数と前記第１の３２ビット変数との間で排他的ＯＲ演算を実行することと
を備える、Ｃ４０に記載のコンピュータプログラム製品。
［Ｃ４２］  前記第２の３２ビット変数が最初に０に設定される、Ｃ４１に記載のコンピュータプログラム製品。
［Ｃ４３］  前記鍵ストリームの前記第２の３２ビットワードが前記鍵ストリームの前記第１の３２ビットワードの直後にくる、Ｃ４１に記載のコンピュータプログラム製品。
【要約】  ワイヤレスデバイスによってメッセージを認証するための方法について説明する。ワイヤレスデバイスは入力メッセージを取得する。ワイヤレスデバイスは鍵ストリームを生成する。ワイヤレスデバイスは、鍵ストリームとユニバーサルハッシュ関数とを使用してメッセージ認証コードを計算する。ユニバーサルハッシュ関数は、キャリーレス乗算を使用して計算される。【図１】
0005902362.tif 000019
【図２】
0005902362.tif 000020
【図３】
0005902362.tif 000021
【図４】
0005902362.tif 000022
【図５】
0005902362.tif 000023
【図６】
0005902362.tif 000024
【図７】
0005902362.tif 000025
【図８】
0005902362.tif 000026
【図９】
0005902362.tif 000027