(57)【特許請求の範囲】
【請求項１】
局における暗号化鍵更新のための方法であって、
第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックを暗号化するステップであって、前記第1の複数のラウンド鍵が初期ブロック鍵に基づいて生成される、ステップと、
第1の導出ブロック鍵の基礎として使用するために前記第1の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持するステップと、
第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックを暗号化するステップであって、前記第2の複数のラウンド鍵が前記第1の導出ブロック鍵に基づいて生成される、ステップと
を備える方法。
【請求項２】
前記第1の暗号化されたデータブロックおよび前記第2の暗号化されたデータブロックが、AES(高度暗号化標準:Advanced Encryption Standard)アルゴリズムを使用して生成される、請求項1に記載の方法。
【請求項３】
前記第1の導出ブロック鍵が、前記第1の複数のラウンド鍵のうちの最後のラウンド鍵である、請求項1に記載の方法。
【請求項４】
前記第1の導出ブロック鍵が、少なくとも1つの追加のラウンドによって前記第1の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づく、請求項1に記載の方法。
【請求項５】
第2の導出ブロック鍵の基礎として使用するために前記第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持するステップ
をさらに備え、前記第2の導出ブロック鍵が、第3の複数のラウンド鍵を生成するために使用される、請求項1に記載の方法。
【請求項６】
前記第2の導出ブロック鍵が、前記第2の複数のラウンド鍵のうちの最後のラウンド鍵である、請求項5に記載の方法。
【請求項７】
前記第2の導出ブロック鍵が、少なくとも1つの追加のラウンドによって前記第2の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づく、請求項5に記載の方法。
【請求項８】
第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックを暗号化することであって、前記第1の複数のラウンド鍵が初期ブロック鍵に基づいて生成される、暗号化することと、
第1の導出ブロック鍵の基礎として使用するために前記第1の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持することと、
第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックを暗号化することであって、前記第2の複数のラウンド鍵が前記第1の導出ブロック鍵に基づいて生成される、暗号化することと
を行うように構成されたプロセッサを備える局。
【請求項９】
前記第1の導出ブロック鍵が、前記第1の複数のラウンド鍵のうちの最後のラウンド鍵である、請求項8に記載の局。
【請求項１０】
前記第1の導出ブロック鍵が、少なくとも1つの追加のラウンドによって前記第1の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づく、請求項8に記載の局。
【請求項１１】
コンピュータに、請求項１から７のいずれか一項に記載の方法を実行させるためのコードを備えるコンピュータ可読記録媒体。
【請求項１２】
局における鍵更新のための方法であって、
第1の複数のラウンド鍵を生成するために初期ブロック鍵を処理するステップと、
第1の導出鍵の基礎として使用するために前記第1の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持するステップと、
第2の複数のラウンド鍵を生成するために前記第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって前記第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックを解読するステップと、
第2の導出鍵の基礎として使用するために前記第2の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持するステップと、
第3の複数のラウンド鍵を生成するために前記第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第2の複数のラウンドにわたって前記第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックを解読するステップと
を備える方法。
【請求項１３】
第1の導出ブロック鍵が、前記第1の複数のラウンド鍵のうちの最後のラウンド鍵である、請求項12に記載の方法。
【請求項１４】
第1の複数のラウンド鍵を生成するために初期ブロック鍵を処理し、
第1の導出鍵の基礎として使用するために前記第1の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持し、
第2の複数のラウンド鍵を生成するために前記第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって前記第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックを解読し、
第2の導出鍵の基礎として使用するために前記第2の複数のラウンド鍵のうちの1つのラウンド鍵のみを保持し、
第3の複数のラウンド鍵を生成するために前記第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第2の複数のラウンドにわたって前記第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックを解読する
ように構成されたプロセッサを備える局。
【請求項１５】
コンピュータに、請求項１２または１３に記載の方法を実行させるためのコードを備えるコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ブロック暗号アルゴリズムで使用される暗号化/解読鍵を更新するための技法に関する。
【背景技術】
【０００２】
最新の機器を用いてデータ収集および解析を行うことが比較的安価になってきているので、差分電力解析(DPA:differential power analysis)攻撃はますます一般化している。DPA攻撃は、秘密鍵を推定する統計的サイドチャネル攻撃である。DPA攻撃に対処するための技法は、電源フィルタリング技法、ランダム雑音挿入技法、鍵「マスキング」技法、または鍵ローリング技法を必要とし得る。そのような技法のいくつかは、計算集約的であり得るか、またはさもなければ実際的でないことを証明し得る。
【０００３】
米国特許第8,386,800号に開示される技法は、DPA攻撃を無効にするためのローリング鍵を提供するハッシュ関数を使用した暗号文ハッシュチェイニングプロセスに基づいている。しかしながら、ハッシュ関数は、処理時間、システムリソース、および/またはデバイス回路においてコストがかかる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、DPA攻撃などの攻撃を妨害するブロック暗号アルゴリズムで使用するための鍵更新技法が必要とされている。
【課題を解決するための手段】
【０００５】
本発明の一態様は、局における暗号化鍵更新のための方法に存在し得る。本方法では、第1のデータブロックは、第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して暗号化され、第1の複数のラウンド鍵は、初期ブロック鍵に基づいて生成される。第1の複数のラウンド鍵のうちの1つのラウンド鍵は、第1の導出ブロック鍵の基礎として使用するために保持される。第2のデータブロックは、第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して暗号化され、第2の複数のラウンド鍵は、第1の導出ブロック鍵に基づいて生成される。
【０００６】
本発明のより詳細な態様では、第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第2の導出ブロック鍵の基礎として使用するために保持され得る。第1の暗号化されたデータブロックおよび第2の暗号化されたデータブロックは、AES(高度暗号化標準:Advanced Encryption Standard)アルゴリズムを使用して生成され得る。第1の導出ブロック鍵は、第1の複数のラウンド鍵のうちの最後のラウンド鍵であってもよく、第2の導出ブロック鍵は、第2の複数のラウンド鍵のうちの最後のラウンド鍵であってもよい。代替的に、第1の導出ブロック鍵は、少なくとも1つの追加のラウンドによって第1の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づいてもよく、第2の導出ブロック鍵は、少なくとも1つの追加のラウンドによって第2の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づいてもよい。
【０００７】
本発明の他のより詳細な態様では、局はハードウェア局であってもよく、暗号化するステップおよび保持するステップは、ハードウェア局によって実行され得る。第1のデータブロック、第2のデータブロック、第1の暗号化されたデータブロック、および第2の暗号化されたデータブロックは各々、128ビットを備えてもよく、初期ブロック鍵、第1の導出ブロック鍵、第2の導出ブロック鍵、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、192ビットを備えてもよい。代替的に、第1のデータブロック、第2のデータブロック、第1の暗号化されたデータブロック、および第2の暗号化されたデータブロックは各々、128ビットを備えてもよく、初期ブロック鍵、第1の導出ブロック鍵、第2の導出ブロック鍵、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、256ビットを備えてもよい。
【０００８】
本発明の別の態様は、第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックを暗号化するための手段であって、第1の複数のラウンド鍵が初期ブロック鍵に基づいて生成される、手段と、第1の導出ブロック鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段と、第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックを暗号化するための手段であって、第2の複数のラウンド鍵が第1の導出ブロック鍵に基づいて生成される、手段とを備える局に存在し得る。
【０００９】
本発明の別の態様は、第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックを暗号化することであって、第1の複数のラウンド鍵が初期ブロック鍵に基づいて生成される、暗号化することと、第1の導出ブロック鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持することと、第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックを暗号化することであって、第2の複数のラウンド鍵が第1の導出ブロック鍵に基づいて生成される、暗号化することとを行うように構成されたプロセッサを備える局に存在し得る。
【００１０】
本発明の別の態様は、コンピュータに、第1の暗号化されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックを暗号化させるためのコードであって、第1の複数のラウンド鍵が初期ブロック鍵に基づいて生成される、コードと、コンピュータに、第1の導出ブロック鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータに、第2の暗号化されたデータブロックを生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックを暗号化させるためのコードであって、第2の複数のラウンド鍵が第1の導出ブロック鍵に基づいて生成される、コードとを備えるコンピュータ可読媒体を備えるコンピュータプログラム製品に存在し得る。
【００１１】
加えて、本発明の一態様は、局における鍵更新のための方法に存在し得る。本方法では、初期ブロック鍵は、第1の複数のラウンド鍵を生成するために処理される。第1の複数のラウンド鍵のうちの1つのラウンド鍵は、第1の導出鍵の基礎として使用するために保持される。第1の暗号化されたデータブロックは、第2の複数のラウンド鍵を生成するために第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して解読される。第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第2の導出鍵の基礎として使用するために保持される。第2の暗号化されたデータブロックは、第3の複数のラウンド鍵を生成するために第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して解読される。
【００１２】
本発明のより詳細な態様では、第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第3の導出鍵の基礎として使用するために保持され得る。第1の暗号化されたデータブロック、第2の暗号化されたデータブロック、第1の解読されたデータブロック、および第2の解読されたデータブロックは各々、128ビットを備えてもよく、初期ブロック鍵、第1の導出ブロック鍵、第2の導出ブロック鍵、第3の導出ブロック鍵、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、192ビットを備えてもよい。代替的に、第1の暗号化されたデータブロック、第2の暗号化されたデータブロック、第1の解読されたデータブロック、および第2の解読されたデータブロックは各々、128ビットを備えてもよく、初期ブロック鍵、第1の導出ブロック鍵、第2の導出ブロック鍵、第3の導出ブロック鍵、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、256ビットを備えてもよい。
【００１３】
本発明の別の態様は、第1の複数のラウンド鍵を生成するために初期ブロック鍵を処理するための手段と、第1の導出鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段と、第2の複数のラウンド鍵を生成するために第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックを解読するための手段と、第2の導出鍵の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段と、第3の複数のラウンド鍵を生成するために第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックを解読するための手段とを備える局に存在し得る。
【００１４】
本発明の別の態様は、第1の複数のラウンド鍵を生成するために初期ブロック鍵を処理し、第1の導出鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持し、第2の複数のラウンド鍵を生成するために第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックを解読し、第2の導出鍵の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持し、第3の複数のラウンド鍵を生成するために第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックを解読するように構成されたプロセッサを備える局に存在し得る。
【００１５】
本発明の別の態様は、コンピュータに、第1の複数のラウンド鍵を生成するために初期ブロック鍵を処理させるためのコードと、コンピュータに、第1の導出鍵の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータに、第2の複数のラウンド鍵を生成するために第1の導出鍵を処理しながら、第1の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックを解読させるためのコードと、コンピュータに、第2の導出鍵の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータに、第3の複数のラウンド鍵を生成するために第2の導出鍵を処理しながら、第2の解読されたデータブロックを生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックを解読させるためのコードとを備えるコンピュータ可読媒体を備えるコンピュータプログラム製品に存在し得る。
【図面の簡単な説明】
【００１６】
【図１】ワイヤレス通信システムの一例のブロック図である。
【図２】本発明による、局における暗号化鍵更新のための方法の流れ図である。
【図３】ブロック暗号アルゴリズムにおける暗号化用途の鍵を更新するための方法に関する概略図である。
【図４】本発明による、局における鍵更新のための方法の流れ図である。
【図５】ブロック暗号アルゴリズムにおける解読用途の鍵を更新するための方法に関する概略図である。
【図６】プロセッサとメモリとを含むコンピュータのブロック図である。
【発明を実施するための形態】
【００１７】
「例示的な」という言葉は、「一例、事例、または例示として役立つ」ことを意味するように本明細書で使用される。「例示的な」として本明細書で説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。
【００１８】
図1、図2および図3を参照すると、本発明の一態様は、局102における暗号化鍵更新のための方法200に存在し得る。本方法では、第1のデータブロックB1は、第1の暗号化されたデータブロックE1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して暗号化され、第1の複数のラウンド鍵は、初期ブロック鍵K0に基づいて生成される(ステップ210)。第1の複数のラウンド鍵のうちの1つのラウンド鍵は、第1の導出ブロック鍵K1の基礎として使用するために保持される(ステップ220)。第2のデータブロックB2は、第2の暗号化されたデータブロックE2を生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して暗号化され、第2の複数のラウンド鍵は、第1の導出ブロック鍵K1に基づいて生成される(ステップ230)。
【００１９】
本発明のより詳細な態様では、第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第2の導出ブロック鍵K2の基礎として使用するために保持される(ステップ240)。第1の暗号化されたデータブロックE1および第2の暗号化されたデータブロックE2は、AES(高度暗号化標準:Advanced Encryption Standard)アルゴリズムを使用して生成され得る。第1の導出ブロック鍵K1は、第1の複数のラウンド鍵のうちの最後のラウンド鍵、たとえば、RK91であってもよく、第2の導出ブロック鍵K2は、第2の複数のラウンド鍵のうちの最後のラウンド鍵、たとえば、RK92であってもよい。代替的に、第1の導出ブロック鍵K1は、少なくとも1つの追加のラウンドRK9+n1によって第1の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づいてもよく、第2の導出ブロック鍵K2は、少なくとも1つの追加のラウンド、たとえば、RK9+n2によって第2の複数のラウンド鍵のうちの最後のラウンド鍵をさらに処理することによって生成された追加のラウンド鍵に基づいてもよい。
【００２０】
本発明は、AESアルゴリズムなどのブロック暗号アルゴリズムで使用される暗号化/解読鍵を更新するための技法に関し得る。AESアルゴリズムの文脈では、各データブロックに対して、鍵スケジューリングの最終ラウンド鍵(またはその導関数)は、次のブロック鍵のための第1のラウンド鍵として使用され得る。したがって、同じブロック鍵を何度も繰り返して再使用する代わりに、次のデータブロックのためのブロック鍵は、前のデータブロックのための最後のラウンド鍵(または1つもしくは複数の追加のラウンドからのラウンド鍵)であってもよい。結果として、同じ鍵材料は本質的に決して2度使用されず、DPA(差分電力解析:differential power analysis)攻撃の成功に必要な統計的解析を実行することができない。
【００２１】
AESアルゴリズムのためのデータ入力およびデータ出力は各々、128ビットのシーケンス(0または1の値を有する数字)からなる。これらのシーケンスは一般にブロックと呼ばれ、ビットの数はその長さと呼ばれる。AESアルゴリズムのための暗号鍵(ブロック鍵)は、128ビット、192ビットまたは256ビットのシーケンスとして定義される。AESアルゴリズムにおけるラウンド鍵は、暗号鍵と同じ長さを有する。したがって、次の暗号/ブロック鍵の基礎としてのラウンド鍵の使用は、AESによって実装されているエントロピー再分配(redistribution)動作から得られる標準的な暗号化されたデータ出力のハッシュを使用することを凌ぐ、かなりの利点を有する。ハッシュ関数は、新しい暗号/ブロック鍵を計算するための追加のシステムリソース(たとえば、処理時間および/または回路)を必要とする。
【００２２】
本発明は、後続のブロックのための暗号/ブロック鍵が既存のAES動作の副産物であり、その鍵が標準的なAES動作から得られる暗号化された出力に対して実行される関数に基づかないという点で効率的である。後続の暗号/ブロック鍵を作り出すために追加の関数を実行する必要がなく、追加のラウンドを使用しない場合、後続の暗号/ブロック鍵の導出/処理は、追加の処理ハードウェアを必要とすることなしに、ブロックデータ処理と同時に実行され得る。
【００２３】
AES 128ビット、192ビット、および256ビットの暗号鍵はそれぞれ、10ラウンド、12ラウンド、および14ラウンドを使用する。10ラウンドが図3(および図5)に示されているが、必要に応じて、より大きい暗号鍵長に従って、12ラウンドもしくは14ラウンド、または追加のラウンドが実装される。したがって、ラウンドの数は図面に示す数に限定されない。
【００２４】
本発明の他のより詳細な態様では、局102はハードウェア局であってもよく、暗号化するステップおよび保持するステップはハードウェア局によって実行され得る。第1のデータブロックB1、第2のデータブロックB2、第1の暗号化されたデータブロックE1、および第2の暗号化されたデータブロックE2は各々、128ビットを備えてもよく、初期ブロック鍵K0、第1の導出ブロック鍵K1、第2の導出ブロック鍵K2、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、192ビットを備えてもよい。代替的に、第1のデータブロックB1、第2のデータブロックB2、第1の暗号化されたデータブロックE1、および第2の暗号化されたデータブロックE2は各々、128ビットを備えてもよく、初期ブロック鍵K0、第1の導出ブロック鍵K1、第2の導出ブロック鍵K2、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、256ビットを備えてもよい。
【００２５】
図1および図6をさらに参照すると、本発明の別の態様は、第1の暗号化されたデータブロックE1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックB1を暗号化するための手段610であって、第1の複数のラウンド鍵が初期ブロック鍵K0に基づいて生成される、手段610と、第1の導出ブロック鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段610と、第2の暗号化されたデータブロックE2を生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックB2を暗号化するための手段610であって、第2の複数のラウンド鍵が第1の導出ブロック鍵K1に基づいて生成される、手段610とを備える局102に存在し得る。
【００２６】
本発明の別の態様は、第1の暗号化されたデータブロックE1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックB1を暗号化することであって、第1の複数のラウンド鍵が初期ブロック鍵K0に基づいて生成される、暗号化することと、第1の導出ブロック鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持することと、第2の暗号化されたデータブロックE2を生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックB2を暗号化することであって、第2の複数のラウンド鍵が第1の導出ブロック鍵K1に基づいて生成される、暗号化することとを行うように構成されたプロセッサ610を備える局102に存在し得る。
【００２７】
本発明の別の態様は、コンピュータ600に、第1の暗号化されたデータブロックE1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1のデータブロックB1を暗号化させるためのコードであって、第1の複数のラウンド鍵が初期ブロック鍵K0に基づいて生成される、コードと、コンピュータ600に、第1の導出ブロック鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータ600に、第2の暗号化されたデータブロックE2を生成するために、第2の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2のデータブロックB2を暗号化させるためのコードであって、第2の複数のラウンド鍵が第1の導出ブロック鍵K1に基づいて生成される、コードとを備えるコンピュータ可読媒体620を備えるコンピュータプログラム製品に存在し得る。
【００２８】
解読動作は一般に、ラウンド鍵を事前計算し、データ解読の第1のラウンドに対して最後のラウンド鍵とともに開始する必要があるので、最後のラウンド鍵が生成されるまで鍵スケジューリングアルゴリズムにおいて前に進むことによって動作する。その最後のラウンド鍵が記憶され、次いで、アルゴリズムは、データに対して動作しながら、逆方向に動作する。後続のデータブロックは、パフォーマンスを改善するために、記憶された最後のラウンド鍵とともに開始する。ハッシュ関数に基づくものなどのいくつかの鍵ローリングアルゴリズムの場合、第2のデータブロックのために使用される最後のラウンド鍵が第1のデータブロックのために使用される最後のラウンド鍵と同じではないので、このパフォーマンス向上は可能ではない。各ローリングブロック鍵について最後のラウンド鍵を事前計算することは、かなりのパフォーマンスヒットを招く可能性がある。
【００２９】
しかしながら、本発明の場合、この事前計算問題は、鍵スケジューリングブロックを複製し、鍵スケジューリングブロックに、現在のデータブロックに対して動作すると同時に次のデータブロックのための最終ラウンド鍵を計算させることによって、ハードウェアにおいて容易に対処される。この技法のハードウェア実装は、チップサイズ/面積の点で比較的小さい面積の影響を及ぼす。
【００３０】
図4および図5を参照すると、本発明の別の態様は、局102における鍵更新のための方法400に存在し得る。本方法では、初期ブロック鍵K0は、第1の複数のラウンド鍵を生成するために処理される(ステップ410)。第1の複数のラウンド鍵のうちの1つのラウンド鍵は、第1の導出鍵K1の基礎として使用するために保持される(ステップ420)。第1の暗号化されたデータブロックE1は、第2の複数のラウンド鍵を生成するために第1の導出鍵K1を同時に処理しながら、第1の解読されたデータブロックB1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して解読される(ステップ430)。第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第2の導出鍵K2の基礎として使用するために保持される(ステップ440)。第2の暗号化されたデータブロックE2は、第3の複数のラウンド鍵を生成するために第2の導出鍵K2を同時に処理しながら、第2の解読されたデータブロックB2を生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して解読される(ステップ450)。
【００３１】
本発明のより詳細な態様では、第2の複数のラウンド鍵のうちの1つのラウンド鍵は、第3の導出鍵K3の基礎として使用するために保持され得る(ステップ460)。第1の暗号化されたデータブロックE1、第2の暗号化されたデータブロックE2、第1の解読されたデータブロックB1、および第2の解読されたデータブロックB2は各々、128ビットを備えてもよく、初期ブロック鍵K0、第1の導出ブロック鍵K1、第2の導出ブロック鍵K2、第3の導出ブロック鍵K3、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、192ビットを備えてもよい。代替的に、第1の暗号化されたデータブロックE1、第2の暗号化されたデータブロックE2、第1の解読されたデータブロックB1、および第2の解読されたデータブロックB2は各々、128ビットを備えてもよく、初期ブロック鍵K0、第1の導出ブロック鍵K1、第2の導出ブロック鍵K2、第3の導出ブロック鍵K3、第1の複数のラウンド鍵のうちのラウンド鍵、および第2の複数のラウンド鍵のうちのラウンド鍵は各々、256ビットを備えてもよい。
【００３２】
図1および図6をさらに参照すると、本発明の別の態様は、第1の複数のラウンド鍵を生成するために初期ブロック鍵K0を処理するための手段610と、第1の導出鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段610と、第2の複数のラウンド鍵を生成するために第1の導出鍵K1を同時に処理しながら、第1の解読されたデータブロックB1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックE1を解読するための手段610と、第2の導出鍵K2の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持するための手段610と、第3の複数のラウンド鍵を生成するために第2の導出鍵K2を同時に処理しながら、第2の解読されたデータブロックB2を生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックE2を解読するための手段610とを備える局102に存在し得る。
【００３３】
本発明の別の態様は、第1の複数のラウンド鍵を生成するために初期ブロック鍵K0を処理し、第1の導出鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持し、第2の複数のラウンド鍵を生成するために第1の導出鍵K1を同時に処理しながら、第1の解読されたデータブロックB1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックE1を解読し、第2の導出鍵K2の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持し、第3の複数のラウンド鍵を生成するために第2の導出鍵K2を同時に処理しながら、第2の解読されたデータブロックB2を生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックE2を解読するように構成されたプロセッサ610を備える局102に存在し得る。
【００３４】
本発明の別の態様は、コンピュータ600に、第1の複数のラウンド鍵を生成するために初期ブロック鍵K0を処理させるためのコードと、コンピュータ600に、第1の導出鍵K1の基礎として使用するために第1の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータ600に、第2の複数のラウンド鍵を生成するために第1の導出鍵K1を同時に処理しながら、第1の解読されたデータブロックB1を生成するために、第1の複数のラウンドにわたって第1の複数のラウンド鍵を使用して第1の暗号化されたデータブロックE1を解読させるためのコードと、コンピュータ600に、第2の導出鍵K2の基礎として使用するために第2の複数のラウンド鍵のうちの1つのラウンド鍵を保持させるためのコードと、コンピュータ600に、第3の複数のラウンド鍵を生成するために第2の導出鍵K2を同時に処理しながら、第2の解読されたデータブロックB2を生成するために、第1の複数のラウンドにわたって第2の複数のラウンド鍵を使用して第2の暗号化されたデータブロックE2を解読させるためのコードとを備えるコンピュータ可読媒体620を備えるコンピュータプログラム製品に存在し得る。
【００３５】
局102は、プロセッサ610と、メモリおよび/またはディスクドライブなどの記憶媒体620と、ディスプレイ630と、キーパッドなどの入力640と、ワイヤレス接続650とを含むコンピュータ600を備えるリモート局RSであってもよい。
【００３６】
図1を参照すると、ワイヤレスリモート局(RS)102(たとえば、移動局MS)は、ワイヤレス通信システム100の1つまたは複数の基地局(BS)104と通信し得る。ワイヤレス通信システム100は、1つまたは複数の基地局コントローラ(BSC)106と、コアネットワーク108とをさらに含み得る。コアネットワークは、適切なバックホールを介して、インターネット110および公衆交換電話網(PSTN)112に接続され得る。典型的なワイヤレス移動局は、ハンドヘルド電話またはラップトップコンピュータを含み得る。ワイヤレス通信システム100は、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、空間分割多元接続(SDMA)、偏波分割多元接続(PDMA)、または当技術分野で知られている他の変調技法など、いくつかの多元接続技法のうちのいずれか1つを採用してもよい。
【００３７】
情報および信号が様々な異なる技術および技法のいずれかを使用して表され得ることを当業者は理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【００３８】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００３９】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと関連した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００４０】
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であり得る。プロセッサおよび記憶媒体は、ASIC内に存在し得る。ASICは、ユーザ端末内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別構成要素として存在し得る。
【００４１】
1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。コンピュータプログラム製品としてソフトウェアで実装された場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、非一時的コンピュータ可読記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００４２】
開示した実施形態の上記の説明は、いかなる当業者も本発明を作製または使用することを可能にするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかになり、本明細書で定義する一般原理は、本発明の趣旨または範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４３】
100  ワイヤレス通信システム
102  局、ワイヤレスリモート局(RS)
104  基地局(BS)
106  基地局コントローラ(BSC)
108  コアネットワーク
110  インターネット
112  公衆交換電話網(PSTN)
200  方法
400  方法
600  コンピュータ
610  手段、プロセッサ
620  記憶媒体
630  ディスプレイ
640  入力
650  ワイヤレス接続
B1  第1のデータブロック、第1の解読されたデータブロック
B2  第2のデータブロック、第2の解読されたデータブロック
E1  第1の暗号化されたデータブロック
E2  第2の暗号化されたデータブロック
K0  初期ブロック鍵
K1  第1の導出ブロック鍵、第1の導出鍵
K2  第2の導出ブロック鍵、第2の導出鍵
K3  第3の導出鍵
【図１】
0006487433.tif 000002
【図２】
0006487433.tif 000003
【図３】
0006487433.tif 000004
【図４】
0006487433.tif 000005
【図５】
0006487433.tif 000006
【図６】
0006487433.tif 000007