(57)【特許請求の範囲】
【請求項１】
メッセージM(x)(204; 304)についての暗号学的チェックサム(203: 303)を生成する、プロセッサが実行する方法(500; 600)であって、
第１の暗号鍵に基づいて、少なくとも２つの既約多項式{pi(x), i = 1 ... N}を擬似ランダム的にデータベースから選択する(502; 602)ことと、ここで既約多項式pi(x)のそれぞれはガロア体上の次数niの既約多項式のセットから選択され、
次数
【数６５】
0006397987.tif 000066
の生成多項式p(x)を、N個の既約多項式pi(x)の積
【数６６】
0006397987.tif 000067
として算出する(503; 603)ことと、
前記暗号学的チェックサムを、M(x)・xn mod p(x)として算出する(505; 605)ことと、を有し、
前記p(x)を法とした除算(mod)が線形帰還シフトレジスタ(LFSR)によって実施される、方法。
【請求項２】
２つの既約多項式p1(x)およびp2(x)が擬似ランダム的に選択され(502; 602)、前記生成多項式p(x)が前記２つの既約多項式の積p(x)=p1(x)・p2(x)として算出される(503; 603)、請求項１に記載の方法。
【請求項３】
擬似ランダム的に選択される前記２つの既約多項式p1(x)およびp2(x)が等しい次数n1=n2=n/2を有する、請求項２に記載の方法。
【請求項４】
前記生成多項式p(x)が非ゼロ定数項を有する、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
さらに、長さnのパッドsを擬似ランダム的に生成する(504; 604)ことを有し、前記暗号学的チェックサムを算出することが、暗号学的チェックサムをM(x)・xn mod p(x)+sとして算出する、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記パッドsが第２の暗号鍵に基づいて生成される(504; 604)、請求項５に記載の方法。
【請求項７】
前記パッドsが前記メッセージに特有な情報に依存する、請求項５または請求項６に記載の方法。
【請求項８】
前記既約多項式pi(x)の少なくとも１つが、前記メッセージに特有な情報に依存する、請求項１から請求項７のいずれか１項に記載の方法。
【請求項９】
前記メッセージに特有な前記情報がメッセージシーケンス番号を含む、請求項７または請求項８に記載の方法。
【請求項１０】
メッセージ(204)を送信する送信機(101)が有するプロセッサが実行する方法(500)であって、
前記メッセージを取得する(501)ことと、
請求項１から請求項９のいずれか１項に記載の方法に従って、前記メッセージを認証するための暗号学的チェックサムを生成することと、
前記生成された暗号学的チェックサムを前記メッセージに付加する(506)ことと、
前記メッセージと前記付加された暗号学的チェックサムとを送信する(507)ことと、を有する方法。
【請求項１１】
メッセージ(304)を認証する受信機(102)が有するプロセッサが実行する方法(600)であって、
前記メッセージと付加された第１の暗号学的チェックサムとを受信する(601)ことと、
請求項１から請求項９のいずれか１項に記載の方法に従って、前記メッセージについての第２の暗号学的チェックサムを生成することと、
前記第１の暗号学的チェックサムと、前記第２の暗号学的チェックサムとが同一であるかどうか検証する(606)ことにより、前記メッセージを認証することと、を有する方法。
【請求項１２】
機器が有する処理ユニットによって実行された際に、請求項１から請求項１１のいずれか１項に記載の前記方法を前記機器に実行させるための、コンピュータが実行可能な命令を有する、コンピュータプログラム(903; 1003)。
【請求項１３】
請求項１２に記載のコンピュータプログラムを格納したコンピュータが読み取り可能な記憶媒体(902; 1002)。
【請求項１４】
メッセージM(x)についての暗号学的チェックサムを生成するチェックサム生成器(702; 803; 900; 1000)であって、前記チェックサム生成器は、
第１の暗号鍵に基づいて、少なくとも２つの既約多項式{pi(x), i = 1 ... N}を擬似ランダム的にデータベースから選択(705; 805)し、ここで既約多項式pi(x)のそれぞれはガロア体上の次数niの既約多項式のセットから選択され、
次数
【数６７】
0006397987.tif 000068
の生成多項式p(x)を、N個の既約多項式pi(x)の積
【数６８】
0006397987.tif 000069
として算出し、
前記暗号学的チェックサムを、M(x)・xn mod p(x)として算出する、ように構成された手段を有し、
前記p(x)を法とした除算(mod)が線形帰還シフトレジスタ(LFSR)によって実施される、チェックサム生成器。
【請求項１５】
前記手段が、２つの既約多項式p1(x)およびp2(x)を擬似ランダム的に選択し、前記生成多項式p(x)を前記２つの既約多項式の積p(x)=p1(x)・p2(x)として算出するように構成される、請求項１４に記載のチェックサム生成器。
【請求項１６】
擬似ランダム的に選択される前記２つの既約多項式p1(x)およびp2(x)が等しい次数n1=n2=n/2を有する、請求項１５に記載のチェックサム生成器。
【請求項１７】
前記生成多項式p(x)が非ゼロ定数項を有する、請求項１４から請求項１６のいずれか１項に記載のチェックサム生成器。
【請求項１８】
前記手段はさらに、長さnのパッドsを擬似ランダム的に生成するとともに、暗号学的チェックサムをM(x)・xn mod p(x)+sとして算出するように構成される、請求項１４から請求項１７のいずれか１項に記載のチェックサム生成器。
【請求項１９】
前記手段がさらに、前記パッドsを第２の暗号鍵に基づいて生成する(705; 805)ように構成される、請求項１８に記載のチェックサム生成器。
【請求項２０】
前記パッドsが前記メッセージに特有な情報に依存する、請求項１８または請求項１９に記載のチェックサム生成器。
【請求項２１】
前記既約多項式pi(x)の少なくとも１つが、前記メッセージに特有な情報に依存する、請求項１４から請求項２０のいずれか１項に記載のチェックサム生成器。
【請求項２２】
前記メッセージに特有な前記情報がメッセージシーケンス番号を含む、請求項２０または請求項２１に記載のチェックサム生成器。
【請求項２３】
メッセージを送信する送信装置(700; 900)であって、前記送信装置は、
前記メッセージを取得(701)し、
前記送信装置が有する、請求項１４から請求項２２のいずれか１項に記載のチェックサム生成器を用いて、前記メッセージを認証するための暗号学的チェックサムを生成し、
前記生成された暗号学的チェックサムを前記メッセージに付加(703)し、
前記メッセージと前記付加された暗号学的チェックサムとを送信する(704)、ように構成された手段を有する、送信装置。
【請求項２４】
メッセージを認証する受信装置(800; 1000)であって、前記受信装置は、
前記メッセージと付加された第１の暗号学的チェックサムとを受信(801)し、
前記受信装置が有する、請求項１４から請求項２２のいずれか１項に記載のチェックサム生成器を用いて、前記メッセージについての第２の暗号学的チェックサムを生成し、
前記第１の暗号学的チェックサムと、前記第２の暗号学的チェックサムとが同一であるかどうか検証(804)することにより、前記メッセージを認証する、ように構成された手段を有する、受信装置。
【請求項２５】
請求項２３に記載の送信装置(1201)と請求項２４に記載の受信装置(1201)の少なくとも１つを有する移動端末(1200)。
【請求項２６】
請求項２３に記載の送信装置と請求項２４に記載の受信装置の少なくとも１つを有する無線アクセスノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号学的チェックサムを生成する方法、対応するコンピュータプログラム、対応するコンピュータプログラム製品、および暗号学的チェックサムを生成するチェックサム生成器に関する。
【背景技術】
【０００２】
現在の第３世代(3G)および第４世代(4G) 3GPP (3rd Generation Partnership Project)モバイルネットワークは、制御プレーンに関しては暗号化に加えて認証も用いるが、ユーザプレーンは暗号化によってのみ保護されているのが一般的である。一方、WiMAXおよび無線ローカルエリアネットワーク(WLAN)/WiFiネットワークでは、ユーザプレーンにも認証を用いている。
【０００３】
ユーザプレーンメッセージを保護する既知の一方法は、鍵付きハッシュメッセージ認証コード(HMAC)や暗号ブロックチェイニングメッセージ認証コード(CBC-MAC)などの鍵付き暗号学的ハッシュ関数をメッセージに適用することによって生成される認証タグを用いることである。暗号学的ハッシュ関数は、いかなる偶発的または意図的なメッセージの変更（すなわち、誤りや改変）であっても、少なくとも所定の高確率でハッシュ値を変更するように、メッセージといった任意のデータブロックに関する暗号学的ハッシュ値（メッセージダイジェストとしても知られる）を生成するハッシュ関数である。したがって、メッセージダイジェストはメッセージの完全性(integrity)保証を提供するために用いることができる。
【０００４】
鍵付き暗号学的ハッシュ関数に関する問題は、比較的多くのリソースを必要とすることであり、そのため、制約のある機器（すなわち、M2M（マシンツーマシン）およびIoT（モノのインターネット）タイプの機器のような、演算および電池リソースが制限される機器）における鍵付き暗号学的ハッシュ関数の利用が妨げられている。加えて、メッセージダイジェストによるメッセージ長の増加により、送信データのペイロード部分が減少し、消費電力が増加する。
【０００５】
ランダム誤りに対するある程度の保護は巡回冗長チェック(CRC)コードによって実現可能である。CRCコードは非常にリソース効率が良い可分巡回コードの一種であり、バースト誤りを検出するためにデータ通信およびデータ記憶装置で広く用いられている。CRC処理は線形帰還シフトレジスタ(LFSR)を用いて効率的に実施可能である。一般的なCRCを以下に示す（CRC-nは、CRCのエンコードおよびデコードに次数(degree)nの生成多項式が用いられることを意味し、次数はCRCの生成多項式の最大係数である）：
-  CRC-16-CDMA2000：3Gモバイルネットワークで用いられる
-  CRC-CCITT：ブルートゥース（登録商標）で用いられる
-  CRC-32：イーサネット（登録商標）およびハイレベルデータリンク制御(HDLC)プロトコルで用いられる
-  CRC-40-GSM：GSM制御チャネルで用いられる。
【０００６】
次数nの生成多項式を用いるCRCは、n以下の長さのバースト誤り全てと、生成多項式を因子としない任意の誤りとを検出可能である。
【０００７】
従前のCRC技術はランダム誤りの検出には適しているが、悪意のある敵対者には容易に打ち負かされうる。所定のCRCにどの生成多項式が用いられるかは敵対者に既知であるため、敵対者は受信機でのCRCチェックに合格する改変メッセージを簡単に作ることができるであろう。これは例えば、元のメッセージに生成多項式を因子とする誤りを付加することによって実現できるであろう。
【０００８】
ユーザプレーンでのデータ完全性を提供するための、よりリソース効率のよい方法は、以下で暗号学的CRCまたは暗号学的チェックサムとも呼ぶ、暗号学的に安全なCRCによって従前のCRCチェックを置き換えることである。暗号学的CRCは伝統的なCRCと同等のランダム誤り検出能力を有し、さらには、敵対者によって注入された悪意のある誤りを高確率で検出する能力を有する。
【０００９】
暗号学的に安全なCRCの一種は、Krawczykによって提案されている（H. Krawczyk,「LFSR-based Hashing and Authentication」, in Advances in Cryptology - CRYPTO '94, Lecture Notes in Computer Science, Volume 839, Springer, 1994, pp. 129-139）。提案されているCRCは、認証タグ、すなわちCRCチェックビットの生成に、次数nの既約多項式(irreducible polynomial)を必要とする。基本的な思想は、CRC多項式を、送信機(sender)および受信機(receiver)だけが知る共有秘密鍵(shared secret)にすることである。これはセキュリティの観点からは十分に機能するが、既約多項式を見つけるのは容易でないため、依然としてリソース効率が悪いという問題がある。既約多項式、すなわち２つ以上の定数でない(non-trivial)多項式の積に因数分解できない多項式の生成は、擬似ランダム的に多項式を生成して既約性についての試験を行うこと、あるいは既約多項式のデータベースから擬似ランダム的に多項式を選択することのいずれかを必要とする。既約性試験の計算複雑度はn3ビット操作のオーダであり（例えば、S. GaoおよびD. Panarioによる、「Tests and Constructions of Irreducible Polynomials over Finite Fields」 in Foundations of Computational Mathematics, F. Cucker and M. Shub (Eds.), Springer, 1997, pp. 346-361を参照のこと）、計算に大きな手間がかかる。最も一般的なCRC長（n=32）に関する既約多項式の数は２27=134,215,680であるため、512Mバイトの容量を必要とし、既約多項式のデータベースを維持するには大きな容量が必要である。一般に、二元体(binary field)上の、既約な次数nの多項式の数は、2n/nのように増加する。
【発明の概要】
【００１０】
本発明の１つの目的は、上述の技術および従来技術の改良された代替物を提供することにある。
【００１１】
より具体的には、本発明の１つの目的は、改良されたメッセージ認証を提供することにある。特に、本発明の１つの目的は、既知レベルの安全性を有する、改良された暗号学的チェックサムを提供することにある。
【００１２】
本発明のこれらの目的および他の目的は、独立請求項によって規定されるような本発明の様々な態様によって実現される。本発明の実施形態は従属請求項によって特徴付けられる。
【００１３】
本発明の第１の態様によれば、メッセージM(x)に関する暗号学的チェックサムを生成する方法が提供される。方法は少なくとも２つの既約多項式{pi(x), i=1…N}を擬似ランダム的に選択することを含む。少なくとも２つの既約多項式は、第１の暗号鍵に基づいて擬似ランダム的に選択される。既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全ての既約多項式のセットから選択される。方法はさらに、次数
【数１】
0006397987.tif 000002
の生成多項式p(x)を、N個の既約多項式pi(x)の積、
【数２】
0006397987.tif 000003
として算出することと、暗号学的チェックサムを、M(x)の第２の関数f(M(x))のp(x)を法とした除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出することと、を含む。
【００１４】
本発明の第２の態様によれば、コンピュータプログラムが提供される。コンピュータプログラムは、機器が有する処理ユニットによって実行された際に、本発明の第１の態様の実施形態に係る方法を機器に実行させるための、コンピュータが実行可能な命令を有する。
【００１５】
本発明の第３の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、本発明の第２の態様に係るコンピュータプログラムを格納したコンピュータが読み取り可能な記憶媒体を有する。
【００１６】
本発明の第4の態様によれば、メッセージM(x)に対する暗号学的チェックサムを生成するチェックサム生成器が提供される。チェックサム生成器は、少なくとも２つの既約多項式{pi(x), i=1...N}を擬似ランダム的に選択するように構成された手段を有する。少なくとも２つの既約多項式は、第１の暗号鍵に基づいて擬似ランダム的に選択される。既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全ての既約多項式のセットから選択される。手段はさらに、次数
【数３】
0006397987.tif 000004
の生成多項式p(x)を、N個の既約多項式pi(x)の積、
【数４】
0006397987.tif 000005
として算出するとともに、暗号学的チェックサムをM(x)の第２の関数f(M(x))のp(x)を法とした除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出するように構成される。
【００１７】
本発明は、CRCのような標準的なチェックサムを、擬似ランダム的に選択された少なくとも２つの既約多項式の積である生成多項式に基づく暗号学的チェックサムで置き換えることにより、メッセージの効率的な認証が提供されうるとの理解を利用する。提案する暗号学的チェックサムは、以下でさらに導かれる既知のセキュリティレベルでメッセージに完全性保証を提供するために、すなわち無作為的または意図的なメッセージ変化を検出するために、用いることができる。
【００１８】
この文脈において、メッセージは、しばしば所定のフォーマットに入れられる、二進化情報である。フォーマットはメッセージが関係するプロトコルによって決定される。通常、メッセージはヘッダとペイロードとを有し、暗号学的チェックサムはメッセージ全体、すなわちヘッダおよびペイロードについて生成されることが好ましい。
【００１９】
本発明の実施形態は、従前のCRCを、従前のCRCと同様のランダム誤り検出能力を有しつつ、メッセージに完全性保証を提供する暗号学的チェックサムで置き換えることにより、メッセージフォーマットが変化しない点で従来技術より有利である。特に、メッセージに追加のMACを付加することに基づく既知の手法とは対照的に、メッセージの長さが増加しない。さらに、本発明の実施形態は、Krawczykによる既知の暗号学的CRCに対し、擬似ランダム的な次数nの既約多項式の生成に依拠せず、n未満の次数niの少なくとも２つの既約多項式の積であり、かつ合計で次数nとなる生成多項式を利用する点で有利である。次数nの既約多項式の数はnとともに指数関数的に増加する（およそ２n/nに比例する）ので、次数nの多項式を生成するためにn未満の次数の既約多項式を生成してそれらを乗じることは、次数nの１つの既約多項式を生成するよりもリソース要求量が少ない。このことは、n3ビット操作の計算複雑度を有する完全性についてのテスト実行のみならず、既約多項式のデータベースの維持についても当てはまる。例えば、最も一般的なCRC長であるn=32について、既約多項式の数は２27であり、512Mバイトの記憶容量が必要である。これに対し、次数n=16の既約多項式の数は4080であり、非常に少ない記憶容量しか必要としない。したがって、次数n=16の既約多項式のデータベースを維持することは実現可能であろうが、次数n=32の既約多項式のデータベースを維持することは多くのM2Mアプリケーションについて実現不能である。
【００２０】
なお、この文脈において、少なくとも２つの既約多項式pi(x)は、ガロア体上の次数nの全多項式のセットから擬似ランダム的に選択されることを理解すべきである。選択は多項式の確率分布を用いて制御されてもよい。そのような確率分布は利用可能な多項式のセットを効率的に制限するであろう。実際には、ガロア体上の次数nの全多項式のサブセットだけのデータベースを維持することは、データベースに含まれない多項式についてゼロの確率を有する確率分布を実施することになる。
【００２１】
本発明の一実施形態によれば、２つの既約多項式p1(x)およびp2(x)が擬似ランダム的に選択され、生成多項式p(x)はこれら２つの既約多項式の積p(x)=p1(x)・p2(x)として算出される。必要なら、擬似ランダム的に選択される２つの既約多項式p1(x)およびp2(x)は同じ次数、すなわちn1=n2=n/2を有する。
【００２２】
本発明の一実施形態によれば、生成多項式p(x)は非ゼロ定数項を有する。以下でさらに説明するように、生成多項式のセットを非ゼロ定数項を有する多項式のサブセットに限定することは、そのような生成多項式に基づく暗号学的チェックサムが、ある既約生成多項式に基づく暗号学的CRCと同じタイプのバースト誤りを検出する能力を有するという点で有利である。
【００２３】
本発明の一実施形態によれば、方法はさらに、長さnのパッドsを擬似ランダム的に生成することを含み、第１の関数gがパッドsを用いた加算を含む。擬似ランダム的に生成されるパッドを加算することは、暗号学的チェックサムをハッシュ関数によって生成することの線形変換が、アフィン変換に転換される点で有利である。パッドがない場合、敵対者は全てがゼロのメッセージを注入することに成功するであろう。必要ならパッドは、第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて生成されてもよい。
【００２４】
本発明の１つの実施形態によれば、既約多項式pi(x)の少なくとも１つが、メッセージに固有な情報に依存する。つまり、既約多項式の少なくとも１つが、敵対者には無作為であるように見せながら、メッセージの送信機および受信機だけが知っている方法で、メッセージ固有情報に基づいて選択されるメッセージ固有情報は、例えば、メッセージシーケンス番号、メッセージ識別子、メッセージに含まれるタイムスタンプなどの任意の1つまたは組み合わせを含むことができる。
【００２５】
本発明の１つの実施形態によれば、メッセージを認証する送信機の方法が提供される。方法は、メッセージを取得することと、メッセージについての暗号学的チェックサムを生成することと、生成された暗号学的チェックサムをメッセージに付加することと、メッセージと付加された暗号学的チェックサムとを送信することとを含む。メッセージおよび付加された暗号学的チェックサムをまとめて、符号語(codeword)と呼ぶ。
【００２６】
本発明の１つの実施形態によれば、メッセージを認証する受信機の方法が提供される。方法は、メッセージと付加された第１の暗号学的チェックサムとを受信することと、メッセージについての第２の暗号学的チェックサムを生成することと、第１の暗号学的チェックサムと第２の暗号学的チェックサムとが同一であるかどうかを検証することとを含む。もし同一でなければ、メッセージの完全性は確立されないかもしれない。つまり、メッセージは意図的もしくは偶発的に改変されている。
【００２７】
本発明の第１の態様の実施形態に関し、本発明の利点をいくつかの場合について説明してきたが、同様の論理は本発明の他の態様の実施形態にも当てはまる。
【００２８】
本発明の他の目的、特徴、および利点は、以下の詳細な開示、図面、および特許請求の範囲を理解することによって明らかになるであろう。本技術分野に属する当業者には、本発明の異なる特徴を組み合わせて、以下に説明する実施形態以外の実施形態を作成可能であることが理解されよう。
【００２９】
上述した、およびさらなる、本発明の目的、特徴および利点は、添付の図面に関する、本発明の実施形態の例示的かつ非限定的な詳細な説明を通じてよりよく理解されるであろう。
【図面の簡単な説明】
【００３０】
【図１】通信システムを示す図である。
【図２】符号語を示す図である。
【図３】メッセージ認証を示すブロック図である。
【図４】様々なタイプの生成多項式についての衝突確率のテーブルを示す図である。
【図５】本発明の実施形態に係る、送信機の方法についてのフローチャートである。
【図６】本発明の実施形態に係る、受信機の方法についてのフローチャートである。
【図７】本発明の実施形態に係る送信機を示す図である。
【図８】本発明の実施形態に係る受信機を示す図である。
【図９】本発明の別の実施形態に係る送信機を示す図である。
【図１０】本発明の別の実施形態に係る受信機を示す図である。
【図１１】本発明の実施形態に係るICを示す図である。
【図１２】本発明の実施形態に係る携帯電話機を示す図である。
【発明を実施するための形態】
【００３１】
すべての図は模式的であり、必ずしも一定の縮尺ではなく、また、一般には本発明を明らかにするために必要な部分のみを示しており、他の部分は省略もしくは単に示唆されている。
【００３２】
以下、本発明の特定の実施形態を示す添付図面に関して、本発明をより詳細に説明する。しかしながら、本発明は他の様々な形式で実施することができ、ここで説明する実施形態に限定して解釈されてはならない。むしろ、これらの実施形態は、本開示が本発明の範囲を本技術分野に属する当業者に漏れなく、完全に伝わるように例として提供されている。
【００３３】
図１に、通信ネットワーク１０３上で通信するように構成された送信機１０１および受信機１０２を有する通信システム１００を示す。特に、送信機１０１はメッセージ１０５を送信するように構成され、受信機１０２はメッセージ１０５を受信するように構成されている。好ましくは、送信機１０１および受信機１０２はメッセージを送信および受信するように構成される。送信機１０１および受信機１０２は、コンピュータ、モバイル端末、ユーザ端末(UE)、M2M/IoTタイプの機器、ゲートウェイ、無線ネットワークコントローラ(RNC)、無線基地局(RBS)、NodeB、またはeNodeBのような無線アクセスネットワーク(RAN)のノードなど、通信ネットワーク１０３上で通信を実現可能な任意のタイプの機器であってよい。通信ネットワーク１０３は、例えば、GSM、UMTS、LTEのようなRAN、WLAN/WiFiネットワーク、イーサネットネットワーク、企業ネットワーク、インターネットなど、有線または無線ネットワークのいずれか１つまたはそれらの組み合わせであってよい。
【００３４】
送信機１０１から通信ネットワーク１０３を通じて受信機１０２に送信されるメッセージ１０５は、無作為な／意図しない、または、意図的な／悪意をもった改変を受けることがある。無作為な改変は例えば、通信ネットワーク１０３の無線ネットワークのエアインタフェース上での送信中に生じるバースト誤りによって引き起こされる。一方、悪意のある改変は、やはり図１に示される敵対者１０４を発端とするであろう。敵対者１０４は送信機１０１によって送信されるメッセージ１０５を傍受し、メッセージの改変した複製を受信機１０２に再送信するかもしれない。敵対者１０４は、送信機１０１から受信したメッセージの改変に頼らずに新しいメッセージを生成しようとするかもしれない。通常、敵対者１０４の意図は悪意のあるメッセージを受信機１０２、特には受信機１０２のネットワークインタフェース、OS、またはアプリケーションに注入することである。
【００３５】
メッセージ１０５の完全性保証を用いて、メッセージ１０５の無作為な改変を検出することが本技術分野で知られている。これは、図２に示すように、メッセージ１０５にCRCのようなチェックサムを与えることによって実現できる。
【００３６】
そのため、CRCのようなチェックサム２０３が、図２においてヘッダ２０１と、ペイロードを搬送する本体２０２とを有するものとして示されるメッセージ２０４について生成され、符号語２００を形成するためにメッセージ２０４に付加される。そして、符号語２００（図１のメッセージ１０５に相当）は受信機１０２に送信され、以下で図３に関して説明するように、受信機１０２でメッセージ２０４の完全性が検証される。図３は、図１の送信機１０１および受信機１０２にそれぞれ対応する送信機側（図３の左側）および受信機側（図３の右側）を図示したブロック図３００を示している。
【００３７】
送信機１０１において、受信機１０２に送信されるメッセージ２０４は、例えば送信機１０１のプロトコルスタックの上位層から受信されることにより取得され、第１のチェックサム（図３ではCS）、特にはCRCを算出するように構成されたアルゴリズム３０１にメッセージ２０４に送られる。メッセージ２０４に加え、チェックサムアルゴリズム３０１は入力として共有秘密鍵、例えば暗号鍵を受信し、第１のチェックサムを出力として生成する。必要なら、チェックサムアルゴリズム３０１はさらに初期値(IV)を入力として受信してもよく、第１のチェックサム２０３は初期値に基づいて生成される。初期値はチェックサムアルゴリズム３０１に個別に入力されてもよいし、例えば初期値をメッセージ２０４の先頭または末尾に追加することにより、メッセージ２０４の一部として入力されてもよい。そして、メッセージ２０４およびチェックサム２０３は、例えばチェックサム２０３をメッセージ２０４の末尾に追加することにより、符号語２００に統合される。そして符号語２００は、例えば通信ネットワーク１０３を通じて、受信機１０２に送信される。
【００３８】
受信機１０２で符号語２００は受信され、符号語２００からメッセージ３０４が抽出される。なお、送信機１００から受信機１０２への送信１０５の間におけるメッセージ２０４の無作為な、および／または意図的な改変により、メッセージ３０４は送信機１０１から送信されたメッセージ２０４と必ずしも同一ではないことに留意されたい。メッセージ３０４は、送信機１０１のチェックサムアルゴリズム３０１と同一のチェックサムアルゴリズム３０１へ送られ、チェックサムアルゴリズム３０１は、メッセージ３０４と、送信機１０１の共有秘密鍵と同一の共有秘密鍵とに基づいて、第２のチェックサム３０３（図３ではCS'）を生成する。必要なら、チェックサムアルゴリズム３０１はさらに、送信機１０１の初期値と同一の初期値を受信してもよい。そして、第２のチェックサム３０３を比較器３０５に送り、符号語２００から抽出された第１のチェックサム２０３と比較することにより、受信メッセージ３０４の完全性が検証される。比較結果は、比較器３０５によって、例えば受信機１０２の通信スタックの上位レイヤなどで利用可能とされ、第１のチェックサム２０３と第２のチェックサム３０３とが同一であるか否かを示す。例えば、比較器３０５によって出力される結果は、高い値（論理「１」）が２つのチェックサムが同一であることを示し、低い値（論理「０」）が２つのチェックサムが異なることを示す（あるいは関係を逆転した）論理値であってよい。同一であれば、メッセージ３０４の完全性、すなわち、受信機１０２によって受信されたメッセージ３０４が送信機１０１によって送信されたメッセージ２０４と同一であること、が仮定されてもよい。メッセージ３０４の完全性を検証することにより、メッセージ３０４が送信１０５の間に改変されていないことが、ある程度の確率で推定可能である。
【００３９】
既知のチェックサム、特に、HMACやCBC-MACのような暗号学的ハッシュ関数であるCRCは、メッセージの無作為な改変を検出するように設計されている。より具体的には、次数nの生成多項式p(x)を用いるCRCは、n以下の長さの全てのバースト誤りを検出する能力を有する。さらに、CRCは生成多項式p(x)を因子としない全ての誤りを検出するであろう。CRCのエンコードおよびデコードは、LFSRを用いるハードウェアと、ソフトウェアとによって効率的に実施可能である。
【００４０】
送信機１０１でのエンコードについて、メッセージM(x)２０４は通常、まずxnを乗じられた後、生成多項式p(x)を法として除算される。剰余の多項式係数
【数５】
0006397987.tif 000006
は、CRCチェックサム２０３、すなわちメッセージダイジェストを構成し、符号語２００を形成するために、データビットM(x)・xnに加えられる。本開示を通じて、「・」は有限GF乗算操作（有限GF(2)についての有限GF乗算は論理ANDに等しい）であり、「mod」は有限体内における多項式を法とする除算の剰余である。xnを乗じることは、メッセージM(x)をnビットシフトすることに留意されたい。つまり、メッセージM(x)２０４は、CRCチェックサム２０３と結合される前にシフトされる。その結果、得られる符号語２００は分離可能であり、すなわちメッセージビットがチェックサムビットから分離される。
【００４１】
受信機１０２でのデコードについて、受信されたデータビットM'(x)・xnは生成多項式p(x)を法として除算され、得られた剰余の多項式係数３０３
【数６】
0006397987.tif 000007
は、符号語２００とともに受信されたCRCビットr(x)２０３と比較される。誤りが発生していなければ、メッセージ２０４は送信中に改変されておらず、剰余r'(x)は受信された剰余r(x)と同一である。不一致は誤り、すなわちM'(x)≠M(x)を示す。
【００４２】
従来のCRC技術は無作為な改変または誤りを検出するには有用であるが、チェックサムアルゴリズム３０１が用いている生成多項式p(x)は送信機１０１および受信機１０２だけが知っている秘密ではないため、敵対者１０４は、送信機１０１によって送信されるメッセージに、受信機１０２でのCRCチェックに合格する改変を容易に作ることができる。例えば、敵対者１０４は、送信されるメッセージM(x)２０４に、e(x) mod p(x)=0のような、生成多項式p(x)を因子とする多項式に対応する誤りe(x)を加えることができる。さらに、敵対者１０４は、送信機１０１によって送信されるメッセージ２０４を、恐らくは悪意のあるコンテンツを含んだ別のメッセージ３０４で単純に置き換え、そのメッセージを送信機１０１と同じチェックサムアルゴリズム３０１を用いてエンコードして受信機１０２に送信することができ、そのメッセージは受信機１０２で完全性チェックに合格する。
【００４３】
特にユーザプレーンにおいて、データの完全性を提供するためのリソース効率の良い方法は、従来のCRCを、無作為な誤りについて従来のCRCと同等の検出能力を有し、かつ高確率で意図的または悪意のある改変を検出する能力を有する、暗号学的に安全なCRCによって置き換えることである。従来のCRCと同じサイズの、暗号学的に安全なCRCを用いることにより、メッセージサイズの変化を考慮するためにプロトコルスタック全体を再設計する必要性なしに、既存のプロトコルスタックをメッセージ認証をサポートするように拡張することができる。
【００４４】
Krawczykが提案する暗号学的に安全なCRCは、生成多項式を送信機１０１および受信機１０２だけが知る共有秘密鍵にするという発想に基づいている。それにより、敵対者１０４はメッセージを受信機１０２での完全性チェックに合格するように設計することができなくなる。上述したとおり、この方法はセキュリティの観点からは十分に機能するが、既約多項式を見つけるのは容易でないため、依然としてリソース効率が悪いという問題がある。
【００４５】
以下に説明する本発明の実施形態は、送信機１０１から受信機１０２に送信されるメッセージ１０５の完全性が、従来のCRCと同じサイズであるが、従来のCRCでは制約されている意図的または悪意のある改変を高確率で検出可能な能力を有する暗号学的チェックサムを用いて検証可能であるという点で有利である。Krawczykが提案する暗号学的チェックサムと対照的に、本発明の実施形態は要求するリソースがより少ないという点で有利である。特に、１つの既約多項式を用いずに、少なくとも２つの、より小さな、擬似ランダム的に選択された既約多項式の積を生成多項式として用いることにより、既約性についてのテストに必要な計算量が少なく、既約多項式を保持するために必要な記憶容量も少ない。
【００４６】
そのために、本発明の実施形態は、図２および図３に図示した符号語２００内の、CRCのような従来のチェックサム２０３を置き換える暗号学的チェックサムを用いる。なお、本発明の一部の実施形態においては、メッセージ２０４またはその一部（例えば本体２０２）も暗号化されてもよい。そのような場合、受信機１０２は完全性の検証を実行する前に、まずメッセージまたはメッセージの一部を解読(decrypt)することができる。あるいは、解読処理の少なくとも一部を、チェックサム検証と交互に実行(interleave)してもよい。さらに別の代替構成として、受信機１０２はまず受信メッセージを解読しなくてもよい。受信機１０２でまず受信メッセージを解読する必要性は、送信機１０１での処理の順序に依存する。例えば、送信機１０１においてメッセージ暗号化が、チェックサム２０３が生成され、符号語２００の形成のためにメッセージ２４０に追加された後に適用される場合、受信機１０２は通常、受信した符号語をまず解読する必要がある。一方、送信機１０１が暗号化メッセージについてチェックサム２０３を算出する前にまずメッセージを暗号化する場合、受信機はチェックサムが算出され、受信した暗号化メッセージの完全性が検証される後まで解読を遅らせてもよい。本開示を通じて、そうでないと明記されない限り、解読は必要に応じて実行されるものとする。
【００４７】
従って、送信機１０１および受信機１０２で暗号学的に安全なチェックサム（図３のCSおよびCS'）を生成するために用いられるチェックサムアルゴリズム３０１はそれぞれ、以下に説明するように、Krawczykが提案するものに対して変更される。
【００４８】
チェックサムアルゴリズム３０１は、メッセージM(x)２０４に対する暗号学的チェックサム２０３を生成するためのハッシュ関数hp(M)であり、少なくとも２つの既約多項式pi(x), i=1...N (N＞=2)を生成することを含み、既約多項式pi(x)のそれぞれは、ガロア体、特に次数２のガロア体GF(2)上の次数niの全多項式のセットから生成される。また、チェックサムアルゴリズム３０１は、次数
【数７】
0006397987.tif 000008
の生成多項式を、N個の既約多項式pi(x)の積
【数８】
0006397987.tif 000009
として算出することと、暗号学的チェックサム２０３を、M(x)の第２の関数f、すなわちf(M(x))の、p(x)を法とした除算の第１の関数g、すなわち、
【数９】
0006397987.tif 000010
として算出することとを含む。
【００４９】
より具体的には、既約多項式pi(x)は、対応するガロア体上の既約多項式のセットから、第１の暗号鍵、すなわち送信機101および受信機１０２に既知の共有秘密鍵に基づいて擬似ランダム的に選択される。共有秘密鍵は例えば本技術分野で知られているように、加入者IDモジュール(SIM)、ユニバーサルSIM (USIM)などでサポートされる公開鍵技術や対称鍵技術によって確立されてよい。Krawcaykのように１つの既約多項式を生成多項式として用いるのとは異なり、それぞれの既約多項式pi(x)が次数ni＜nを有する少なくとも２つの既約多項式pi(x)を擬似ランダム的に選択し、その少なくとも２つの既約多項式の積として生成多項式を形成することにより、本発明の実施形態は従来の手法よりもメッセージ認証に必要なリソースがより少なくてよいという、特に制約のある機器にとって重要な利点を有する。
【００５０】
必要なら、生成多項式p(x)は非ゼロ定数項、すなわち
【数１０】
0006397987.tif 000011
を有してもよく、ここでcは非ゼロである（c=1はCF(2)上の多項式の場合を暗示する）。なお、非ゼロ定数項を有さない既約多項式は、pi(x)=xだけであることに留意されたい。したがって、p(x)は、自身の既約因子(irreducible factor)pi(x)の全てが非ゼロ定数項を有する場合に非ゼロ定数項を有する。以下にさらに説明するように、これは、生成される暗号学的チェックサムが、既約生成多項式に基づくKrawczykと同種の暗号学的チェックサムと同じタイプのバースト誤りを検出する能力を有するという点で有利である。対照的に、ゼロ定数項を有する生成多項式（すなわち式（６）でc=0）は、ランダム誤りの検出能力を悪化させうる。例えば、そのような生成多項式に基づく暗号学的チェックサムは、１ビット誤りのいくつかを検出できないであろう。
【００５１】
さらに必要により、第１の関数gは、長さnのパッドsの付加を有してもよい。すなわち、
【数１１】
0006397987.tif 000012
であり、「＋」はGF加算（GF(2)に対するGF加算は論理XOR操作に等しい）。パッドsは、例えば第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて擬似ランダム的に生成されてよい。第１および／または第２の暗号鍵は、第３の暗号鍵から、例えば第３の暗号鍵と、送信機１０１および受信機１０２に既知な何らかの情報とから擬似ランダムビットシーケンスを生成し、生成したビットシーケンスの一部を第１の暗号鍵として選択し、ビットシーケンスの残りのビットを第２の暗号鍵として選択することによって生成されてよい。ランダムなパッドsの付加は、ハッシュ関数hp(M)を用いた暗号学的チェックサムの生成の線形変換、すなわちhp(A)+hp(B)=hp(A+B)が、アフィン変換hp(M)+sに転換される点で有利である。パッドがなく、hp(0)=0の場合、ハッシュ関数に用いられる生成多項式に係わらず、敵対者が全てゼロのメッセージを注入することを可能にする。なお、ストリーム暗号を用いる暗号化が送信機１０１で適用される場合、パッドsは暗号化関数によって提供されてもよく、そのため暗号化と完全性処理とが交互に実行(interleave)されうることに留意されたい。この場合、受信機１０２は、(i)解読によってまずパッドsを除去してから、hp(M)だけをチェックサム２０３として取り扱ってもよいし、(ii)パッドsを除去せずに、hp(M)+sをチェックサム２０３として取り扱ってもよい。
【００５２】
本発明の実施形態で用いられるパッドは、1900年代初期にVernamによって導入された周知のワンタイムパッドと同様である。Vernam暗号において、メッセージは論理XOR演算を用いてビット単位で合成される。本発明の実施形態において、パッドは同様の方法で暗号学的チェックサムと合成される。
【００５３】
以下において、本発明の実施形態に係る暗号学的チェックサムの算出のための、提案するファミリーハッシュ関数のセキュリティが解析され、従来の手法、特にKrawczykと同種の暗号学的チェックサムと比較される。
【００５４】
以下に規定される、暗号学的に安全なハッシュ関数の(m, n)-ファミリを考える。バイナリ長mの任意のメッセージM(x)および式（４）による生成多項式p(x)のそれぞれについて、pi(x)'は式（３）が当てはまるガロア体上の次数niの既約多項式である場合、ハッシュ関数hpは以下の多項式のバイナリ係数として定義される。
【数１２】
0006397987.tif 000013
【００５５】
認証タグ、すなわちメッセージダイジェストまたは暗号学的に安全なチェックサム
【数１３】
0006397987.tif 000014
を算出するために、少なくとも２つの既約多項式pi(x)が擬似ランダム的に生成され、生成多項式p(x)は式（４）に従って形成され、ハッシュ関数hpが評価され、擬似ランダム的に生成されたパッドsが明示的に、または暗号化処理の一部として付加される。既約多項式pi(x)の生成は、ガロア体上の次数niを有する全ての多項式のセットから擬似ランダム的に選択された多項式のそれぞれについて、既約性に関するテストを実行すること、あるいは次数niのガロア体上の（好ましくは全ての）既約多項式のセットを有するデータベースから既約多項式pi(x)のそれぞれを擬似ランダム的に選ぶことのいずれかを必要とすることに留意されたい。
【００５６】
提案するハッシュ関数のファミリのセキュリティを解析するため、M(x)およびtを知った後、敵対者１０４がt'=tとなるようなメッセージM'(x)≠M(x)を見つけることが可能であれば、敵対者１０４が認証を破ることに成功するものと仮定する。ここでは、敵対者１０４がハッシュ関数の(m,n)-ファミリを知っているが、特定のメッセージの認証に用いられている特定のハッシュ関数hpおよびパッドsについては知らないものとする。
【００５７】
解析は、所与の長さの全メッセージにわたってCRCの分布を考慮することによって実行される。なお、ここでは最悪のケースのシナリオが検討されていることに留意されたい。すなわち敵対者１０４がチェックサムを設計しようとすることで敵対者１０４のチャンスを最大化するであろうこと、また敵対者１０４が成功の確率を最大化するこれらのメッセージを知っている（かつ選択する）ことを仮定している。したがって、成功の確率は２つの異なるメッセージMおよびM'が、式（１０）に従って算出される同一のチェックサムtを有する確率に依存するであろう。なぜなら、これは敵対者１０４が検出されることなしに、すなわち受信機１０２での完全性チェックに合格する、別のメッセージに、送信機１０１によって送信されたメッセージを置き換えることが可能であることを意味するからである。つまり、我々は以下のものを探索する。
【数１４】
0006397987.tif 000015
ここで、最大値は全ての区別可能なmビットメッセージMおよびM'について求められ、確率Prは式（４）に従った、ハッシュ関数を規定する生成多項式pxをランダムに選択したものについて求められる。hp(M)=hp(M')の場合にのみhp(M)+s=hp(M')+sが成り立つので、パッドsの存在は確率に影響しないことに留意されたい。さらに、確率は統計量であり、ランダムに発生する事象を予測するための最適な戦略は事象の統計分布に従って予測を行うことであることに留意されたい。例えば、（仮想的かつ理想的なコイン）を投げた際に表が出るか裏が出るかの予測が当たる確率は、利用できるリソースに係わらず1/2を超えることはできない。従って、式（１１）は、敵対者が理由に使える計算リソースにかかわらず、すべての敵対者の成功確率の上限をもたらす。
【００５８】
定理４（補遺を参照）によれば、任意の数mおよびnに対し、また任意のメッセージMに対し、いかなる敵対者も、以下の確率を超えて、ランダムに選択された生成多項式に基づく暗号学的チェックサムを用いた認証を破ることはできない。
【数１５】
0006397987.tif 000016
なお、i, j∈{1, 2, …, N}の全てについてni≠njであるか、i, j∈{1, 2, …, N}の全てについてni=njであるとする。確率εは、衝突確率と呼ばれる。
【００５９】
以下では、N=2である特別な場合、すなわち生成多項式p(x)が、以下の式に示すように２つの既約多項式の積である場合について検討する。
【数１６】
0006397987.tif 000017
２つの多項式の操作は３つ以上の多項式の操作と比較して必要な計算量が少ないので、２つの既約多項式の積に基づく実施形態は有利である。さらに、式（１２）によれば、衝突確率はNの増加に伴って急激に減少する（すなわち、暗号学的チェックサムの期待される安全性が低下する）。N=2について、衝突確率のより正確な限界を得ることができる。補遺における補助定理１には、既約多項式p1(x)およびp2(x)がそれぞれ異なる次数n1およびn2を有する場合に関して、
【数１７】
0006397987.tif 000018
が示されている。また、既約多項式p1(x)およびp2(x)が同じ次数n1=n2=n/2を有する場合に関して、
【数１８】
0006397987.tif 000019
が、示されている。衝突確率ε1およびε2について得られる値を図４の表４００（それぞれ３番目および４番目の列）に示す。
【００６０】
比較のために、表４００の５番目の列に、Krawczykに類似した既約生成多項式についての衝突確率ε0を示す。この場合、既約生成多項式についての衝突確率ε0は、(m+2)/2n-1で与えられる。
【００６１】
表４００から、異なる次数（３番目の列）および等しい次数（４番目の列）を有する２つの既約多項式の積である生成多項式を用いる本発明の実施形態について、それぞれの衝突確率が、Krawcaykに類似した既約多項式（５番目の列）についての衝突確率よりも高いことが分かる。つまり、これらは所与のメッセージサイズについて、より低いレベルの安全性を提供する。したがって、安全性とリソース効率とにはトレードオフが存在する。より低いレベルの安全性を許容できるアプリケーションに関して、本発明の実施形態はリソース要求量が少ない点において有利である。表４００から、本発明の実施形態によって提供される安全性のレベルは、Krawczykに類似した暗号学的チェックサムよりもメッセージサイズに依存した低下が大きいので、提案する暗号学的チェックサムが短いメッセージまたは中程度の長さのメッセージに特に有効であることがさらに分かる。
【００６２】
さらに表４００から、等しい次数、すなわち式（１５）に従ったε2を有する２つの既約多項式の積である生成多項式に依拠する実施形態についての衝突確率が、異なる次数（式（１４）に従ったε1）を有する２つの既約多項式の積である生成多項式に依拠する実施形態についての衝突確率よりも低いことが分かる。従って、等しい次数を有する２つの既約多項式の積である生成多項式に依拠する実施形態は、要求するリソースが少ない上に改善された安全性を提供するので、有利である。例えば、次数n/2（nは必要なチェックサムサイズ）の既約多項式のデータベースを維持し、このデータベースからp1(x)およびp2(x)を擬似ランダム的に選択する本発明の一実施形態を想定することができる。
【００６３】
なお、ここに提示した安全性の解析は、一様にランダムなパラメータ、例えば多項式の仮定に基づいているが、実際にはこれらのパラメータは擬似ランダム的に生成されることに留意されたい。しかし、均一な分布との実際には区別できない出力分布を生成する擬似ランダム生成器が知られているため、この違いは重要ではない。したがって、敵対者は分布におけるそれらの違いにつけこむことはできない。
【００６４】
本発明の実施形態は、敵対者１０４にとって予測不能な、生成多項式p(x)およびパッドsの少なくとも１つについての、送信機１０１および受信機１０２について決まる方法での変更に基づいている。つまり、生成多項式p(x)および／またはパッドsの変更は、送信機１０１と受信機１０２との間で同期させる必要がある。
【００６５】
既約多項式を擬似ランダム的に選択するために用いられる共有秘密鍵、すなわち第１の暗号鍵は、チェックサムアルゴリズム３０１の出力を敵対者１０４にとって予測不能とすることを意図しているが、チェックサムアルゴリズム３０１は必要に応じて既約多項式pi(x)の少なくとも１つを、メッセージのシーケンス番号またはメッセージの他の何らかの固有情報（例えばタイムスタンプ）、メッセージ識別子、または乱数といった、メッセージに依存する何らかのデータに基づいて決定してもよい。そのような追加情報は、例えばメッセージ２０４のヘッダ２０１で搬送されてよい。
【００６６】
一般に、個々のメッセージに対して新たな生成多項式を算出する必要はなく、送信機１０１と受信機１０２との間の新しいセッションの開始時に生成多項式を生成し、この生成多項式をセッション中に送信機１０１および受信機１０２の間で交換される全てのメッセージに対して固定し続ければ十分である。しかし、パッドはメッセージごとに変更する必要があり、メッセージに依存するデータ、すなわちメッセージに固有な情報に依存して変更されうる。
【００６７】
図５に、メッセージを認証する送信機の方法の一実施形態５００を示す。方法５００の実施形態は、例えば送信機１０１によって実行されてよい。方法５００は、例えば送信機１０１の通信スタックの上位レイヤもしくは送信機１０１で実行中のアプリケーションから，メッセージを取得すること（５０１）、メッセージについての暗号学的チェックサムを生成すること、生成した暗号学的チェックサムをメッセージに追加（５０６）して符号語を形成すること、および符号語、すなわちメッセージおよび追加された暗号学的チェックサムを送信すること（５０７）を有する。
【００６８】
より具体的には、暗号学的チェックサムを生成することは、上述したように、第１の暗号鍵に基づいて、少なくとも２つの既約多項式pi(x)を擬似ランダム的に選択する（５０２）ことと、ここで、既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全既約多項式のセットから選択され、次数
【数１９】
0006397987.tif 000020
の生成多項式p(x)をN個の既約多項式pi(x)の積
【数２０】
0006397987.tif 000021
として算出する（５０３）ことと、暗号学的チェックサムをM(x)の第２の関数f(M(x))のp(x)を法とする除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出すること（５０５）と、を含む。第１の暗号鍵はメッセージの送信機および受信機に既知の共有秘密鍵である。必要なら、生成多項式は非ゼロ定数項を有してもよい。暗号学的チェックサムを生成することは、さらに、長さnのパッドsを擬似ランダム的に生成すること（５０４）を含んでもよく、第１の関数gはパッドsを用いた加算を含む。パッドsは、第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて生成されてもよい。第２および第１の暗号鍵はメッセージの送信機および受信機に既知の共有秘密鍵である。必要なら、生成多項式p(x)およびパッドsの少なくとも一方、または両方を、メッセージシーケンス番号、タイムスタンプ、乱数といった、メッセージに特有の情報に応じて生成してもよい。
【００６９】
図６に、メッセージを認証する受信機の方法の一実施形態６００を示す。方法６００の実施形態は、例えば受信機１０２によって実行されてよい。方法６００は、符号語、すなわちメッセージと付加された第１の暗号学的チェックサムとを受信すること（６０１）と、メッセージについての第２の暗号学的チェックサムを生成することと、第１の暗号学的チェックサムと第２の暗号学的チェックサムとが同一であるかどうかを検証すること（６０６）とを含む。もし同一でなければ、メッセージの完全性は確立されないかもしれない。つまり、メッセージは偶発的に／無作為に、あるいは意図的に／悪意をもって改変されている。
【００７０】
より具体的には、第２の暗号学的チェックサムを生成することは、上述したように、第１の暗号鍵に基づいて、少なくとも２つの既約多項式pi(x)を擬似ランダム的に選択する（６０２）ことと、ここで、既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全既約多項式のセットから選択され、次数
【数２１】
0006397987.tif 000022
の生成多項式p(x)をN個の既約多項式pi(x)の積
【数２２】
0006397987.tif 000023
として算出する（６０３）ことと、第２の暗号学的チェックサムをM(x)の第２の関数f(M(x))のp(x)を法とした除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出すること（６０５）と、を含む。第１の暗号鍵はメッセージの送信機および受信機に既知の共有秘密鍵である。必要なら、生成多項式は非ゼロ定数項を有してもよい。第２の暗号学的チェックサムを生成することは、さらに、長さnのパッドsを擬似ランダム的に生成すること（６０４）を含んでもよく、第１の関数gはパッドsを用いた加算を含む。パッドsは、第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて生成されてもよい。第２および第１の暗号鍵はメッセージの送信機および受信機に既知の共有秘密鍵である。必要なら、生成多項式p(x)およびパッドsの少なくとも一方、または両方を、メッセージシーケンス番号、タイムスタンプ、乱数といった、メッセージに特有の情報に応じて生成してもよい。
【００７１】
本発明の実施形態による、暗号学的チェックサムの算出は、従来のCRCに用いられているものと同じタイプの演算に基づく。したがって、本発明の実施形態による暗号学的チェックサムの算出は、本発明の実施形態が可変擬似ランダム生成多項式を用いることを除き、従来のCRCの簡単さのほとんどを保っている。したがって、本発明の実施形態をハードウェアに実装することは容易であり、得られる実装は非常にリソース効率がよい。本技術分野で知られているように、GF(2)上の多項式を法とした除算演算はLFSRを通じて実施することができ、LFSRのタップが生成多項式を決定する。xnによる乗算すらハードウェアで高性能に実施可能である。しかし、生成多項式が固定かつ事前に分かっており、一般に実施回路が不変の生成多項式を決定する帰還接続を有する従来のCRCと対照的に、本発明の実施形態に係る暗号学的チェックサムは帰還接続がプログラマブルな実装を要する。これらの帰還接続の実際の構成は、ハッシュの実行において鍵となり、かつ、変更可能で秘密でなければならない。なお、異なる生成多項式に基づく異なるCRC規格をサポートする必要がある場合や、異なる多項式次数をサポートする必要がある場合には、一部の暗号学的CRC回路もプログラマブル接続を用いることができることに留意されたい（例えば、 J. Birch, L. G. ChristensenおよびM. Skovによる、”A programmable 800 Mbit/s CRC check/generator unit for LAN6 and MANs”, Comp. Networks and ISDN Sys., 1992を参照）。
【００７２】
擬似ランダム的に選択される生成多項式のセットを非ゼロ定数項を有する多項式のセットに制限することは、本発明の実施形態に係るチェックサム生成器の実装を難しくしないことを述べておくことは重要である。そのような多項式について異なる点は、多項式の定数項に対応するLFSRタップがプログラマブルでなく固定されうる点だけである。
【００７３】
CRC生成器のソフトウェアによる効率的な実装もまた存在する。それらの実装においては、生成多項式を擬似ランダム的に選択するために用いられる特定の暗号鍵に応じて予め算出されたテーブルを用いることにより、大幅な高速化が実現される。したがって、テーブルは暗号鍵ごとに一度だけ算出され、これは多くのアプリケーションで手頃である。
【００７４】
本発明の実施形態に係るハッシュ関数ファミリ内の関数は、基本的に、ハッシュ関数を適用するメッセージの長さではなく、生成多項式p(x)によって規定される。したがって、それらは異なる長さのメッセージに適用可能であり、実用上好ましい。特に、メッセージM(x)に対応する多項式は先頭の係数として「０」でなく「１」を有さねばならない（Mの長さがmであれば、M(x)の適切な次数はmである）。これは、メッセージと多項式との一対一のマッピングを決定し、特に、単にゼロをメッセージに付加してメッセージを変更することを妨げる。例えば、メッセージ01011は５ビットメッセージではなく４ビットメッセージ1011として取り扱う必要がある。そうしないと、これら２つのメッセージは同じ多項式1・x3+0・x2+1・x1+1・x0=x3+x1+1によって表され、その結果、エンコーディング後に同一のチェックサムを有するであろう。そうしないと、新しいメッセージが同一のチェックサムを有さねばならないことを知っている敵対者は、メッセージの先頭に１つ以上のゼロを簡単に追加することができるであろう。あるいは、またはさらに、例えばメッセージ長をメッセージの先頭または末尾に付加することにより、認証／検証処理への入力として明示的な長さ表示を用いてもよい。
【００７５】
受信機側では、メッセージを、典型的にはビットであるメッセージ要素の順次受信と実質的に同期して処理する有限状態機械(FSM)により、メッセージの完全性の検証を効率的に実施することができるそのようなFSMは受信機のメディアアクセス制御(MAC)レイヤに統合されてもよく、典型的にはチェックサムデコーダ、比較器および制御ブロックからなる。チェックサムデコーダは受信したメッセージ要素に対するチェックビットを、メッセージ要素が到着するごとに、すなわちビットごとに再計算する。比較器は再計算されたチェックビットを、メッセージ内で受信したチェックビット、すなわち認証タグまたはチェックサムと比較する。再計算されたチェックビットと受信したチェックビットとが不一致であれば、比較器は、メッセージの完全性が検証できなかったことを示すエラー信号を制御ブロックに送信する。
【００７６】
図７に、図１の送信機１０１のような、メッセージを認証するための送信機の実施形態７００を示す。送信機７００は、例えば送信機７００の通信スタックの上位レイヤもしくは送信機７００で実行中のアプリケーションからメッセージを取得するためのメッセージバッファ７０１と、メッセージについての暗号学的チェックサムを生成するためのチェックサム生成器７０２と、生成した暗号学的チェックサムをメッセージに追加して符号語を形成するための符号語バッファ７０３と、符号語、すなわちメッセージおよび追加された暗号学的チェックサムを送信するためのインタフェース７０４と、第１の暗号鍵、すなわちメッセージの送信機７００および受信機に既知の共有秘密鍵をチェックサム生成器７０２に提供するための共有秘密鍵モジュール７０５とを有する。インタフェース７０４は例えばRANと通信を行うように構成されたネットワークインタフェースまたは無線送受信機であってよい。
【００７７】
より具体的には、チェックサム生成器７０２は、上述したように、第１の暗号鍵に基づいて、少なくとも２つの既約多項式pi(x)を擬似ランダム的に選択し、ここで、既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全既約多項式のセットから選択され、次数
【数２３】
0006397987.tif 000024
の生成多項式p(x)をN個の既約多項式pi(x)の積
【数２４】
0006397987.tif 000025
として算出し、暗号学的チェックサムをM(x)の第２の関数f(M(x))のp(x)を法とした除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出する、ことによって、暗号学的チェックサムを生成するように構成される。必要なら、生成多項式は非ゼロ定数項を有してもよい。チェックサム生成器７０２はさらに、長さnのパッドsを擬似ランダム的に生成するように構成されてもよく、第１の関数gはパッドsを用いた加算を含む。パッドsは、第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて生成されてもよい。第２の暗号鍵はメッセージの送信機７００および受信機に既知の共有秘密鍵である。したがって、共有秘密鍵モジュール７０５はさらに、第２の暗号鍵をチェックサム生成器７０２に提供するように構成されてもよい。あるいは、上述したように、パッドsはチェックサム生成器７０２で生成されるのではなく、暗号化アルゴリズムによって提供されてもよい。
【００７８】
必要なら、チェックサム生成器７０２は、生成多項式p(x)およびパッドsの少なくとも一方、または両方を、メッセージシーケンス番号、タイムスタンプ、乱数といった、メッセージに特有の情報に応じて生成するように構成されてもよい。そのような情報はチェックサム生成器７０２の入力として、特にはチェックサム生成器７０２が有するLFSRの入力として用いられてよい。
【００７９】
図８に、図１の受信機１０２のような、メッセージを認証するための受信機の実施形態８００を示す。受信機８００は、符号語、すなわちメッセージと付加された第１の暗号学的チェックサムとを受信するためのインタフェース８０１と、受信した符号語からメッセージと第１の暗号学的チェックサムとを抽出するための符号語バッファ８０２と、メッセージについての第２の暗号学的チェックサムを生成するためのチェックサム生成器８０３と、第１の暗号学的チェックサムと第２の暗号学的チェックサムとが同一であるかどうかを検証するための比較器８０４と、第１の暗号鍵、すなわちメッセージの受信機８００と送信機とに既知の共有秘密鍵をチェックサム生成器８０３に提供するための共有秘密鍵モジュール８０５とを有する。受信機８００はさらに、受信したメッセージを保存し、比較器８０４から受信した、受信メッセージの完全性が検証されたことを示す表示に応答してメッセージを受信機８００の通信スタックの上位レイヤもしくは受信機８００で実行中のアプリケーションに送るためのメッセージバッファ８０６を有してもよい。インタフェース８０１は例えばRANと通信を行うように構成されたネットワークインタフェースまたは無線送受信機であってよい。
【００８０】
より具体的には、チェックサム生成器８０３は、図７に関して説明したチェックサム生成器７０２と類似しており、上述したように、第１の暗号鍵に基づいて、少なくとも２つの既約多項式pi(x)を擬似ランダム的に選択し、ここで、既約多項式pi(x)のそれぞれは、ガロア体上の次数niの全既約多項式のセットから選択され、次数
【数２５】
0006397987.tif 000026
の生成多項式p(x)をN個の既約多項式pi(x)の積
【数２６】
0006397987.tif 000027
として算出し、第２の暗号学的チェックサムをM(x)の第２の関数f(M(x))のp(x)を法とする除算の第１の関数g、すなわちg(f(M(x)) mod p(x))として算出する、ことによって、第２の暗号学的チェックサムを生成するように構成される。必要なら、生成多項式は非ゼロ定数項を有してもよい。チェックサム生成器８０３はさらに、長さnのパッドsを擬似ランダム的に生成するように構成されてもよく、第１の関数gはパッドsを用いた加算を含む。パッドsは、第１の暗号鍵と同じであっても異なってもよい第２の暗号鍵に基づいて生成されてもよい。第２の暗号鍵はメッセージの受信機８００および送信機に既知の共有秘密鍵である。したがって、共有秘密鍵モジュール８０６はさらに、第２の暗号鍵をチェックサム生成器８０３に提供するように構成されてもよい。あるいは、上述したように、パッドsはチェックサム生成器８０３で生成されるのではなく、暗号化アルゴリズムによって提供されてもよい。
【００８１】
必要なら、チェックサム生成器８０３は、生成多項式p(x)およびパッドsの少なくとも一方、または両方を、メッセージシーケンス番号、タイムスタンプ、乱数といった、メッセージに特有の情報に応じて生成するように構成されてもよい。そのような情報はチェックサム生成器８０３の入力として、特にはチェックサム生成器８０３が有するLFSRの入力として用いられてよい。
【００８２】
送信機７００および受信機８００の実施形態は、本技術分野で知られているように、ハードウェア、ソフトウェア、またはそれらの組み合わせによって実施されてよい。例えば、モジュール７０１〜７０５およびモジュール８０１〜８０６は電子回路、特にデジタルバイナリロジックによって実施されてよい。あるいは、モジュール７０１〜７０５およびモジュール８０１〜８０６はデジタルシグナルプロセッサ(DSP)によって実施されてよい。インタフェース７０４および８０１が符号語をRANのエアインタフェース上でそれぞれ送信または受信するためのアナログ電子回路を有しうることが理解されよう。
【００８３】
チェックサム生成器７０２および８０３の実施形態の動作は、本技術分野において実施方法が既知である標準的なCRC生成器と非常に似ている。擬似ランダム的に生成されたパッドsに依拠するチェックサム生成器７０２および８０３の実施形態は、パッドsの加算をf(M(x)) mod p(x)を表すnビットストリングと、nビットのパッドsとのビットごとのXOR演算によって実施することができる。
【００８４】
図９に、メッセージを認証する送信機の代替実施形態９００を示す。送信機９００はプロセッサ９０１、例えばDSPと、ソフトウェア（コンピュータが実行可能な命令を有するコンピュータプログラム９０３）であって、コンピュータが実行可能な命令がプロセッサ９０１で実行された際に、特に図５に関して説明した、メッセージを認証する送信機の方法の実施形態を送信機９００に実行させるためのソフトウェアを有するメモリ９０２とを有する。送信機９００はさらに、通信ネットワーク、例えば通信ネットワーク１０３を通じて通信を実行するためのインタフェース９０４をさらに有してよい。インタフェース９０４は例えばRANと通信を行うように構成されたネットワークインタフェースまたは無線送受信機であってよい。
【００８５】
図１０に、メッセージを認証する受信機の代替実施形態１０００を示す。受信機１０００はプロセッサ１００１、例えばDSPと、ソフトウェア（コンピュータが実行可能な命令を有するコンピュータプログラム１００３）であって、コンピュータが実行可能な命令がプロセッサ１００１で実行された際に、特に図６に関して説明した、メッセージを認証する受信機の方法の実施形態を受信機１０００に実行させるためのソフトウェアを有するメモリ１００２とを有する。送信機１０００はさらに、通信ネットワーク、例えば通信ネットワーク１０３を通じて通信を実行するためのインタフェース１００４をさらに有してよい。インタフェース１００４は例えばRANと通信を行うように構成されたネットワークインタフェースまたは無線送受信機であってよい。
【００８６】
図７から図１０に関して説明した送信機および受信機の実施形態１１０１は、図１１に示す集積回路(IC)１１００で実施されてよい。さらに、図７から図１０に関して説明した送信機および受信機の実施形態１２０１は、図１２に示す携帯電話機１２００のような移動端末で実施されてよい。さらなる代替物として、図７から図１０に関して説明した送信機および受信機の実施形態１２０１は、例えばゲートウェイ、RNC、またはRBS、NodeB、eNodeB、WLANアクセスポイントのような、RANのノードで実施されてもよい。
【００８７】
本発明が上述した実施形態に決して限定されないことは本技術分野に属する当業者にとって明らかであろう。むしろ、添付の特許請求の範囲の範囲内で多くの修正および変形が可能である。
【００８８】
補遺
p(x)を以下の形式のGF(2)上の多項式とする。
【数２７】
0006397987.tif 000028
ここで、N＞1であり、pi(x)のそれぞれは非ゼロ定数項を有する次数niの既約多項式であり、
【数２８】
0006397987.tif 000029
である。GF(2)では、非ゼロ定数項を持たない既約多項式は多項式xただ１つしか存在しないことに留意されたい。
我々は、暗号学的に安全なCRCハッシュ関数の(m, n)-ファミリを以下のように定義する。
・定義１
任意のmビットメッセージM(x)について、また、式（１）によるp(x)について、ハッシュ関数hp(M)は以下の様に定義される。
【数２９】
0006397987.tif 000030
(m, n)-ファミリはそのような関数の全てのセットからなるものとして定義される。すなわちp(x)のそれぞれがファミリの１つのメンバを定義する。
【００８９】
以下、ハッシュ関数の(m, n)-ファミリの誤り検出能力について検討する。
次数n＞1の既約生成多項式に基づくCRCが長さn以下の全てのバースト誤りの検出能力を有することは周知である（W. W. PetersonおよびD. T. Brown, 「Cyclic Codes for Error Detection」, in Proceedings of the IRE, Volume 49, 1961, pages 228-235）。以下において我々は、式（１）による生成多項式p(x)に基づく暗号学的に安全なCRCが同じタイプの誤りを検出可能であることを示す。ここで、多項式p(x)の次数をdeg(p(x))で表すものとする。
【００９０】
・定理１
式（１）による生成多項式p(x)に基づくCRCが、deg(p(x))に等しい次数の既約生成多項式に基づくCRCと同じタイプのバースト誤りを検出可能である
【００９１】
・証明
任意の生成多項式p(x)に基づくCRCは、p(x)を因子とする誤り以外の全ての誤りを検出する。p(x)が式（１）に示すタイプであれば、その因子の全ては非ゼロ定数項を有する多項式である。
次数n＞0の任意のバースト誤りは以下の形式の多項式によって記述できる。
【数３０】
0006397987.tif 000031
ここで、i∈{0, 1, ..., n-1}について、
【数３１】
0006397987.tif 000032
である。多項式b(x)は、p(x)の全因子がまたb(x)の因子である場合にのみp(x)を因子として有する。
【００９２】
p(x)の次数はa(x)の次数よりも少なくとも１大きいので、p(x)≠a(x)である。したがって、b(x)を因子とするためには、p(x)はp(x)=a(x)・c(x)という形式でなければならない。ここで、c(x)は次数が少なくとも１の、非ゼロ定数項を有する多項式である。
しかし、b(x)の、a(x)以外の全ての因子はゼロ定数項を有するので、c(x)はb(x)の因子にはなりえない。したがって、式（１）による、次数nの生成多項式p(x)に基づくCRCは、長さn以下の全てのバースト誤りを検出可能である。
【００９３】
本発明の実施形態についての衝突確率の解析を提示する前に、前提となる定義および定理のいくつかを提示する（定義１から３および、定理２および３はH. Krawczyk, "LFSR-based Hashing and Authentication", in Advances in Cryptology - CRYPTO '94, Lecture Notes in Computer Science, Volume 839, Springer, 1994, pages 129-139からのものである）。
【００９４】
・定義２
ハッシュ関数Hのファミリは、全てのメッセージMおよびM'について以下が成り立てば、＋-linearであると呼ばれる。
【数３２】
0006397987.tif 000033
我々の目的のために、「＋」演算は常にガロア体内で定義され、典型的にはGF(2)の拡大である。
【００９５】
・定義３
ハッシュ関数のファミリは、長さmの任意の非ゼロメッセージMについて、かつ任意の長さmのバイナリ文字列cについて以下が成り立つ場合、ε-balancedと呼ばれる。
【数３３】
0006397987.tif 000034
ここで、確率は、ファミリから一様に無作為に選択されたhpにわたって取られる。
【００９６】
・定義４
ハッシュ関数のファミリは、任意のメッセージMについて、対抗者がεを超える確率で認証を破ることができない場合、ε-opt-secureと呼ばれる。
【００９７】
・定理２
ハッシュ関数のファミリHがε-opt-secureであるための必要十分条件は以下の通りである。
【数３４】
0006397987.tif 000035
【００９８】
・定理３
Hが＋-linearであれば、Hがε-balancedである場合にのみHはε-opt-secureである。
【００９９】
以下では、全てのi, j∈{1, 2,..., N}についてni≠njであるか、全てのi, j∈{1, 2,..., N}についてni=njであれば、いかなる対抗者も、提示される(m, n)-ファミリに基づく、すなわち、そのファミリによって定義されるCRCに基づく認証を、式（８）で与えられるようなεを超える確率で破ることができないことを示す。本技術分野に属する当業者は、証明を任意のqについてのGF(q)に適合させる方法を理解するであろう。
【０１００】
・定理４
任意の値nおよびmについて、定義１で与えられるハッシュ関数のファミリは、全てのi, j∈{1, 2,..., N}についてni≠njであるか、全てのi, j∈{1, 2,..., N}についてni=njであれば（ここで、niは式（１）におけるpi(x)の次数である）、ε-opt-secureであり、
【数３５】
0006397987.tif 000036
である。
【０１０１】
証明
定理３によれば、ハッシュ関数のファミリが＋-linearであれば、ファミリがε-balancedである場合にのみファミリはε-opt-secureである。多項式を法とする除算は線形演算であるから、定義１で与えられるハッシュ関数のファミリが＋-linearであることは明らかである。次に、このファミリがε-balancedでもあることを示す。
まず、次数nの任意の生成多項式p(x)、任意の非ゼロmビットメッセージM、および任意のnビット文字列cについて、M(x)・xn mod p(x) = c(x)である場合にのみhp(M) = cとなることが分かる。ここで、c(x)はビット文字列cで規定される多項式である。次に、p(x)がM(x)・xn - c(x)を等分する場合にのみM(x)・xn mod p(x) = c(x)となる。
q(x) = M(x)・xn - c(x)とする。明らかに、q(x)はm+nを超えない次数の非ゼロ多項式であり、p(x)はq(x)を等分する次数nの多項式である。
【０１０２】
・ケース１
全てのi, j∈{1, 2,..., N}についてni≠njであるとする。素因数分解の一意性から、q(x)は、i∈{1, 2,..., N}の各々について、以下の数を超えない既約因子を含むことができる。
【数３６】
0006397987.tif 000037
したがって、全てのi, j∈{1, 2,..., N}についてni≠njであれば、Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の数は
【数３７】
0006397987.tif 000038
未満である。
【０１０３】
一方、p(x)を構成する方法はIn1・In2・...InN通りある。ここで、Iniは次数niの既約多項式の数である。次数nの既約多項式の数は
【数３８】
0006397987.tif 000039
であるから、
【数３９】
0006397987.tif 000040
である。
したがって、衝突確率はたかだか
【数４０】
0006397987.tif 000041
である。
【０１０４】
・ケース２
全てのi, j∈{1, 2,..., N}についてni=njであるとする。deg(pi) = deg(p)/Nが成り立つ。
次数n/Nの既約多項式の数は
【数４１】
0006397987.tif 000042
である。したがって、p(x)を構築する方法は
【数４２】
0006397987.tif 000043
通りより多く、ここで、
【数４３】
0006397987.tif 000044
である。
【０１０５】
一方、次数n/Nのそれぞれについて、q(x)の既約因子の数はたかだか
【数４４】
0006397987.tif 000045
である。それらの異なる全てのN組は次数nの可約多項式を生成する。したがって、Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の数はたかだか
【数４５】
0006397987.tif 000046
である。
一方、このファミリ内の要素の数は式（１５）によって制限されている。そのため、衝突確率はたかだか
【数４６】
0006397987.tif 000047
である。
【０１０６】
次に、生成多項式が２つの既約多項式の積である場合、つまりN=2の場合について、衝突確率のより正確な限界を求める。
・補助定理１
N = 2であれば、定理４におけるεは以下で与えられる。
【数４７】
0006397987.tif 000048
【０１０７】
・証明
n1 = deg(p1)とする。したがって、n2 = deg(p2) = n - n1である。
q(x)が次数n - n1の既約因子をr個含むとする。すると、素因数分解の一意性から、q(x)が含む次数n1の既約因子の数はたかだか
【数４８】
0006397987.tif 000049
である。これら因子の区別可能な組の数は
【数４９】
0006397987.tif 000050
であり、各組は区別可能な次数nの可約多項式を生成する。Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の最大数を見出すには、以下の二次関数の値を最大にするrを見出す必要がある。
【数５０】
0006397987.tif 000051
【０１０８】
それには、式（２３）の関数が表す放物線の頂点（極大点）のx座標を見出せばよい。極大点のx座標は-b/2aの点に位置することが知られているため、この場合
【数５１】
0006397987.tif 000052
となる。
そのため、二次関数の値はq(x)が次数n - n1の既約多項式を(m + n)/{2(n - n1)}個含み、次数n1の既約多項式を
【数５２】
0006397987.tif 000053
個含む場合に最大化される。
【０１０９】
ここで、
【数５３】
0006397987.tif 000054
かつ
【数５４】
0006397987.tif 000055
であるとすると、n1≠n/2であれば、Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の最大数は以下の式で与えられる。
【数５５】
0006397987.tif 000056
【０１１０】
一方、n1≠n/2であれば、任意の固定値n1について、p(x)を構成する方法はIn1・In-n1通りある。
【数５６】
0006397987.tif 000057
かつ
【数５７】
0006397987.tif 000058
であるから、n1≠n/2の場合についての衝突確率は、
【数５８】
0006397987.tif 000059
である。
【０１１１】
(m + n)/{2(n - n1)}≧In-n1（または(m + n)/(2n1)≧In1）の場合、式（２３）の二次関数の値を最大化するための次数n - n1（またはn1）の区別可能な既約多項式の数は不十分である。したがって、Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の数は式（２８）未満となり、衝突確率は上で求めた上限よりもいっそう低くなる。
【０１１２】
n1 =n2 = n/2であれば、q(x)は次数n/2の既約因子を最大
【数５９】
0006397987.tif 000060
個含むことができる。それらの区別可能な組の全ては次数nの可約多項式を生成する。そのため、Mをcにマッピングする(m, n)-ファミリ内のハッシュ関数の最大数は以下の式で与えられる。
【数６０】
0006397987.tif 000061
【０１１３】
一方、n1 = n/2の場合、p(x)を構成する方法は
【数６１】
0006397987.tif 000062
通りある。次数n/2の既約多項式の数は
【数６２】
0006397987.tif 000063
であるから、解空間は
【数６３】
0006397987.tif 000064
より大きい。
【０１１４】
したがって、n1 = n/2の場合の衝突関数は以下の式で与えられる。
【数６４】
0006397987.tif 000065
一例として、図４の表４００に、n = 32および64、ならびにいくつかのメッセージ長mについて、N = 2の場合の衝突確率ε1およびε2を示す。５番目の列はKrawczykと同様に、１つの既約多項式のを生成多項式として用いた場合の衝突確率ε0を示している。
【図１】
0006397987.tif 000070
【図２】
0006397987.tif 000071
【図３】
0006397987.tif 000072
【図４】
0006397987.tif 000073
【図５】
0006397987.tif 000074
【図６】
0006397987.tif 000075
【図７】
0006397987.tif 000076
【図８】
0006397987.tif 000077
【図９】
0006397987.tif 000078
【図１０】
0006397987.tif 000079
【図１１】
0006397987.tif 000080
【図１２】
0006397987.tif 000081