(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して送信元から受信先へ送信されるメッセージＭ（ｘ）（２０４；３０４）に対する暗号チェックサム（２０３；３０３）を用いて前記メッセージを認証するための方法（５００；６００）において、
前記送信元及び受信先は、前記通信ネットワーク上の通信装置であり、
前記通信装置は、コンピュータ実行可能命令を記憶するメモリと前記命令を実行する処理ユニットを備えており、
前記方法は、前記命令が前記処理ユニットにおいて実行される時、前記通信装置に、メッセージに対する暗号チェックサムを生成することを実行させることを含み、
前記メッセージに対する暗号チェックサムを生成することは、
第１の暗号鍵に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択すること（５０２；６０２）と、
Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（すなわち、ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として前記暗号チェックサムを算出すること（５０４；６０４）とを含み、
前記生成多項式ｐ（ｘ）は可約多項式である、
方法。
【請求項２】
前記生成多項式ｐ（ｘ）はゼロ以外の定数項を含む、請求項１に記載の方法。
【請求項３】
前記メッセージに対する暗号チェックサムを生成することは、長さｎのパッドｓを疑似ランダム的に生成すること（５０３；６０３）をさらに含み、前記第１の関数ｇは前記パッドｓを加算することを含む、請求項１または２に記載の方法。
【請求項４】
前記パッドｓは第２の暗号鍵に基づいて生成される、請求項３に記載の方法。
【請求項５】
前記生成多項式ｐ（ｘ）は前記メッセージに特有の情報に依存する、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記パッドｓは、前記メッセージに特有の情報に依存する、請求項３から５のいずれか一項に記載の方法。
【請求項７】
前記メッセージに特有の前記情報はメッセージシーケンス番号を含む、請求項５または６に記載の方法。
【請求項８】
前記第２の関数ｆは固定多項式ｘｎで乗算することを含む、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記通信装置が送信元（１０１）であり、
前記方法が、
前記メッセージを取得すること（５０１）と、
前記メッセージに対する暗号チェックサムを生成することと、
生成された前記暗号チェックサムを前記メッセージに付加すること（５０５）と、
前記メッセージおよび付加された前記暗号チェックサムを送信すること（５０６）と、を含む、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記通信装置が受信先（１０２）であり、
前記方法が、
前記メッセージおよび付加された第１の暗号チェックサムを受信すること（６０１）と、
前記メッセージに対する第２の暗号チェックサムを生成することと、
前記第１の暗号チェックサムおよび前記第２の暗号チェックサムが同一であるかどうかを検証すること（６０５）と、を含む、請求項１から８のいずれか一項に記載の方法。
【請求項１１】
請求項１から１０のいずれか一項に記載の方法を前記通信装置に行わせるためのコンピュータ実行可能命令を含む、コンピュータプログラム（９０３；１００３）。
【請求項１２】
請求項１１に記載のコンピュータプログラムを組み入れているコンピュータ可読記憶媒体。
【請求項１３】
メッセージＭ（ｘ）を認証するために、通信ネットワークを介して送信元装置から受信先装置へ送信される前記メッセージに対する暗号チェックサムを生成するための、コンピュータからなる、チェックサム生成装置（７０２；８０３）であって、
第１の暗号鍵（７０５；８０５）に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択する手段、および
Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（すなわち、ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として前記暗号チェックサムを算出する手段を含み、
前記生成多項式ｐ（ｘ）は可約多項式である、
チェックサム生成装置。
【請求項１４】
前記生成多項式ｐ（ｘ）はゼロ以外の定数項を含む、請求項１３に記載のチェックサム生成装置。
【請求項１５】
長さｎのパッドｓを疑似ランダム的に生成する手段をさらに含み、
前記第１の関数ｇは前記パッドｓを加算することを含む、請求項１３または１４に記載のチェックサム生成装置。
【請求項１６】
前記パッドｓは第２の暗号鍵（７０５；８０５）に基づいて生成される、請求項１５に記載のチェックサム生成装置。
【請求項１７】
前記生成多項式ｐ（ｘ）は前記メッセージに特有の情報に依存する、請求項１３から１６のいずれか一項に記載のチェックサム生成装置。
【請求項１８】
前記パッドｓは、前記メッセージに特有の情報に依存する、請求項１５から１７のいずれか一項に記載のチェックサム生成装置。
【請求項１９】
前記メッセージに特有の前記情報はメッセージシーケンス番号を含む、請求項１７または１８に記載のチェックサム生成装置。
【請求項２０】
前記第２の関数ｆは固定多項式ｘｎで乗算することを含む、請求項１３から１９のいずれか一項に記載のチェックサム生成装置。
【請求項２１】
請求項１３から２０のいずれか一項に記載のチェックサム生成装置を含む、通信ネットワークのための送信元装置（７００；９００）であって、
前記メッセージを取得する手段（７０１）、
生成された前記暗号チェックサムを前記メッセージに付加する手段（７０３）、および、
前記メッセージおよび付加された前記暗号チェックサムを送信する手段（７０４）を含む、送信元装置。
【請求項２２】
請求項１３から２０のいずれか一項に記載のチェックサム生成装置を含む、通信ネットワークのための受信先装置（８００；１０００）であって、
前記メッセージおよび付加された第１の暗号チェックサムを受信する手段（８０１）、および、
前記第１の暗号チェックサムおよび前記受信先装置のチェックサム生成装置により生成される第２の暗号チェックサムが同一であるかどうかを検証する手段（８０４）を含む、受信先装置。
【請求項２３】
請求項２１に記載の送信元装置（１２０１）および請求項２２に記載の受信先装置（１２０１）のうちの少なくとも１つを含む、モバイル端末（１２００）。
【請求項２４】
請求項２１に記載の送信元装置（１２０１）および請求項２２に記載の受信先装置（１２０１）のうちの少なくとも１つを含む、無線アクセスノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号チェックサムを生成する方法、対応するコンピュータプログラム、対応するコンピュータプログラム製品、および、暗号チェックサムを生成するためのチェックサムジェネレータに関する。
【背景技術】
【０００２】
現在の第３世代（３Ｇ）および第４世代（４Ｇ）の第３世代パートナーシッププロジェクト（３ＧＰＰ）モバイルネットワークは、典型的には、制御プレーンにおいて暗号化のみならず認証を使用するのに対して、ユーザプレーンは暗号化のみによって保護される。その一方で、ＷｉＭＡＸおよびワイヤレスローカルエリアネットワーク（ＷＬＡＮ）／ＷｉＦｉネットワークは、ユーザプレーンに対しても認証を使用する。
【０００３】
ユーザプレーンメッセージングを保護する既知のやり方は、鍵付きハッシュメッセージ認証符号（ＨＭＡＣ）または暗号ブロック連鎖メッセージ認証符号（ＣＢＣ−ＭＡＣ）などの鍵付き暗号学的ハッシュ関数をメッセージに適用することによって生成される認証タグを使用することである。暗号学的ハッシュ関数は、メッセージなどの任意のデータブロックに対してメッセージダイジェストとして知られる暗号学的ハッシュ値を生成することによって、メッセージに対するいずれの過失によるまたは故意の変更、すなわち誤りまたは修正も、少なくともある一定の高確率でハッシュ値を変更するようにするハッシュ関数である。それゆえに、メッセージダイジェストは、メッセージの完全性を保証するために使用できる。
【０００４】
鍵付き暗号学的ハッシュ関数には、比較的資源消費が大きいという問題があり、これによって、制約のある装置、すなわち、機械対機械（Ｍ２Ｍ）タイプおよびモノのインターネット（ＩｏＴ）タイプの装置といった、計算資源およびバッテリ資源に限界がある装置において該関数の使用が妨げられる。さらには、メッセージダイジェストによるメッセージ長の増加は、送信されるデータのペイロード部分を低減させ、かつ、電力消費を増加させる。
【０００５】
ランダム誤りに対するあるレベルの保護は、巡回冗長検査（ＣＲＣ）符号を使用することによって実現できる。ＣＲＣ符号は、バースト誤りを検出するためのデータ通信およびデータ記憶において、非常に資源効率的であり、かつ、広く使用されるある種の分離可能な巡回符号である。ＣＲＣ処理は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって効率的に実行できる。一般的なＣＲＣは下記になる（ＣＲＣ−ｎは、ｎ次の生成多項式がＣＲＣを符号化および復号するために使用され、この場合、次数はＣＲＣの生成多項式の最大係数であることを意味する）。
−ＣＲＣ−１６−ＣＤＭＡ２０００：３Ｇモバイルネットワークで使用される
−ＣＲＣ−ＣＣＩＴＴ：ブルートゥースで使用される
−ＣＲＣ−３２：イーサネットおよび高水準データリンク制御（ＨＤＬＣ）プロトコルで使用される
−ＣＲＣ−４０−ＧＳＭ：ＧＳＭ制御チャネルで使用される
【０００６】
ｎ次の生成多項式によるＣＲＣは、ｎ以下の長さのバースト誤り全て、および、生成多項式の倍数ではないいずれの誤りも検出可能である。
【０００７】
在来のＣＲＣ技法は、ランダム誤りを検出するのに適するが、悪質な敵対者によって容易に打ち破られ得る。生成多項式がある一定のＣＲＣによって使用されることが敵対者には既知であるため、敵対者は、受信先でＣＲＣ検査を通る修正済みメッセージを巧妙に作り上げることが容易である場合がある。これは、例えば、生成多項式の倍数に相当する誤りを元のメッセージに加えることによって実現可能である。
【０００８】
ユーザプレーンにおいてデータ完全性をもたらすためのより資源効率的な解決策は、以下では暗号ＣＲＣまたは暗号チェックサムとも呼ばれる、暗号学的に安全なＣＲＣで従来のＣＲＣを置き換えることである。暗号ＣＲＣは在来のＣＲＣと同じランダム誤りを検出する能力を有するが、敵対者によって導入されるいずれの悪質な誤りも高確率で検出することもできる。
【０００９】
ある種の暗号学的に安全なＣＲＣは、Ｋｒａｗｃｚｙｋ（Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＣＲＹＰＴＯ  ’９４、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、第８３９巻、Ｓｐｉｎｇｅｒ、１９９４年、１２９〜１３９頁における、Ｈ．Ｋｒａｗｃｚｙｋによる「ＬＦＳＲ−ｂａｓｅｄ  Ｈａｓｈｉｎｇ  ａｎｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ」）によって提案された。提案されたＣＲＣは、認証タグを生成するためのｎ次の既約多項式、すなわちＣＲＣチェックビットを必要とする。基本的な考え方は、ＣＲＣ多項式を、送信元および受信先のみに知られる共有秘密鍵にすることである。これは、セキュリティの観点からはうまく機能するが、既約多項式を見つけることは簡単ではないため資源非効率的であることに依然悩まされる。既約多項式、すなわち、２つ以上の非自明な多項式の積に組み入れることができない多項式を生成することは、多項式を疑似ランダム的に生成することおよび既約性に関する試験を実行すること、または、既約多項式のデータベースから多項式を疑似ランダム的に選択することのいずれかを必要とする。既約性に関する試験の計算複雑性は、ｎ３位のビット演算によるものであり（例えば、Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｍａｔｈｅｍａｔｉｃｓ、Ｆ．ＣｕｃｋｅｒおよびＭ．Ｓｈｕｂ（Ｅｄｓ．）、Ｓｐｒｉｎｇｅｒ、１９９７年、３４６〜３６１頁を参照における、Ｓ．ＧａｏおよびＤ．Ｐａｎａｒｉｏによる「Ｔｅｓｔｓ  ａｎｄ  Ｃｏｎｓｔｒｕｃｔｉｏｎｓ  ｏｆ  Ｉｒｒｅｄｕｃｉｂｌｅ  Ｐｏｌｙｎｏｍｉａｌｓ  ｏｖｅｒ  Ｆｉｎｉｔｅ  Ｆｉｅｌｄｓ」を参照）、計算的な労力が大きい。既約多項式のデータベースを維持するには場所をとるが、これは、最も一般的なＣＲＣ長であるｎ＝３２に対する既約多項式の数が２２７であり、５１２Ｍバイトの記憶を必要とするからである。一般に、２進数フィールド上のｎ次既約多項式の数は、２ｎ／ｎのように増大する。
【発明の概要】
【００１０】
本発明の目的は、上記技法および先行技術の改良された代替策を提供することである。
【００１１】
より具体的には、本発明の目的は、メッセージの改良された認証を提供することである。特に、本発明の目的は、既知のレベルのセキュリティでの改良された暗号チェックサムを提供することである。
【００１２】
本発明のこれらのおよび他の目的は、独立請求項によって規定されるように、本発明の異なる態様によって実現される。本発明の実施形態は、従属請求項によって特徴付けられる。
【００１３】
本発明の第１の態様によると、メッセージＭ（ｘ）に対する暗号チェックサムを生成する方法が提供される。方法は、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択することを含む。生成多項式は、第１の暗号鍵に基づいて疑似ランダム的に選択される。方法は、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（すなわち、ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ）））として暗号チェックサムを算出することをさらに含む。
【００１４】
本発明の第２の態様によると、コンピュータプログラムが提供される。コンピュータプログラムは、コンピュータ実行可能命令であって、コンピュータ実行可能命令が装置に含まれる処理ユニット上で実行される時、本発明の第１の態様の一実施形態による方法を該装置に行わせるためのコンピュータ実行可能命令を含む。
【００１５】
本発明の第３の態様によると、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、本発明の第２の態様によるコンピュータプログラムを組み入れているコンピュータ可読記憶媒体を含む。
【００１６】
本発明の第４の態様によると、メッセージＭ（ｘ）に対する暗号チェックサムを生成するためのチェックサムジェネレータが提供される。チェックサムジェネレータは、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択するようになされた手段を含む。生成多項式は、第１の暗号鍵に基づいて疑似ランダム的に選択される。該手段は、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（すなわち、ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ）））として暗号チェックサムを算出するようにさらになされている。
【００１７】
本発明は、メッセージの効率的な認証が、ＣＲＣなどの標準チェックサムを、疑似ランダム的に選択された生成多項式に基づく暗号チェックサムと置き換えることによって提供できることを理解することによって活かされる。提案された暗号チェックサムは、メッセージの完全性を保証するために、すなわち、さらに以下で導き出される既知のレベルのセキュリティで無作為のおよび故意のメッセージ変更を検出するために使用可能である。
【００１８】
現在の状況では、メッセージは、ある一定のフォーマットに頻繁に入れられる２進化情報である。フォーマットはメッセージが関連するプロトコルによって決まる場合がある。典型的には、メッセージはヘッダーおよびペイロードを含み、暗号チェックサムは、メッセージ全体、すなわちヘッダーおよびペイロードのために生成されるのが好ましい。
【００１９】
本発明の実施形態は、在来のＣＲＣと同じランダム誤りを検出する能力を有する暗号チェックサムと従来のＣＲＣを置き換えること、および、さらにはメッセージの完全性を保証することによって、メッセージフォーマットが変更されない点で、先行技術より有利である。特に、追加のＭＡＣをメッセージに加えることに基づく既知の解決策と対照的に、メッセージの長さは増加されない。さらに、本発明の実施形態は、処理または記憶の資源への大きな需要を招く、疑似ランダム的に既約多項式を生成することに頼らない点で、Ｋｒａｗｃｚｙｋによる既知の暗号ＣＲＣより有利である。
【００２０】
現在の状況では、当然のことながら、生成多項式ｐ（ｘ）はガロア体上のｎ次の多項式全ての集合から疑似ランダム的に選択されることに留意されたい。その選択は、多項式についての確率分布によって制御可能である。かかる確率分布は、利用可能な多項式の集合を効果的に限定することができる。実際には、ガロア体上のｎ次の多項式全ての部分集合のみのデータベースを維持することは、要するに、データベースに含有されない多項式の確率がゼロの確率分布を実施することになる。本発明の一実施形態によると、生成多項式ｐ（ｘ）は可約多項式、すなわち、より低い次数の２つ以上の多項式の積として表すことができる多項式である。よって、生成多項式は、ガロア体上のｎ次の多項式の集合の第１の部分集合から疑似ランダム的に選択され、この第１の部分集合はガロア体上のｎ次の既約多項式を含む。それゆえに、ガロア体上のｎ次の既約多項式を含み、第１の部分集合と共通部分を持たない第２の部分集合は、生成多項式を選択するために使用されない。
【００２１】
本発明の一実施形態によると、生成多項式ｐ（ｘ）はゼロ以外の定数項を含む。多項式の集合を限定し、その多項式の集合から、ゼロ以外の定数項を有する多項式の部分集合に対して生成多項式が疑似ランダム的に選択されることは、かかる生成多項式に基づく暗号チェックサムが、さらに後述されるように、既約生成多項式に基づく暗号ＣＲＣと同じタイプのバースト誤りを検出する能力を有する点で有利である。
【００２２】
本発明の一実施形態によると、方法は、長さｎのパッドｓを疑似ランダム的に生成することをさらに含み、第１の関数ｇはパッドｓを加算することを含む。疑似ランダム的に生成されたパッドを加算することは、ハッシュ関数によって暗号チェックサムを生成する線形変換がアフィン変換に変えられる点で有利である。パッドがない場合、敵対者は全てゼロのメッセージを成功裏に導入することができる。オプションとして、パッドは、第１の暗号鍵に等しいまたはこれと異なる場合がある第２の暗号鍵に基づいて生成されてよい。
【００２３】
本発明の一実施形態によると、生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つは、メッセージに特有である情報に依存する。すなわち、生成多項式、パッド、またはその両方は、敵対者にはランダムに現れる間にメッセージの送信元および受信先にのみ知られるように、メッセージ特有の情報に基づいて選択されるか生成される。メッセージ特有の情報は、例えば、メッセージシーケンス番号、メッセージ識別子、または、メッセージに含まれるタイムスタンプなどのいずれか１つまたはそれらの組み合わせを含むことができる。
【００２４】
本発明の一実施形態によると、送信元がメッセージを認証する方法が提供される。方法は、メッセージを取得することと、メッセージに対する暗号チェックサムを生成することと、生成された暗号チェックサムをメッセージに付加することと、メッセージおよび付加された暗号チェックサムを送信することとを含む。メッセージおよび付加された暗号チェックサムは一般的に符号語と呼ばれる。
【００２５】
本発明の一実施形態によると、受信先がメッセージを認証する方法が提供される。方法は、メッセージおよび付加された第１の暗号チェックサムを受信することと、メッセージに対する第２の暗号チェックサムを生成することと、第１の暗号チェックサムおよび第２の暗号チェックサムが同一であるかどうかを検証することとを含む。これらチェックサムが同一でない場合、メッセージの完全性は確立できない。すなわち、メッセージは、故意にまたは過失によるどちらかで修正されている。
【００２６】
場合によって、本発明の利点が本発明の第１の態様の実施形態に関して記載されていても、対応する論証は、本発明の他の態様の実施形態に該当する。
【００２７】
本発明のさらなる目的、特徴、および利点は、以下の詳細な開示、図面、および添付の特許請求の範囲を検討すると明らかとなろう。本発明の種々の特徴は以下に記載されるもの以外の実施形態を作成するために組み合わせ可能であることは、当業者には理解されることである。
【００２８】
上記、ならびに、本発明の追加の目的、特徴および利点は、添付の図面を参照して、本発明の実施形態の以下の例示のおよび非限定的な詳細な説明によってより良く理解されるであろう。
【図面の簡単な説明】
【００２９】
【図１】通信システムを示す図である。
【図２】符号語を示す図である。
【図３】メッセージ認証を示すブロック図である。
【図４】異なるタイプの生成多項式についての衝突確率による表である。
【図５】送信元の、本発明の一実施形態による方法のフローチャートである。
【図６】受信先の、本発明の一実施形態による方法のフローチャートである。
【図７】本発明の一実施形態による送信元を示す図である。
【図８】本発明の一実施形態による受信先を示す図である。
【図９】本発明の別の実施形態による送信元を示す図である。
【図１０】本発明の別の実施形態による受信先を示す図である。
【図１１】本発明の一実施形態によるＩＣを示す図である。
【図１２】本発明の一実施形態によるモバイルフォンを示す図である。
【発明を実施するための形態】
【００３０】
図の全ては、概略的であり必ずしも一定の尺度ではなく、全体的に、本発明を明瞭にするために必要な部分のみを示し、他の部分は省略されるか示唆されるだけの場合がある。
【００３１】
本発明について、ここで、本発明のある特定の実施形態が示される添付の図面を参照して以下により詳しく説明する。しかしながら、この発明は、多くの種々の形態で具現化されてよく、本明細書に明記される実施形態に限定されるとして解釈されるべきではない。もっと正確に言えば、これらの実施形態は、この開示が綿密で完全であるように、かつ、本発明の範囲を当業者に完全に伝えられるように、例として提供される。
【００３２】
図１では、通信ネットワーク１０３上で通信するようになされた送信元１０１および受信先１０２を含む通信システム１００が示される。特に、送信元１０１はメッセージ１０５を送信するようになされ、受信先１０２はメッセージ１０５を受信するようになされる。好ましくは、送信元１０１および受信先１０２はメッセージを送受信するようになされる。送信元１０１および受信先１０２は、コンピュータ、モバイル端末、ユーザ機器（ＵＥ）、Ｍ２Ｍ／ＩｏＴタイプの装置、ゲートウェイなどの無線アクセスネットワーク（ＲＡＮ）のノード、無線ネットワーク制御装置（ＲＮＣ）、無線基地局（ＲＢＳ）、ＮｏｄｅＢＳ、またはｅＮｏｄｅＢｓなどの通信ネットワーク１０３上での通信を行うことができる任意のタイプの装置であってよい。通信ネットワーク１０３は、例えば、ＧＳＭ、ＵＭＴＳ、ＬＴＥなどのＲＡＮ、ＷＬＡＮ／ＷｉＦｉネットワーク、イーサネットネットワーク、企業ネットワーク、またはインターネットなどの有線または無線ネットワークの任意の１つまたはそれらの組み合わせであってよい。
【００３３】
通信ネットワーク１０３を介して送信元１０１から受信先１０２へ送信されるメッセージ１０５は、無作為に／意図せずに、または故意に／悪質に、のいずかによって修正される場合がある。無作為な修正は、例えば、通信ネットワーク１０３の無線ネットワークの無線インターフェースで送信中に生じるバースト誤りによって引き起こされる場合がある。他方で悪質な修正は、図１にも示される敵対者１０４から生じる場合がある。敵対者１０４は、送信元１０１によって送信されたメッセージ１０５を傍受し、かつ、そのメッセージの修正済みコピーを受信先１０２へ再送信することができる。敵対者１０４は、送信元１０１から受信されたメッセージの修正に頼らずに新しいメッセージを生成しようと試みることもできる。典型的には、敵対者１０４の意図は、悪質なメッセージを、受信先１０２、特に、受信先１０２のネットワークインターフェース、オペレーティングシステム、またはアプリケーションに導入することである。
【００３４】
メッセージ１０５の完全性を保証することによってメッセージ１０５の無作為な修正を検出することは当技術分野では知られている。このことは、図２に示されるように、ＣＲＣなどのチェックサムをメッセージ１０５に提供することによって実現可能である。
【００３５】
この目的のために、ＣＲＣなどのチェックサム２０３は、図２ではヘッダー２０１、およびペイロードを保持するボディ２０２を含むものとして示されるメッセージ２０４に対して生成され、かつ、符号語２００を形成するためにメッセージ２０４に付加される。（図１におけるメッセージ１０５に対応する）符号語２００は、次いで、図３に関して以下で説明されるように、メッセージ２０４の完全性が検証される受信先１０２へ送信され、このことは、図１の送信元１０１および受信先１０２それぞれに対応する送信側（図３の左）および受信側（図３の右）を示すブロック図３００で示される。
【００３６】
送信元１０１において、受信先１０２へ送信されるメッセージ２０４は、例えば、送信元１０１のプロトコルスタックの上位層から受信されて取得され、第１のチェックサム（図３におけるＣＳ）２０３、特にＣＲＣを算出するようになされたアルゴリズム３０１に送り込まれる。メッセージ２０４に加えて、チェックサムアルゴリズム３０１は、入力として共有秘密鍵、例えば暗号鍵を受信し、出力として第１のチェックサム２０３を生成する。オプションとして、チェックサムアルゴリズム３０１は、さらには、第１のチェックサム２０３が生成されることに基づいて、入力として初期設定値（ＩＶ）を受信することができる。ＩＶは、チェックサムアルゴリズム３０１への別個の入力であってよい、または、例えば、メッセージ２０４の最初に付加するまたは最後に付加することによって、メッセージ２０４の一部として入力されてよい。次いで、メッセージ２０４およびチェックサム２０３は、例えば、チェックサム２０３をメッセージ２０４に付加することによって、符号語２００にまとめられる。符号語２００は次いで、例えば通信ネットワーク１０３を介して受信先１０２へ送信される。
【００３７】
受信先１０２では、符号語２００が受信され、メッセージ３０４が符号語２００から取り出される。送信元１０１から受信先１０２への送信１０５中のメッセージ２０４の無作為のおよび／または故意の修正によって、メッセージ３０４は送信元１０１によって送信されたメッセージ２０４と必ずしも同一ではない。メッセージ３０４は、送信元１０１のチェックサムアルゴリズム３０１と同一であり、かつ、メッセージ３０４に基づいて、さらには送信元１０１の共有秘密鍵と同一である共有秘密鍵に基づいて、第２のチェックサム３０３（図３におけるＣＳ’）を生成するチェックサムアルゴリズム３０１に送り込まれる。オプションとして、チェックサムアルゴリズム３０１は、さらには、送信元１０１のＩＶと同一である、入力としてのＩＶを受信することができる。その後、受信されたメッセージ３０４の完全性は、第２のチェックサム３０３をコンパレータ３０５に送り込むことによって、かつ、該第２のチェックサム３０３を受信された符号語２００から取り出された第１のチェックサム２０３と比較することによって検証される。比較の結果は、さらなる使用のために、例えば、受信先１０２の通信スタックの上位層に対してコンパレータ３０５によって利用可能とされ、第１のチェックサム２０３および第２のチェックサム３０３が同一であるか否かを示す。例えば、コンパレータ３０５によって出力された結果はブール値であってよく、この場合、高い値（ブール「１」）は２つのチェックサムが同一であることを示し、低い値（ブール「０」）は２つのチェックサムが異なっていることを示し、または逆の場合も同様である。同一である場合、メッセージ３０４の完全性は保証される、すなわち、受信先１０２によって受信されるメッセージ３０４は送信元１０１によって送信されたメッセージ２０４と同一である。メッセージ３０４の完全性を検証することによって、メッセージ３０４が送信１０５中に修正されていないことをある一定の確率で推測できる。
【００３８】
既知のチェックサム、特に、ＨＭＡＣまたはＣＢＣ−ＭＡＣのような暗号学的ハッシュ関数であるＣＲＣは、メッセ−ジの無作為の修正を検出するように設計される。より具体的には、ｎ次の生成多項式ｐ（ｘ）によるＣＲＣは、ｎ未満のまたはｎに等しい長さのバースト誤り全てを検出することができる。また、ＣＲＣは、その生成多項式ｐ（ｘ）の倍数でないいずれの誤りも検出することになる。ＣＲＣの符号化および復号は、線形フィードバックシフトレジスタ（ＬＦＳＲ）を使用したハードウェア、およびソフトウェアによって効率的に実行できる。
【００３９】
送信元１０１で符号化するために、メッセージＭ（ｘ）２０４は典型的には、最初にｘｎで乗算され、次いで生成多項式ｐ（ｘ）を法として除算される。剰余の多項式係数は、
ｒ（ｘ）＝Ｍ（ｘ）・ｘｎｍｏｄｐ（ｘ）  （１）
になり、ＣＲＣチェックサム２０３、すなわち、メッセージダイジェストを構成し、データビット（Ｍ（ｘ）・ｘｎ）に付加されて符号語２００を形成する。この開示全体を通して、「・」は、（有限ＧＦ（２）についてはブールＡＮＤ演算と同等である）有限ＧＦ乗算であり、「ｍｏｄ」は、有限体における多項式モジュロ除算の剰余である。ｘｎで乗算することは、メッセージＭ（ｘ）２０４をｎビットシフトすることに留意されたい。すなわち、メッセージＭ（ｘ）２０４はＣＲＣチェックサム２０３と組み合わせる前にシフトされる。この結果、得られる符号語２００は分離可能である、すなわち、メッセージビットはチェックサムビットから分離される。
【００４０】
受信先１０２で復号するために、受信されたデータビットＭ’（ｘ）・ｘｎは生成多項式ｐ（ｘ）を法として除算され、結果として生じる剰余の多項式係数３０３、
ｒ’（ｘ）＝Ｍ’（ｘ）・ｘｎｍｏｄｐ（ｘ）  （２）
は、符号語２００で受信されたＣＲＣビットｒ（ｘ）２０３と比較される。誤りが生じない、すなわち、メッセージ２０４が送信中に修正されていない場合、剰余ｒ’（ｘ）は受信された剰余ｒ（ｘ）と同じである。不一致は、誤り、すなわちＭ’（ｘ）≠Ｍ（ｘ）を示す。
【００４１】
在来のＣＲＣ技法は、無作為の修正または誤りを検出するために有用であるが、敵対者１０４は、チェックサムアルゴリズム３０１によって利用される生成多項式ｐ（ｘ）が送信元１０１および受信先１０２に対してのみの秘密ではないため、受信先１０２におけるＣＲＣチェックを通る、送信元１０１によって送信されたメッセージへの修正を容易に巧妙に作り上げることができる。例えば、敵対者１０４は、ｅ（ｘ）ｍｏｄｐ（ｘ）＝０となるように、生成多項式ｐ（ｘ）の倍数である多項式に対応する誤りｅ（ｘ）を送信されたメッセージＭ（ｘ）２０４に加えることができる。また、敵対者１０４は、送信元１０１によって送信されたメッセージ２０４を、恐らく悪質なコンテンツの異なるメッセージ３０４で単に置き換え、これを送信元１０１と同じチェックサムアルゴリズム３０１を使用して符号化し、それを受信先１０２へ送信し、受信先１０２で完全性チェックを通る場合がある。
【００４２】
データ完全性を提供するための、特に、ユーザプレーンにおける資源効率的な解決策は、従来のＣＲＣを、在来のＣＲＣと同じ無作為の誤りを検出する能力を有するがいずれの故意のまたは悪質な修正も高確率で検出することもできる暗号学的に安全なＣＲＣで置き換えることである。在来のＣＲＣと同じサイズの暗号学的に安全なＣＲＣを使用する結果として、既存のプロトコルスタックはメッセージサイズの変更を明らかにするためにプロトコルスタック全体を再設計する必要なく、メッセージ認証をサポートするように拡張できる。
【００４３】
Ｋｒａｗｃｚｙｋによって提案された暗号学的に安全なＣＲＣは、生成多項式を送信元１０１および受信先１０２にのみ知られる共有秘密鍵にする発想に基づく。それによって、敵対者１０４は、受信先１０２において完全性チェックを通るようにメッセージを設計することができない。これは、以上に論じられたように、セキュリティの観点からはうまく機能するが、既約多項式を見つけることは簡単ではないため資源非効率的であることに依然悩まされる。
【００４４】
以下に記載される本発明の実施形態は、送信元１０１から受信先１０２へ送信されるメッセージ１０５の完全性が、従来のＣＲＣと同じサイズであるが、従来のＣＲＣには限界がある、無作為の誤りに加えて高確率で故意のまたは悪質な修正を検出できる暗号チェックサムによって検証できる点で有利である。Ｋｒａｗｃｚｙｋによって提案された暗号チェックサムとは対照的に、本発明の実施形態は、資源需要が少ないという点でさらに有利である。特に、既約多項式を利用するのではなく任意の生成多項式を疑似ランダム的に選択することによって、既約多項式の集合を維持するための既約性または記憶に対する計算的な労力が大きい試験は必要とされない。
【００４５】
この目的のために、本発明の実施形態は、図２および図３に示される符号語２００においてＣＲＣなどの従来のチェックサム２０３と置き換える暗号チェックサムを利用する。メッセージ２０４、またはその一部、例えばボディ２０２は、本発明のいくつかの実施形態において暗号化も可能であることに留意されたい。このような場合、受信先１０２は、完全性検証を行う前に、メッセージまたはメッセージの一部を最初に解読することができる。代替的には、解読プロセスの少なくとも一部は、チェックサム検証とのインターリーブまたは組み合わせが可能である。なおさらなる代替策として、受信先１０２が、受信されたメッセージを最初に解読する必要はなくてよい。受信先１０２で受信されたメッセージを最初に解読する必要性は、送信元１０１における処理の順序に依存する。例えば、チェックサム２０３が生成されかつ符号語２００を形成するためにメッセージ２０４に付加された後にメッセージ暗号化が送信元１０１で行われる場合、受信先１０２は典型的には受信された符号語を最初に解読する必要がある。他方では、暗号化されたメッセージ上でのチェックサム２０３を計算する前に送信元１０１が最初にメッセージ２０４を暗号化する場合、チェックサム２０３が算出されかつ受信された暗号化済みメッセージの完全性が検証されるまで、受信先１０２は解読を延期することができる。この開示全体を通して、別段断りのない限り、解読は要求に応じて行われると想定する。
【００４６】
それゆえに、送信元１０１（図３におけるＣＳ）および受信先１０２（図３におけるＣＳ’）においてそれぞれ暗号学的に安全なチェックサムを生成するために使用されるチェックサムアルゴリズム３０１は、下記で説明されるように、Ｋｒａｗｃｚｙｋによって提案されるものと比較すると修正される。
【００４７】
チェックサムアルゴリズム３０１は、メッセージＭ（ｘ）２０４のための暗号チェックサム２０３を生成するためのハッシュ関数ｈｐ（Ｍ）であり、ガロア体上のｎ次の、特に、２次のガロア体（ＧＦ（２））の多項式の集合から生成多項式ｐ（ｘ）を生成することと、Ｍ（ｘ）の第２の関数ｆ（ｆ（Ｍ（ｘ））の、ｐ（ｘ）を法とした除算である第１の関数ｇとして暗号チェックサム２０３を算出すること、すなわち、
ｈｐ（Ｍ）＝ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））  （３）
とを含む。
【００４８】
より具体的には、生成多項式ｐ（ｘ）は、第１の暗号鍵、すなわち、送信元１０１および受信先１０２に知られる共有秘密鍵に基づいてガロア体から疑似ランダム的に選択される。共有秘密鍵は、例えば、当技術分野において既知であるような、加入者識別モジュール（ＳＩＭ）または汎用ＳＩＭ（ＵＳＩＭ）などによってサポートされる公開鍵技法または対称技法によって確立できる。Ｋｒａｗｃｚｙｋに類似している既約多項式の部分集合からではなくガロア体の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択することによって、本発明の実施形態は、制約のある装置にとってとりわけ重要であるが、メッセージ認証が先行技術解決策よりも資源の消費がより少ない点で有利である。
【００４９】
オプションとして、生成多項式ｐ（ｘ）は、可約多項式であってよい、すなわち、ガロア体上のｎ次の多項式の集合の部分集合から選択され、この部分集合はガロア体上のｎ次の可約多項式を含む。現在の状況では、可約多項式は、両方共が最低の次数の２つ以上の多項式の積として表すことができる多項式である。可約多項式を含む部分集合は、既約多項式を含む部分集合と共通部分を持たない。
【００５０】
さらなるオプションとして、生成多項式ｐ（ｘ）はゼロ以外の定数項、すなわち、
ｐ（ｘ）＝ｐ’（ｘ）＋ｃ・ｘ０  （４）
を含むことができる。式中、ｃはゼロ以外である（ＧＦ（２）上の多項式の場合ｃ＝１であることを暗に示す）。これは、生成された暗号チェックサムが、さらに以下で導き出されるように、既約生成多項式に基づくＫｒａｗｃｚｙｋに類似している暗号チェックサムと同じタイプのバースト誤りを検出する能力を有する点で有利である。対照的に、ゼロの定数項、すなわち、式（４）においてｃ＝０を有する生成多項式は、ランダム誤りを検出する機能を悪化させる場合がある。例えば、かかる生成多項式に基づく暗号チェックサムは、いくつかのシングルビット誤りを検出することができない場合がある。
【００５１】
なおさらなるオプションとして、第１の関数ｇは、長さｎのパッドｓを加算することをさらに含むことができる。すなわち、
ｇ（ｘ）＝ｔ（Ｍ）＋ｓ  （５）と
ｔ（Ｍ）＝ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ）  （６）と、を合わせたものである。
式中、「＋」は（ＧＦ（２）ではブールＸＯＲ演算と同等である）ＧＦ加算である。パッドｓは、例えば、第１の暗号鍵と同一または異なる場合がある第２の暗号鍵に基づいて、疑似ランダム的に生成されてよい。第１の暗号鍵および／または第２の暗号鍵は、例えば、第３の暗号鍵、および送信元１０１および受信先１０２に知られるある情報から疑似ランダムビットシーケンスを生成すること、および、第１の暗号鍵となる生成されたビットシーケンスの一部分、および、第２の暗号鍵となるビットシーケンスの残りのビットを選択することによって、第３の暗号鍵から生成可能である。無作為のパッドｓの加算は、ハッシュ関数ｈｐ（Ｍ）によって暗号チェックサムを生成する線形変換、すなわち、ｈｐ（Ａ）＋ｈｐ（Ｂ）＝ｈｐ（Ａ＋Ｂ）が、アフィン変換（ｈｐ（Ｍ）＋ｓ）に変えられる点で有利である。パッドがない場合、ハッシュ関数に対して使用される生成多項式に関わらずｈｐ（０）＝０であり、敵対者は全てゼロのメッセージを導入することが可能になる。ストリーム暗号を使用した暗号化が送信元１０１で行われる場合、パッドｓは、暗号化機能によって、ひいては暗号化および完全性処理をインターリーブするまたは組み合わせることによってもたらされてよいことに留意されたい。この場合、受信先１０２は、（ｉ）最初に解読によってパッドｓを除去してからｈｐ（Ｍ）のみをチェックサム２０３として扱うこと、または、（ｉｉ）パッドｓを除去するのではなく、むしろｈｐ（Ｍ）＋ｓをチェックサム２０３として扱うことのいずれかを行うことができる。
【００５２】
本発明の実施形態において使用されるパッドは１９００年代初期にバーナムが提唱した周知のワンタイムパッドと同様である。バーナム暗号において、メッセージはブールＸＯＲ演算を使用してビット単位でパッドと組み合わせられた。本発明の実施形態では、パッドは、同様に暗号チェックサムと組み合わせられる。
【００５３】
以下では、本発明の実施形態に従って暗号チェックサムを算出するための提案されたハッシュ関数族のセキュリティが解析され、かつ、先行技術解決策、特にＫｒａｗｃｚｙｋに類似している暗号チェックサムと比較される。
【００５４】
以下のように既定される暗号学的に安全なハッシュ関数族（ｍ、ｎ）を検討する。２進数長ｍの任意のメッセージＭ（ｘ）として、および、ガロア体上のｎ次のそれぞれの生成多項式ｐ（ｘ）として、ハッシュ関数ｈｐは多項式の２進係数として規定される。
ｈｐ（Ｍ）＝Ｍ（ｘ）・ｘｎｍｏｄｐ（ｘ）  （７）
【００５５】
認証タグ、すなわち、メッセージダイジェストまたは暗号学的に安全なチェックサム、
ｔ（Ｍ）＝ｈｐ（Ｍ）＋ｓ  （８）
を計算するために、生成多項式ｐ（ｘ）はガロア体上のｎ次の多項式の集合から疑似ランダム的に選び出され、ハッシュ関数ｈｐ（式（７））は評価され、疑似ランダム的に生成されたパッドｓは、明示的にまたは暗号化／解読プロセスの一部として加算される（式（８））。生成多項式ｐ（ｘ）は、ガロア体上のｎ次の多項式全ての集合から選択され、既約多項式に限定されないことが、再び強調される。
【００５６】
提案されたハッシュ関数族のセキュリティを解析するために、Ｍ（ｘ）およびｔを見た後に敵対者１０４がｔ’＝ｔであるようにメッセージＭ’（ｘ）≠Ｍ（ｘ）を見つけることができる場合、敵対者１０４は認証を突破することに成功することが想定される。ここで、敵対者１０４がハッシュ関数族（ｍ、ｎ）を知っているが、特定のハッシュ関数ｈｐ、および特定のメッセージを認証するために使用されるパッドｓを知らないことが想定される。
【００５７】
所定長のメッセージ全てにわたるチェックサムの分布を検討することによって解析が行われる。ここで、最悪の場合の状況が考えられること、すなわち、敵対者１０４が、チェックサムを設計しようとすることによって自身の機会を最大限に高めるようにすることが想定され、敵対者１０４が成功の確率を最大限に高めるようなメッセージを知っている（および選定する）と想定することに留意されたい。よって、成功の確率は、２つの異なるメッセージＭおよびＭ’が式（８）に従って算出された同一のチェックサムｔを有することになる最大確率に依存することになるが、これは、敵対者１０４が、送信元１０１によって送信されたメッセージを、検出されない、すなわち、受信先１０２における完全性チェックを通る別のメッセージに置き換えることができることを意味するからである。すなわち、
ｍａｘＭ、Ｍ’Ｐｒ［ｈｐ（Ｍ）＝ｈｐ（Ｍ’）］  （９）
を探し求める。式中、最大値は別個のｍビットメッセージＭおよびＭ’全てに対して得られるものであり、確率Ｐｒは、ハッシュ関数を規定する生成多項式ｐ（ｘ）の無作為の選定に引き継がれる。確率は統計的量であり、無作為事象を予測するための最適戦略は、事象の統計的分布に従った予測を行うことであることに留意されたい。例えば、（仮想上完璧なコインの）コイン投げで表または裏が出るかどうかを予測することは、たとえどんな資源が利用可能であろうと１／２を上回る成功率で行うことができない。従って、式（９）は、たとえどんな計算資源を敵対者１０４が自由に使えることができても、任意の敵対者の成功確率の上界をもたらす。式（９）では、生成多項式ｐ（ｘ）はＫｒａｗｃｚｙｋの教示とは対照的に既約性を有する必要はないことに留意されたい。
【００５８】
定理４（付録を参照）によると、ｍおよびｎの任意の値として、および、任意のメッセージＭとして、
ε１≦Ｒ１、ｍａｘ／２ｎ  （１０）
より大きい確率でランダムに選択された生成多項式に基づいて暗号チェックサムによる認証の突破に成功できる敵対者はいない。式中、Ｒ１、ｍａｘは任意のｃに対して長さｎの列ｃにＭを写像する族におけるハッシュ関数の最大値である。確率εは衝突確率と呼ばれる。Ｒ１、ｍａｘは、ｍ＋ｎ次の多項式の既約因子から構成できるｎ次の可約多項式の最大数である。補助定理２（付録を参照）では、それぞれのｄ次の多項式が所定の多重度ｋｄを有するならば、たかだかｄ次の既約多項式から構成できるｎ次の可約多項式の数についての公式が導き出される。さらに、補助定理１（付録を参照）によると、ｄの値は、式
ｄ≧ｌｏｇ（ｍ＋ｎ＋２）−１  （１１）
を満たす最小整数として選定できる。
【００５９】
Ｒ１、ｍａｘを最大化する多重度ｋ１…ｋｄの最良の選定は、ｎ＝３２およびｍ≦２００として、ならびにｎ＝６４およびｍ≦２００としてコンピュータプログラムを使用した全数検査によって見つけられた。結果として生じる衝突確率ε１の値は、図４における表４００の第３列に示される。
【００６０】
同様に、ゼロ以外の定数項（式（４）を参照）を有する生成多項式の場合の衝突確率を推定した。定理５（付録を参照）によると、ｍおよびｎの任意の値として、および、任意のメッセージＭとして、
ε２≦Ｒ２、ｍａｘ／２ｎ  （１１）
より大きい確率でゼロ以外の定数項の生成多項式に基づいた暗号チェックサムによる認証の突破に成功できる敵対者はいない。式中、Ｒ２、ｍａｘは任意のｃに対して長さｎの列ｃにＭを写像する族におけるハッシュ関数の最大値である。Ｒ２、ｍａｘは、ゼロ以外の定数項を有し、かつ、ｍ＋ｎ次の多項式の既約因子から構成できるｎ次の可約多項式の最大数である。補助定理４（付録を参照）では、それぞれのｄ次の多項式が所定の多重度ｋｄを有するならば、たかだかｄ次の既約多項式から構成できるこのようなｎ次の可約多項式の数についての公式が導き出される。さらに、補助定理３（付録を参照）によると、ｄの値は、式
ｄ≧ｌｏｇ（ｍ＋ｎ＋３）−１  （１２）
を満たす最小整数として選定できる。
【００６１】
Ｒ２、ｍａｘを最大化する多重度ｋ１…ｋｄの最良の選定は、ｎ＝３２およびｍ≦２００として、ならびにｎ＝６４およびｍ≦２００としてコンピュータプログラムを使用した全数検査によって見つけられた。結果として生じる衝突確率ε２の値は、表４００の第４列に示される。
【００６２】
比較のために、表４００の第５列はＫｒａｗｃｚｙｋに類似している既約生成多項式の場合の衝突確率ε０の値を示し、この場合、衝突確率は（ｍ＋ｎ）／２ｎ−１で示される。
【００６３】
表４００からわかるように、無作為に選択された生成多項式（第３列）および、無作為に選択されたゼロ以外の定数項の生成多項式（第４列）について、各衝突確率はＫｒａｗｃｚｙｋに類似している既約多項式のものより高い（第５列）。すなわち、これによって、所定のメッセージサイズに対してより低いレベルのセキュリティがもたらされる。それゆえに、セキュリティと資源効率との間の兼ね合いがある。より低いレベルのセキュリティが容認可能であるアプリケーションについて、本発明の実施形態は、資源需要が少なくなるという点で有利である。また、表４００からは、提案された暗号チェックサムが短いメッセージに対してとりわけ有利である場合があることがわかるが、これは、本発明の実施形態によってもたらされるセキュリティのレベルが、メッセージサイズでは、Ｋｒａｗｃｚｙｋに類似している暗号チェックサムより急速に低下するからである。
【００６４】
本明細書に提示されるセキュリティ解析が一様にランダム的なパラメータ、例えば、多項式の前提に基づくが、これらのパラメータが実際には疑似ランダム的に生成されることに留意されたい。しかしながらこの相違は、実際には一様な分布と区別できない出力分布を生じさせる疑似ランダム的なジェネレータが既知であるため重要ではない。よって、敵対者はこれらの分布の違いを悪用できない。
【００６５】
本発明の実施形態は、敵対者１０４が、送信元１０１および受信先１０２にとって決定的であるように生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つを予測不可能に変更することに基づく。すなわち、生成多項式ｐ（ｘ）および／またはパッドｓの変更は、送信元１０１と受信先１０２との間で同期させなければならない。
【００６６】
生成多項式が疑似ランダム的に選択されることに基づく共有秘密鍵、すなわち、第１の暗号鍵は、敵対者１０４に対してチェックサムアルゴリズム３０１の出力を予測不可能にすることが意図されるが、チェックサムアルゴリズム３０１は、オプションとして、例えば、タイムスタンプ、メッセージ識別子、または乱数といった、メッセージのシーケンス番号、またはメッセージにおける何か他の一意な情報などのあるメッセージに依存するデータに基づく生成多項式を判断することができる。かかる追加情報は、例えば、メッセージ２０４のヘッダー２０１において保持されてよい。
【００６７】
一般に、それぞれのメッセージに対する新しい生成多項式を計算する必要はなくてよく、送信元１０１と受信先１０２との間の新しいセッションの開始時に生成多項式を生成すること、および、それを、セッション中、送信元１０１と受信先１０２との間で交換されるメッセージ全てに対して定着させ続けることで十分である。しかしながら、パッドは、メッセージごとに変更されなければならず、メッセージ依存データ、すなわち、メッセージに特有の情報に依存して変更されてよい。
【００６８】
図５では、送信元がメッセージを認証する方法の実施形態５００が示される。方法５００のある実施形態は、例えば、送信元１０１によって行われてよい。方法５００は、例えば、送信元１０１の通信スタックの上位層または送信元１０１によって実行されるアプリケーションから、メッセージを取得すること５０１と、メッセージに対して暗号チェックサムを生成することと、メッセージに生成された暗号チェックサムを付加すること５０５によって符号語を形成することと、符号語、すなわち、メッセージおよび付加された暗号チェックサムを送信すること５０６とを含む。
【００６９】
より具体的には、暗号チェックサムを生成することは、第１の暗号鍵に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択すること５０２と、以上で説明されたように、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として暗号チェックサムを算出すること５０４とを含む。第１の暗号鍵はメッセージの送信元および受信先に知られる共有秘密鍵である。オプションとして、生成多項式は、可約多項式であってよく、ゼロ以外の定数項を含むことができる。暗号チェックサムを生成することは、長さｎのパッドｓを疑似ランダム的に生成すること５０３をさらに含むことができ、この場合、第１の関数ｇはパッドｓを加算することを含む。パッドｓは、第１の暗号鍵に等しいまたはそれと異なる場合がある第２の暗号鍵に基づいて生成可能である。第２の暗号鍵および第１の暗号鍵は、メッセージの送信元および受信先に知られる共有秘密鍵である。オプションとして、生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つ、またはその両方は、メッセージシーケンス番号、タイムスタンプ、または乱数などの、メッセージに特有の情報に依存して生成されてよい。
【００７０】
図６では、受信先がメッセージを認証する方法のある実施形態６００が示される。方法６００のある実施形態は、例えば、受信先１０２によって行われてよい。方法６００は、符号語、すなわち、メッセージおよび付加された第１の暗号チェックサムを受信すること６０１と、メッセージに対する第２の暗号チェックサムを生成することと、第１の暗号チェックサムおよび第２の暗号チェックサムが同一であるかどうかを検証すること６０５とを含む。これらチェックサムが同一でない場合、メッセージの完全性は確立できない。すなわち、メッセージは、誤って／無作為に、または、故意に／悪質に、のどちらかで修正されている。
【００７１】
より具体的には、第２の暗号チェックサムを生成することは、第１の暗号鍵に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択すること６０２と、以上で説明されたように、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として第２の暗号チェックサムを算出すること６０４とを含む。第１の暗号鍵はメッセージの送信元および受信先に知られる共有秘密鍵である。オプションとして、生成多項式は、可約多項式であってよく、ゼロ以外の定数項を含むことができる。第２の暗号チェックサムを生成することは、長さｎのパッドｓを疑似ランダム的に生成すること６０３をさらに含むことができ、この場合、第１の関数ｇはパッドｓを加算することを含む。パッドｓは、第１の暗号鍵に等しいまたはそれと異なる場合がある第２の暗号鍵に基づいて生成可能である。第２の暗号鍵および第１の暗号鍵は、メッセージの送信元および受信先に知られる共有秘密鍵である。オプションとして、生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つ、またはその両方は、メッセージシーケンス番号、タイムスタンプ、または乱数などの、メッセージに特有の情報に依存して生成されてよい。
【００７２】
本発明の実施形態による暗号チェックサムの計算は、従来のＣＲＣに対して使用されるのと同じタイプの演算に基づく。従って、本発明の実施形態が可変疑似ランダム的生成多項式を利用することを除いて、在来のＣＲＣの簡易さのほとんどが保たれる。それゆえに、ハードウェアにおいて本発明の実施形態を実装することは簡易であり、その結果生じる実装形態は非常に資源効率的である。ＧＦ（２）上の多項式を法とした除算の演算は、ＬＦＳＲによって実装可能であり、ここで、ＬＦＳＲのタップは、当技術分野において既知であるように、生成多項式ｐ（ｘ）を判断する。ｘｎで乗算することさえも高性能のハードウェアにおいて実装できる。しかしながら、生成多項式が定着されかつ前もって知られており、かつ、実装する回路が典型的には、ハードウェアに組み込みの生成多項式を判断するフィードバック接続を有する、在来のＣＲＣとは対照的に、本発明の実施形態による暗号チェックサムは、フィードバック接続がプログラム可能である実装形態を必要とする。この暗号チェックサムは、ハッシングの鍵であり、かつ、変更可能で秘密とすべきものである、これらフィードバック接続の実際の構成である。いくつかの非暗号化ＣＲＣ回路が、種々の生成多項式に基づいて種々のＣＲＣ規格をサポートすること、または、種々の多項式次数をサポートすることを必要とする場合、プログラム可能な接続を使用することもできることに留意されたい（例えば、Ｊ．Ｂｉｒｃｈ、Ｌ．Ｇ．Ｃｈｒｉｓｔｅｎｓｅｎ、およびＭ．Ｓｋｏｖによる「Ａ  ｐｒｏｇｒａｍｍａｂｌｅ  ８００  Ｍｂｉｔ／ｓ  ＣＲＣ  ｃｈｅｃｋ／ｇｅｎｅｒａｔｏｒ  ｕｎｉｔ  ｆｏｒ  ＬＡＮ６  ａｎｄ  ＭＡＮｓ」、Ｃｏｍｐ．ＮｅｔｗｏｒｋｓおよびＩＳＤＮ  Ｓｙｓ．、１９９２年を参照）。
【００７３】
疑似ランダム的に選択された生成多項式の集合をゼロ以外の定数項を有する多項式の集合に制限することは、本発明の実施形態によるチェックサムジェネレータの実装を複雑にすることはないことに注目することが重要である。かかる多項式について、多項式の定数項に相当するＬＦＳＲのタップはプログラム可能ではなく定着可能であることが唯一の違いである。
【００７４】
ソフトウェアにおけるＣＲＣジェネレータの効率的な実装形態も存在する。これらの実装形態において、生成多項式が疑似ランダム的に選択されることに基づいて特定の暗号鍵に依存する事前計算された表を使用することによって、大幅な高速化が実現されるため、暗号鍵ごとに一度だけ計算され、多くのアプリケーションでは手軽に行われる。
【００７５】
本発明の実施形態によるハッシュ関数族における関数は、基本的に、生成多項式ｐ（ｘ）によって規定され、ハッシュ関数が適用されるメッセージの長さによっては規定されない。従って、該関数は、実際には望ましいような、種々の長さのメッセージに適用可能である。特に、メッセージＭ（ｘ）に対応する多項式は「０」ではなく首位係数として「１」を有するものとする（Ｍが長さｍを有する場合、Ｍ（ｘ）は適正なｍ次を有する）。これによって、メッセージと多項式との間の１対１写像が判断され、特に、ゼロを付加するだけでメッセージの変更が防止される。例えば、メッセージ０１０１１は、５ビットのメッセージとしてよりも４ビットのメッセージ１０１１として扱われるものとする。そうでなければ、両方のメッセージは、同じメッセージ多項式１・ｘ３＋０・ｘ２＋１・ｘ１＋１・ｘ０＝ｘ３＋ｘ１＋１によって表され、それに応じて、符号化後同じチェックサムを有することになる。その他の場合は、新しいメッセージは同じチェックサムを有するものであることを知って、敵対者は１つまたは複数の先行ゼロをメッセージに単に付加する可能性がある。代替的にはまたはさらには、例えば、メッセージ長をメッセージの最初に付加するまたは最後に付加することによって、認証／検証プロセスへの入力として明確な長さ指示が使用可能である。
【００７６】
受信側では、メッセージ完全性の検証は、メッセージを、１要素が典型的には１ビットであるメッセージ要素の連続的な受信と多かれ少なかれ同期するように処理する有限状態機械（ＦＳＭ）によって効率的に実行できる。このようなＦＳＭはまた、受信先の媒体アクセス制御（ＭＡＣ）層内で統合されてよく、典型的には、チェックサムデコーダ、コンパレータ、および制御ブロックから成る。チェックサムデコーダは、受信されたメッセージ要素のチェックビットを、１つずつ、すなわちビット単位で到達する際に再計算する。コンパレータは、再計算されたチェックビットを、メッセージにおいて受信されたチェックビット、すなわち認証タグまたはチェックサムと比較する。再計算されかつ受信されたチェックビットが一致しない場合、コンパレータは、メッセージの完全性が検証できなかったことを示す誤り信号を制御ブロックへ送る。
【００７７】
図７では、図１に示される送信元１０１など、送信元がメッセージを認証するある実施形態７００が示される。送信元７００は、例えば、送信元７００の通信スタックの上位層または送信元７００によって実行されるアプリケーションから、メッセージを取得するためのメッセージバッファ７０１と、メッセージに対して暗号チェックサムを生成するためのチェックサムジェネレータ７０２と、メッセージに生成された暗号チェックサムを付加することによって符号語を形成するための符号語バッファ７０３と、符号語、すなわち、メッセージおよび付加された暗号チェックサムを送信するためのインターフェース７０４と、チェックサムジェネレータ７０２に第１の暗号鍵、すなわち、メッセージの送信元７００および受信先に知られる共有秘密鍵を与えるための共有秘密鍵モジュール７０５とを含む。インターフェース７０４は、例えば、ＲＡＮとの通信をもたらすようになされたネットワークインターフェースまたは無線送受信機であってよい。
【００７８】
より具体的には、チェックサムジェネレータ７０２は、第１の暗号鍵に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択することによって暗号チェックサムを生成するように、かつ、以上で説明されたように、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として暗号チェックサムを算出するようになされている。オプションとして、生成多項式は、可約多項式であってよく、ゼロ以外の定数項を含むことができる。チェックサムジェネレータ７０２は、長さｎのパッドｓを疑似ランダム的に生成するようにさらに設定可能であり、この場合、第１の関数ｇはパッドｓを加算することを含む。パッドｓは、第１の暗号鍵に等しいまたはそれと異なる場合がある第２の暗号鍵に基づいて生成可能である。第２の暗号鍵は、メッセージの送信元７００および受信先に知られる共有秘密鍵である。それゆえに、共有秘密鍵モジュール７０５は、第２の暗号鍵をチェックサムジェネレータ７０２に与えるようにさらに設定可能である。代替的には、パッドｓは、以上に記載されたように、チェックサムジェネレータ７０２によって生成されるのではなく暗号化アルゴリズムによってもたらされてよい。
【００７９】
オプションとして、チェックサムジェネレータ７０２は、メッセージシーケンス番号、タイムスタンプ、または乱数などの、メッセージに特有の情報に依存した、生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つ、またはその両方を生成するように設定されてよい。かかる情報は、チェックサムジェネレータ７０２、特に、チェックサムジェネレータ７０２に含まれるＬＦＳＲへの入力として利用されてよい。
【００８０】
図８において、図１に示される受信先１０２など、受信先がメッセージを認証するある実施形態８００が示される。受信先８００は、符号語、すなわち、メッセージおよび付加された第１の暗号チェックサムを受信するためのインターフェース８０１と、メッセージおよび第１の暗号チェックサムを受信された符号語から取り出すための符号語バッファ８０２と、メッセージに対して第２の暗号チェックサムを生成するためのチェックサムジェネレータ８０３と、第１の暗号チェックサムおよび第２の暗号チェックサムが同一であるかどうかを検証するためのコンパレータ８０４と、チェックサムジェネレータ８０３に第１の暗号鍵、すなわち、メッセージの受信先８００および送信元に知られる共有秘密鍵を与えるための共有秘密鍵モジュール８０５と、を含む。受信先８００は、受信されたメッセージを記憶し、かつ受信先８００の通信スタックの上位層、または受信されたメッセージの完全性が検証されたという、コンパレータ８０４によって受信された指示に応答して受信先８００によって実行されるアプリケーションへメッセージを通すためのメッセージバッファ８０６をさらに含むことができる。インターフェース８０１は、例えば、ＲＡＮとの通信をもたらすように設定されたネットワークインターフェースまたは無線送受信機であってよい。
【００８１】
より具体的には、チェックサムジェネレータ８０３は、図７に関して説明されたチェックサムジェネレータ７０２と同様であり、第１の暗号鍵に基づいて、ガロア体上のｎ次の多項式の集合から生成多項式ｐ（ｘ）を疑似ランダム的に選択することによって第２の暗号チェックサムを生成するように、かつ、以上で説明されたように、Ｍ（ｘ）の第２の関数（ｆ（Ｍ（ｘ）））の、ｐ（ｘ）を法とした除算である第１の関数ｇ（ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ））として第２の暗号チェックサムを算出するように設定されている。オプションとして、生成多項式は、可約多項式であってよく、ゼロ以外の定数項を含むことができる。チェックサムジェネレータ８０３は、長さｎのパッドｓを疑似ランダム的に生成するようにさらに設定可能であり、この場合、第１の関数ｇはパッドｓを加算することを含む。パッドｓは、第１の暗号鍵に等しいまたはそれと異なる場合がある第２の暗号鍵に基づいて生成可能である。第２の暗号鍵は、メッセージの受信先８００および送信元に知られる共有秘密鍵である。それゆえに、共有秘密鍵モジュール８０６は、第２の暗号鍵をチェックサムジェネレータ８０３に与えるようにさらに設定可能である。代替的には、パッドｓは、以上に記載されたように、チェックサムジェネレータ８０３によって生成されるのではなく暗号化アルゴリズムによってもたらされてよい。
【００８２】
オプションとして、チェックサムジェネレータ８０３は、生成多項式ｐ（ｘ）およびパッドｓのうちの少なくとも１つ、またはその両方を、メッセージシーケンス番号、タイムスタンプ、または乱数などの、受信されたメッセージに特有の情報に依存して生成するように設定されてよい。このような情報は、チェックサムジェネレータ８０３、特に、チェックサムジェネレータ８０３に含まれるＬＦＳＲへの入力として利用されてよい。
【００８３】
送信元７００および受信先８００の実施形態は、当技術分野では既知であるように、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実行可能である。例えば、モジュール７０１〜７０５およびモジュール８０１〜８０６は、電子回路、特にデジタル二値論理によって実行可能である。代替的には、モジュール７０１〜７０５およびモジュール８０１〜８０６はデジタル信号プロセッサ（ＤＳＰ）に基づいて実行されてよい。インターフェース７０４および８０１は、ＲＡＮの無線インターフェースによって符号語を送信または受信それぞれを行うように設定されたアナログ電子回路を含むことができることは理解されるであろう。
【００８４】
チェックサムジェネレータ７０２および８０３の実施形態は、標準ＣＲＣジェネレータに非常に類似して動作し、この実装形態は当技術分野では既知である。疑似ランダム的に生成されたパッドｓに頼るチェックサムジェネレータ７０２および８０３の実施形態は、ｆ（Ｍ（ｘ））ｍｏｄｐ（ｘ）を表すｎ−ビット列とｎ−ビットパッドｓとの間のビットごとのＸＯＲ演算によってパッドｓの加算を実行することができる。
【００８５】
図９では、送信元がメッセージを認証するための代替的な実施形態９００が示される。送信元９００は、例えばＤＳＰといったプロセッサ９０１と、ソフトウェア、すなわち、送信元９００に、コンピュータ実行可能命令がプロセッサ９０１において実行される時、特に図５に関して以上に記載される、送信元がメッセージを認証する方法の一実施形態を実行させるためのコンピュータ実行可能命令を含むコンピュータプログラム９０３を含むメモリ９０２とを含む。送信元９００は、通信ネットワーク、例えば、通信ネットワーク１０３を介して通信をもたらすためのインターフェース９０４をさらに含むことができる。インターフェース９０４は、例えば、ＲＡＮとの通信をもたらすように設定されたネットワークインターフェースまたは無線送受信機であってよい。
【００８６】
図１０では、受信先がメッセージを認証する代替的な実施形態１０００が示される。受信先１０００は、例えばＤＳＰといったプロセッサ１００１と、ソフトウェア、すなわち、受信先１０００に、コンピュータ実行可能命令がプロセッサ１００１において実行される時、特に図６に関して以上に記載される、受信先がメッセージを認証する方法の一実施形態を実行させるためのコンピュータ実行可能命令を含むコンピュータプログラム１００３を含むメモリ１００２とを含む。受信先１０００は、通信ネットワーク、例えば、通信ネットワーク１０３を介して通信をもたらすためのインターフェース１００４をさらに含むことができる。インターフェース１００４は、例えば、ＲＡＮとの通信をもたらすように設定されたネットワークインターフェースまたは無線送受信機であってよい。
【００８７】
図７〜図１０に関して記載される送信元および受信先の実施形態１１０１は、図１１に示される集積回路（ＩＣ）１１００において実装可能である。さらに、図７〜図１０に関して記載される送信元および受信先の実施形態１２０１はまた、図１２に示されるモバイルフォン１２００などのモバイル端末において実装可能である。なおさらなる代替策として、図７〜図１０に関して記載される送信元および受信先の実施形態１２０１はまた、例えばゲートウェイといったＲＡＮのノード、ＲＮＣ、または、ＲＢＳ、ＮｏｄｅＢ、ｅＮｏｄｅＢ、もしくはＷＬＡＮアクセスポイントなどの無線アクセスノードにおいて実装可能である。
【００８８】
当業者であれば、本発明が上記の実施形態に決して限定されるものではないことを認識する。それどころか、添付の特許請求の範囲内で多くの修正および変更が可能である。
【００８９】
付録
ｎ次の既約生成多項式に基づくＣＲＣが長さｎまたはそれより少ないバースト誤り全てを検出できることは既知である。
【００９０】
定理１  ゼロ以外の定数項を有するｎ次の生成多項式に基づくＣＲＣは、ｎ次の既約生成多項式に基づくＣＲＣと同じタイプのバースト誤りを検出することができる。
【００９１】
証明：任意の生成多項式ｐ（ｘ）に基づくＣＲＣは、ｐ（ｘ）の倍数であるものを除いて誤り全てを検出することができる。ｐ（ｘ）がゼロ以外の定数項を有する多項式である場合、ｐ（ｘ）の全ての因子もゼロ以外の定数項を有する多項式である。
ｎ＞０次の任意のバースト誤りも、
ｂ（ｘ）＝ｘｉ・ａ（ｘ）  （１）
のタイプの多項式によって説明できる。式中、ｉ∈｛０、１、…、ｎ−１｝として、
ａ（ｘ）＝ｘｎ−ｉ−１＋ｘｎ−ｉ−２＋…＋ｘ＋１  （２）
である。ｐ（ｘ）の全ての因子がｂ（ｘ）の因子でもある時かつその時に限り、多項式ｂ（ｘ）はｐ（ｘ）の倍数である。
ｐ（ｘ）の次数がａ（ｘ）の次数より少なくとも１大きいため、ｐ（ｘ）≠ａ（ｘ）である。従って、ｂ（ｘ）の倍数にするために、ｐ（ｘ）はｐ（ｘ）＝a（ｘ）・ｃ（ｘ）のタイプでなければならない。式中、ｃ（ｘ）は少なくとも１次のゼロ以外の定数項を有する多項式である。
【００９２】
しかしながら、ａ（ｘ）を除くｂ（ｘ）の他の因子全てがゼロの定数項を有する多項式であるため、ｃ（ｘ）はｂ（ｘ）の因子とすることができない。よって、ゼロ以外の定数項を有するｎ次の生成多項式に基づくＣＲＣは、長さｎまたはそれより少ないバースト誤り全てを検出することができる。
【００９３】
本発明の実施形態の衝突確率の解析を提示する前に、いくつかの背景定義および定理がここで提示される（定義１〜３ならびに定理２および３は、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＣＲＹＰＴＯ’９４、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、第８３９巻、Ｓｐｒｉｎｇｅｒ、１９９４年、１２９〜１３９頁における、Ｈ．Ｋｒａｗｃｚｙｋによる「ＬＦＳＲ−ｂａｓｅｄ  Ｈａｓｈｉｎｇ  ａｎｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ」からのものである）。
【００９４】
定義１  メッセージＭおよびＭ’全てについて、
ｈ（Ｍ＋Ｍ’）＝ｈ（Ｍ）＋ｈ（Ｍ’）  （３）
であるならば、ハッシュ関数族Ｈは＋−線形である。
【００９５】
定義２  任意の、長さｍのゼロ以外のメッセージＭとして、および、任意の、長さｍの２進列ｃとして、
Ｐｒ［ｈｐ（Ｍ）＝ｃ］≦ε  （４）
であるならば、ハッシュ関数族はε−均衡と呼ばれる。
【００９６】
定義３  任意のメッセージＭとして、εより大きい確率で認証の突破に成功する敵対者がいないならば、ハッシュ関数族はε−ｏｐｔ−ｓｅｃｕｒｅと呼ばれる。
【００９７】
定理２  ε−ｏｐｔ−ｓｅｃｕｒｅとするハッシュ関数族Ｈについての必要かつ十分な条件は、
∀Ｍ１≠Ｍ２および∀ｃ∈｛０、１｝ｍ、Ｐｒ［ｈ（Ｍ１）＋ｈ（Ｍ２）＝ｃ］≦ε  （５）
とすることである。
【００９８】
定理３  Ｈが＋−線形であるならば、Ｈがε−均衡の時かつその時に限り、Ｈはε−ｏｐｔ−ｓｅｃｕｒｅである。
【００９９】
以下において、本発明の実施形態に対する衝突確率の解析が提示される。
定理４  ｎおよびｍの任意の値として、任意の生成多項式に基づくハッシュ関数族は
0006453366.tif 000002
についてε−ｏｐｔ−ｓｅｃｕｒｅである。式中、Ｒ１、ｍａｘは、ｍ＋ｎ次の多項式の既約因子から構成できる別個のｎ次の可約多項式の最大数である。
【０１００】
証明：ハッシュ関数族は、＋−線形でありε−均衡であるならば、ε−ｏｐｔ−ｓｅｃｕｒｅである。任意の生成多項式に基づくハッシュ関数族は、多項式を法とした除算が線形演算であるため＋−線形であり、ここで、加算はビットごとのＸＯＲ演算と同等である。族がまたε−均衡であることを示すために、任意のｎ次の多項式ｐ（ｘ）として、任意の長さｍのゼロ以外のメッセージＭとして、および、任意の長さｎの列ｃとして、ｈｐ（Ｍ）は、Ｍ（ｘ）・ｘｎｍｏｄｐ（ｘ）の時かつその時に限りｃであり、ｐ（ｘ）がＭ（ｘ）・ｘｎ−ｃ（ｘ）を除算する時かつその時に限りｃ（ｘ）であることに留意されたい。
ｑ（ｘ）＝Ｍ（ｘ）・ｘｎ−ｃ（ｘ）が示される。明確には、ｑ（ｘ）はたかだかｍ＋ｎ次のゼロ以外の多項式であり、ｐ（ｘ）はｑ（ｘ）を除算するｎ次の多項式である。Ｒ１、ｍａｘを、ｑ（ｘ）の既約因子から構成できる別個のｎ次の可約多項式の最大数にする。明らかに、Ｍをｃに写像する族にたかだかＲ１、ｍａｘのハッシュ関数がある。他方では、族に２ｎの要素がある（ＧＦ（２）上のｎ次の多項式の数）。従って、
0006453366.tif 000003
である。
【０１０１】
次に、Ｒ１、ｍａｘの推定値が導き出される。明確には、既約因子ｑ（ｘ）が多いほど、それから構成できる可約多項式は多くなる。さらに、既約因子の次数が小さいほど、含有することができる既約因子ｑ（ｘ）は多くなる。ｑ（ｘ）の因子が１〜ｄ次の全ての可能な既約多項式を表し、かつ、それぞれの多項式が多重度１で現れる、すなわち、ｑ（ｘ）が、
0006453366.tif 000004
のタイプであると仮定する。式中、ｆｉ、ｊはｉ次のｊ番目の既約多項式を表し、Ｉｉは、ｉ∈｛１、２、…、ｄ｝、ｊ∈｛１、２、…、Ｉｉ｝として、ｉ次の既約多項式の数を表す。
最初に、ｄの最大値が推定される。
【０１０２】
補助定理１  ｑ（ｘ）を式（７）に従ったタイプのｍ＋ｎ次の多項式にする。そして、ｄは、式
ｄ≧ｌｏｇ（ｍ＋ｎ＋２）−１  （８）
を満たす最小整数である。
【０１０３】
証明：ｄの値は、式
Ｉ１＋２Ｉ２＋…＋ｄＩｄ＝ｍ＋ｎ  （９）
を満たすものとする。式中、Ｉｉは、ｉ次の既約多項式の数を表す。
0006453366.tif 000005
ひいては、
Ｉ１＋２Ｉ２＋…＋ｄＩｄ≦２１＋２２＋…＋２ｄ  （１１）
であるため、
ｍ＋ｎ≦２ｄ＋１−２  （１２）
という結果になる。従って、ｄは、式
ｌｏｇ（ｍ＋ｎ＋２）−１≦ｄ  （１３）
を満たす最小整数である。
【０１０４】
しかしながら、式（７）に従ったタイプのｑ（ｘ）は典型的には、Ｒ１、ｍａｘの値を最大化しない。ほとんどの場合、より小さい次数の因子が、１より大きい多重度で現れるならば、すなわち、ｑ（ｘ）が次のタイプ：
0006453366.tif 000006
であるならば、Ｒ１、ｍａｘのより大きい値が得られる場合がある。式中、ｆｉ、ｊは、ｉ次のｊ番目の既約多項式、および、
0006453366.tif 000007
を表す。
それぞれのｄ次の多項式が多重度ｋｄを有するならば、
0006453366.tif 000008
を、たかだかｄ次の既約多項式から構成できる、ｎ＞０であるｎ次の可約多項式の数にする。次に、
0006453366.tif 000009
についての閉じた公式が導き出される。
【０１０５】
補助定理２  ｄ＝１として：
0006453366.tif 000010
であり、ｄ＞１として：
0006453366.tif 000011
であり、ここで、
0006453366.tif 000012
であり、
0006453366.tif 000013
である。
【０１０６】
証明：ｄについての帰納法による。基本的なケース：ｄ＝１にする。
0006453366.tif 000014
と示すことは容易である。帰納ステップ：定理はｄ＝ｄ−１に当てはまると想定する。そして、ｄ−１までの次数の既約多項式からｎ次の可約多項式
0006453366.tif 000015
が構成可能であり、ここで、式（１６）によって
0006453366.tif 000016
が示される。ｄ−１までの次数の既約多項式に加えて、多重度
0006453366.tif 000017
を有するｄ次の１つの既約多項式があるならば構成できるｎ次の可約多項式の数は、
0006453366.tif 000018
の多項式である。同様に、ｄ−１までの次数の既約多項式に加えて、多重度ｋｄを有するｄ次の既約多項式Ｉｄがある場合、
0006453366.tif 000019
が得られる。
0006453366.tif 000020
を最大化する多重度ｋ１、ｋ−２、…、ｋｄの値についての閉じた公式を導き出すことは困難である。補助定理１によって有界のｄの値による全数検査によって、ｎ＝３２およびｎ＝６４として、およびｍ≦２００のメッセージ長として、
0006453366.tif 000021
についての値が計算された。値は以下の表に示され、ここで、最後の縦列は、
0006453366.tif 000022
を最大化する多重度ｋ１、ｋ−２、…、ｋｄを示す。
0006453366.tif 000023
【０１０７】
対応する衝突確率は図４に示される表４００に示される。
次に、ゼロ以外の定数項を有する生成多項式に基づくハッシュ関数族（ｍ、ｎ）のケースについての同様の解析が提示される。
【０１０８】
定理５  ｎおよびｍの任意の値として、ゼロ以外の定数項を有する生成多項式に基づくハッシュ関数族は、
0006453366.tif 000024
としてε−ｏｐｔ−ｓｅｃｕｒｅであり、式中、Ｒ２、ｍａｘは、ｍ＋ｎ次の多項式の既約因子から構成できる別個のゼロ以外の定数項を有するｎ次の可約多項式の最大数である。
【０１０９】
証明：定理４の証明と同様である。
ｑ（ｘ）が式（７）に従ったタイプである場合のゼロ以外の定数項を有する生成多項式についてのｄの最大値は、以下の補助定理によって示される。
【０１１０】
補助定理３  ｑ（ｘ）を、タイプ（７）のｍ＋ｎ次の多項式にする。そして、ｄは式
ｄ≧ｌｏｇ（ｍ＋ｎ＋３）−１  （２１）
を満たす最小整数である。
【０１１１】
証明：ｄの値は、式
（Ｉ１−１）＋２Ｉ２＋…＋ｄＩｄ＝ｍ＋ｎ  （２２）
を満たすものとする。式中、Ｉｉはｉ次の既約多項式の数を表す。
0006453366.tif 000025
であり、ひいては、
（Ｉ１−１）＋２Ｉ２＋…＋ｄＩｄ≦（２１−１）＋２２＋…＋２ｄ  （２４）
であるため、
ｍ＋ｎ≦２ｄ＋１−３  （２５）
という結果になる。
従って、ｄは、式
ｌｏｇ（ｍ＋ｎ＋３）−１≦ｄ  （２６）
を満たす最小整数である。
それぞれのｄ次の多項式が多重度ｋｄを有するならば、
0006453366.tif 000026
を、たかだかｄ次のゼロ以外の定数項を有する既約多項式から構成できる、ｎ＞０のｎ次のゼロ以外の定数項を有する可約多項式の数にする。次に
0006453366.tif 000027
についての閉じた公式が導き出される。
【０１１２】
補助定理４  ｄ＝１として：
0006453366.tif 000028
であり、ｄ＞１として：
0006453366.tif 000029
であり、ここで、
0006453366.tif 000030
であり、
0006453366.tif 000031
である。
【０１１３】
証明：補助定理２と同様である。
補助定理３によって有界のｄの値による全数検査によって、ｎ＝３２およびｎ＝６４として、およびｍ≦２００のメッセージ長として、
0006453366.tif 000032
についての以下の値
が計算された。値は以下の表に示され、ここで、最後の列は、
0006453366.tif 000033
を最大化する多重度ｋ１、ｋ−２、…、ｋｄを示す。
0006453366.tif 000034
対応する衝突確率は図４に示される表４００に示される。
【図１】
0006453366.tif 000035
【図２】
0006453366.tif 000036
【図３】
0006453366.tif 000037
【図４】
0006453366.tif 000038
【図５】
0006453366.tif 000039
【図６】
0006453366.tif 000040
【図７】
0006453366.tif 000041
【図８】
0006453366.tif 000042
【図９】
0006453366.tif 000043
【図１０】
0006453366.tif 000044
【図１１】
0006453366.tif 000045
【図１２】
0006453366.tif 000046