鍵共有のための改善されたシステムを有することが有利であろう。
現在の鍵共有システムは多くの数学演算を必要するので、これらのシステムは、センサ、タグ、照明デバイス及び計算上制約される同様のデバイスのような組込みシステムにはあまり適していない。メッセージの対称鍵暗号化のために、改善されたシステムを有することが有利であろう。さらに、既存のシステムは、何らかの数学的問題、例えば有限体に対する離散対数問題について推定される−が、証明されていない−困難性に依存するので、異なる難易性の仮定に依拠する代替的な鍵共有システムを有することが有利であろう。
本発明の一態様は、鍵共有開始デバイス(initiating key-agreement device)及び鍵共有応答デバイス(responding key-agreement device)を備える鍵共有のシステムに関する。このシステムでは、鍵共有開始デバイスが、鍵共有応答デバイスにメッセージを送信し、鍵共有応答デバイスはメッセージで応答する。双方のメッセージに基づいて、各デバイスは、共有される対称鍵を導出することができる。
システム内のデバイスによって提供される鍵共有は、効率的な演算を可能にし、リソース制約デバイスにとって適切である。システムのこれらのデバイスは、以下で更に説明される。鍵共有は、例えばセキュアな通信を必要とする照明ネットワークにおいて使用され得る。一般に、本発明は、デバイスのペア間でのセキュアな通信を必要とする任意のタイプの通信ネットワークに適用され得る。
鍵共有開始デバイス及び応答側鍵要求デバイスは、電子デバイスであり;これらは、モバイルフォン、セットトップボックス、コンピュータ及び同様のものといったモバイル電子デバイスであってよい。鍵共有開始デバイス及び鍵共有応答デバイスは、センサ、照明デバイス、LEDランプ、スマートカード、RFIDタグ及び同様のもののように、リソース制約されることがある。
本発明の一態様は、鍵共有応答デバイスと共有される対称鍵を生成するよう構成される鍵共有開始デバイスに関する。鍵共有開始デバイスは、開始鍵データ生成器、通信ユニット及び対称鍵取得器を備える。
開始鍵データ生成器は、電子的形態で第1の非公開乱数値(private random value)を生成し、電子的形態で二変数多項式の公開セット(public set)を取得し、第1の非公開乱数値を公開セットの多項式に代入することによって得られる一変数多項式を合計することにより、開始一変数多項式(initiating univariate polynomial)を計算するために構成される。
通信ユニットは、開始一変数多項式を鍵共有応答デバイスに送信し、鍵共有応答デバイスから応答一変数多項式(responding univariate polynomial)を受け取るために構成される。
対称鍵取得器は、第1の非公開乱数値を応答一変数多項式に代入することにより、共有される対称鍵を再構築するために構成される。
本発明の一態様は、鍵共有開始デバイスと共有される対称鍵を生成するように構成される鍵共有応答デバイスに関し、共有される対称鍵は、電子メッセージの対称暗号化及び/又は復号のためのものである。鍵共有応答デバイスは、通信ユニット、応答鍵データ生成器及び対称鍵取得器を備える。
通信ユニットは、鍵共有開始デバイスから開始一変数多項式を受け取り、鍵共有開始デバイスに応答一変数多項式を送信するために構成される。
応答鍵データ生成器は、電子的形態で第2の非公開乱数値を生成し、電子的形態で二変数多項式の公開セットを取得し、第2の非公開乱数値を公開セットの多項式に代入することによって得られる一変数多項式の全体を合計することにより、応答一変数多項式を計算するために構成される。
対称鍵取得器は、第2の非公開乱数値を開始一変数多項式に代入することにより、共有される対称鍵を計算するために構成される。
鍵に対して合意をするために、鍵共有開始デバイスは、二変数多項式の公開セットを取得し、第1の非公開乱数値を生成する。これらから、鍵共有開始デバイスは、開始一変数多項式を生成する。開始一変数多項式及び公開セットを知っていることは、第1の非公開乱数値を決定するには十分でない。鍵共有の開始は、開始一変数多項式を計算する際に複数の多項式を使用するので、開始一変数多項式と第1の非公開乱数値との間の関係が妨げられる。鍵共有応答デバイスは、第2の非公開乱数値を開始一変数多項式に代入することによって、対称鍵を導出することができる。また、鍵共有応答デバイスは、同じ公開セット及び第2の非公開乱数から応答一変数多項式も計算する。応答一変数多項式を使用して、鍵共有開始デバイスは、鍵共有応答デバイスによって取得されたものと同じ鍵を取得することができる。
システムは、第1非公開乱数値を公開セットの多項式に代入することにより取得される一変数多項式に、すなわちこれらを合計する前に、異なるリダクション関数(reduction function)を適用することに特に良く適している。異なるリダクション関数は数学的に互換性がない、すなわち、リダクションの結果は、合計が実行される環(ring)内の加算を順守しない。
公開セット、開始一変数多項式及び応答一変数多項式へのアクセスがあるとしても、攻撃者は、共有鍵を導出することができない。鍵共有開始デバイス及び鍵共有応答デバイスは、これらの非公開乱数へのアクセスを有しているので、これらのデバイスは鍵を導出することができる。
パラメータの幾つかの選択について、複数の多項式及びそのリダクションによって生じる混合(mixing)に起因して、結果として得られる鍵が等しくない可能性がある。これは幾つかの方法で解決され得る。例えばパラメータの幾つかの選択は、例えば多項式環を使用して等しい鍵の保証を行い;鍵確認データを使用して、鍵共有開始デバイスは、鍵を再構築することができ;これは、時々鍵共有が失敗する幾つかの適用にふさわしい可能性がある。
実施形態において、リダクション関数は、公開セット内の少なくとも2つの多項式、しかし好ましくは全ての多項式に関連付けられる。例えばリダクション関数は、例えばモジュロ演算として実装され得る整数環や、例えばリダクション多項式によって割るときに剰余を計算することによる、多項式リダクションとして実装され得る多項式環等の環におけるリダクションである。2つ又はそれ以上の異なるリダクション関数はセキュリティを向上させる。リダクション関数は、第1又は第2の非公開乱数値を公開セットの多項式に代入することによって得られる一変数多項式に、これらを合計する前に適用される。
リダクション関数を表す情報は、公開セット内に含まれ、公開セットと一緒に得られ得る。
対称鍵を再構築することは、鍵Kとして出力のうちのbビット、例えば最下位のbビットを取ることも備えることがある。鍵共有開始デバイスの暗号化ユニットは、再構築された対称鍵を使用するよう構成され得る。対称鍵は「K」とも呼ばれる。
実施形態において、鍵共有開始デバイスは、電子メッセージを、共有される対称鍵を用いて暗号化するために構成される暗号化ユニット、及び/又は暗号化された電子メッセージを、共有される対称鍵を用いて復号するために構成される復号ユニットを備える。
実施形態において、鍵共有応答デバイスは、電子メッセージを、共有される対称鍵を用いて暗号化するために構成される暗号化ユニット、及び/又は暗号化された電子メッセージを、共有される対称鍵を用いて復号するために構成される復号ユニットを備える。
共有される対称鍵は、暗号鍵を必要とする任意の暗号の目的のために使用され得る。しかしながら、対称鍵は、暗号化及び復号に適している。鍵共有システムは特に、例えば電子署名、証明書等による認証が実施されるが、暗号化/復号は実施されていないシステムに特に適している。また、鍵共有は、何らの共有の秘密が利用可能な場合であっても、一時的な鍵を生成することにも特に適している。共有の秘密ではなく一時的な鍵に依拠することによって、進歩的なセキュリティ(forward security)が得られる。
鍵共有開始デバイスの実施形態において、二変数多項式の公開セットは対称の二変数多項式のみを備える。
鍵共有応答デバイスの実施形態において、二変数多項式の公開セットは対称の二変数多項式のみを備える。
対称多項式は、実装をいくらか簡単にする。対称多項式は、少ないリソースしか記憶する必要がなく、また、2つのパーティが代入に異なる変数を使用することを確実にするというブックキーピング(bookkeeping)も必要とされない。一方、非対称の多項式は幾分、よりセキュアである。
鍵共有開始デバイスの実施形態において、二変数多項式の公開セットは、少なくとも2つの異なる二変数多項式を備えるか、かつ/又は公開セットの少なくとも1つの多項式が、該少なくとも1つの多項式の2つの変数のうちの1つの変数において少なくとも次数2を有する。
鍵共有応答デバイスの実施形態において、二変数多項式の公開セットは、少なくとも2つの異なる二変数多項式を備えるか、かつ/又は公開セットの少なくとも1つの多項式が、該少なくとも1つの多項式の2つの変数のうちの1つの変数において少なくとも次数2を有する。
システムは、例えば基礎をなす環のように、そのリダクションを提供した2つの二変数多項式が同じとき、例えばローカルリダクション整数が異なるときに使用されてもよい。異なるリダクション関数を使用することは、たとえその係数が同じ場合であっても、多項式の演算を異なるものにする。
鍵共有開始デバイスの実施形態において、開始一変数多項式は、開始一変数多項式の係数のリストとして正準形式(canonical form)で表され、応答一変数多項式は、応答一変数多項式の係数のリストとして正準形式で表される。
鍵共有応答デバイスの実施形態において、応答一変数多項式は、応答一変数多項式の係数のリストとして正準形式で表される。
多項式を正準形式に書き換えることは、リダクションを実行する1つの方法である。正準形式の係数は、可換環のような値のセットからとられる。正準形式のリダクションは、多項式を1つの形式のみで表すことができることを保証する。
鍵共有開始デバイスの実施形態において、異なる可換環が、二変数多項式の公開セットの各多項式に関連付けられ、第1の非公開乱数値を公開セットの特定の多項式に代入することによって得られる開始一変数多項式は、特定の一変数多項式に関連付けられる可換環の正準形式に簡約(reduce)される。
鍵共有応答デバイスの実施形態において、異なる可換環が、二変数多項式の公開セットの各多項式に関連付けられ、第2の非公開乱数値を公開セットの特定の多項式に代入することによって得られる応答一変数多項式は、特定の一変数多項式に関連付けられる可換環の正準形式に簡約される。
第1の非公開乱数値を公開セットの特定の多項式に代入することによって得られる開始一変数多項式は、これらが合計される前に、異なるリダクション関数で簡約される。したがって、公開セットを知っているとしても、開始一変数多項式から第1の非公開乱数値を回復することは困難である。例えば単一の有限体で機能するときに存在する可能性がある数学的関係は阻害される。これは、多項式を分析するための通常の数学的ツール、例えば有限代数はもはや適合しないことを意味する。最良でも、攻撃者は、格子(lattice)のような効率性の低い構造を使用することになる。一方、鍵共有開始及び応答デバイスは、同じ共有鍵を導出することができる可能性が高い。
鍵共有開始デバイスの実施形態では、公開グローバルリダクション整数(public global reduction integer)が公開セットに関連付けられ、公開個別リダクション整数(public individual reduction integer)が、公開セットの各多項式に関連付けられ、第1の非公開乱数値は整数であり、公開セット内の各多項式は、整数係数を有する二変数多項式であり、開始一変数多項式は、整数係数を有する一変数多項式である。これらのパラメータを様々な方法で得ることができ、例えばこれらを、開始鍵データ生成器によって、例えば公開セットと一緒に得ることができる。公開個別リダクション整数は、ローカルリダクション整数とも呼ばれる。
開始一変数多項式を計算することは、公開セットの各多項式について、第1の非公開乱数値を当該多項式に代入し、当該多項式に関連付けられる公開個別リダクション整数を法(modulo)として簡約する(解く)(reduce)ことにより、一変数多項式のセットを取得することと、一変数多項式のセットを合計し、グローバルリダクション整数を法として簡約することとを含む。
対称鍵を再構築することは、第1の非公開乱数値を応答一変数多項式に代入することと、公開グローバルリダクション整数を法として簡約することを含む。
鍵共有応答デバイスの実施形態では、公開グローバルリダクション整数が、公開セットに関連付けられ、公開個別リダクション整数が、公開セットの各多項式に関連付けられ、第2の非公開乱数値は整数であり、公開セット内の各多項式は、整数係数を有する二変数多項式であり、開始一変数多項式及び応答一変数多項式は、整数係数を有する一変数多項式である。
共有される対称鍵を計算することは、第2の非公開乱数値を開始一変数多項式に代入することと、グローバルリダクション整数を法として簡約することを含む。
応答一変数多項式を計算することは、公開セットの各多項式について、第2の非公開乱数値をその多項式に代入し、当該多項式に関連付けられる公開個別リダクション整数を法として簡約することにより、一変数多項式のセットを取得することと、一変数多項式のセットを合計し、グローバルリダクション整数を法として簡約することとを含む。
公開個別リダクション整数のうちの2つが等しい場合、公開セットはより少ない多項式を有するよう簡単になる可能性があるので、公開個別リダクション整数は全て異なることが有益である。それでもなお、公開個別リダクション整数の一部又は全てが等しい場合、より少ない多項式を有するより小さなシステムから予想され得るセキュリティではあるが、システムは正しく機能するであろう。
異なるモジュライ(moduli)を法として解いた2つ又はそれ以上の一変数の多項式を加算することは、非公開乱数値の公開セットと、開始/応答一変数多項式との間の関係をわかりにくくするために効率的な方法である。
実施形態において、公開グローバルリダクション整数は、2(α+2)b-1より大きい、かつ/又は2(α+2)bより小さい奇数であり、αは、公開セット内の多項式の2つの変数のうちの一方の変数の最も高い次数を表し、bは鍵長を表し、各公開個別リダクション整数について、公開グローバルリダクション整数マイナス(引く)当該公開個別リダクション整数は、2の鍵長乗(2 to the power of the key length)の倍数(multiple)であり、2の鍵長の2倍乗(2 to the power of twice the key length)より小さく、共有される対称鍵を計算することは、2の鍵長乗を法として簡約することを含む。
鍵共有応答デバイスの実施形態において、公開グローバルリダクション整数は、2(α+2)b-1より大きい、かつ/又は2(α+2)bより小さい奇数であり、αは、公開セット内の多項式の2つの変数のうちの一方の変数の最も高い次数を表し、bは鍵長を表し、各公開個別リダクション整数について、公開グローバルリダクション整数マイナス当該公開個別リダクション整数は、2の鍵長乗の倍数であり、2の鍵長の2倍乗より小さく、共有される対称鍵を計算することは、2の鍵長乗を法として簡約することを含む。
鍵共有応答デバイスの実施形態において、応答鍵データ生成器は、再構築鍵が対称鍵と等しいかどうかを検証するために、鍵確認データを対称鍵から計算するように構成され、通信ユニットは、鍵共有開始デバイスに鍵確認データを送信するために更に構成される。通信ユニットは、鍵確認データを、例えば応答一変数多項式と一緒に鍵共有開始デバイスに送信するように構成される。
請求項1に係る鍵共有開始デバイスの実施形態において、鍵共有開始デバイスの対称鍵取得器は、第1の非公開乱数値を応答一変数多項式に代入し、公開グローバルリダクション整数を法として簡約した結果から、第1の再構築鍵を導出することと、第1の再構築鍵が対称鍵と等しいかどうかを鍵確認データから判断し、等しくない場合は、第1の再構築鍵から更なる再構築鍵を導出することのために構成される。
鍵共有開始デバイスの実施形態において、更なる再構築鍵を導出することは、第1の再構築鍵に対して、公開グローバルリダクション整数を加算するか、公開グローバルリダクション整数の乗算を行い、2の鍵長乗を法として簡約することを含む。
鍵確認データを使用することは、共有鍵が得られる可能性を向上させるか、あるいは共有鍵が得られることを保証する1つの方法である。
鍵共有開始デバイスの実施形態において、公開グローバルリダクション多項式は、公開セットに関連付けられ、公開個別リダクション多項式は、公開セットの各多項式に関連付けられる。
第1の非公開乱数値は多項式であり、公開セット内の各特定の多項式は、その特定の多項式に関連付けられる公開個別リダクション多項式を法とする多項式環からとられる係数を有する、二変数の多項式である。開始一変数多項式は、多項式係数を有する。開始一変数多項式を計算することは、公開セットの各特定の多項式について、第1の非公開乱数値をその多項式に代入し、その特定の多項式に関連付けられる公開個別リダクション多項式を法として簡約することにより、一変数多項式のセットを取得することと、一変数多項式のセットを合計することとを含む。対称鍵を再構築することは、第1の非公開乱数値を応答一変数多項式に代入し、公開グローバルリダクション多項式を法として簡約することを含む。
鍵共有応答デバイスの実施形態において、公開グローバルリダクション多項式は、公開セットに関連付けられ、公開個別リダクション多項式は、公開セットの各多項式に関連付けられる。第2の非公開乱数値は多項式であり、公開セット内の各特定の多項式は、その特定の多項式に関連付けられる公開個別リダクション多項式を法とする多項式環からとられる係数を有する、二変数多項式である。
応答一変数多項式は、多項式係数を有する。
対称鍵を計算することは、第2の非公開乱数値を開始一変数多項式に代入し、グローバルリダクション多項式を法として簡約することを含む。対称鍵を計算することは、結果のbビット、例えば最下位のbビットをとることを含んでもよい。
応答一変数多項式を計算することは、公開セットの各多項式について、第2の非公開乱数値をその多項式に代入し、その多項式に関連付けられる公開個別リダクション多項式を法として簡約することにより、一変数多項式のセットを取得することと、一変数多項式のセットを合計することとを含む。多項式環を使用することは、鍵共有開始デバイスが、正しい共有対称鍵を確実に得るために鍵確認データを必要としないことを保証する。
グローバル及びローカルのリダクション多項式は、整数係数を有する多項式として選択され得る。整数係数は、予め定義された最大値よりも小さくなるように選択され得る。例えばグローバル及びローカルのリダクション多項式の係数は、整数環から、例えば整数モジュール数からとられることがある。例えばグローバル及びローカルのリダクション多項式はバイナリの係数であってよい。グローバル及びローカルのリダクション多項式は既約であり得るが、これは必ずしも必要ではない。
本発明の態様は、鍵共有開始方法に関する。
本発明の態様は、鍵共有応答方法に関する。
鍵共有開始デバイス及び鍵共有応答デバイスは、例えばモバイル電子デバイス等の電子デバイスであり;例えばこれらは、モバイルフォン、タブレット、コンピュータ等であってよい。鍵共有開始デバイス及び鍵共有応答デバイスは、例えばカードやシム又はタグといった集積回路であってもよい。鍵共有開始デバイス及び鍵共有応答デバイスは、例えば照明器具のような照明デバイス内、バルブやLED等といった交換可能な照明ユニット内に組み込まれてもよい。
本発明に係る方法は、コンピュータで実施される方法としてコンピュータ上で、あるいは専用のハードウェア内で実装されてよく、あるいはこれら双方の組合せで実装されてもよい。本発明に係る方法のための実行可能コードは、コンピュータプログラム製品上に格納されることがある。コンピュータプログラム製品の例には、メモリデバイス、光ストレージデバイス、集積回路、サーバ、オンラインソフトウェア等が含まれる。好ましくは、コンピュータプログラム製品は、該プログラム製品がコンピュータ上で実行されるときに本発明に係る方法を実行するために、コンピュータ読取可能媒体上に格納される非一時的なプログラムコード手段を備える。
好適な実施形態では、コンピュータプログラムは、該コンピュータプログラムがコンピュータ上で実行されると、本発明に係る方法のステップを全て実行するよう適合されるプログラムコード手段を備える。好ましくは、コンピュータプログラムは、コンピュータ読取可能媒体上で具現化される。
鍵共有開始デバイスと鍵共有応答デバイスとの間で共有される対称鍵を生成するように構成される、鍵共有開始デバイス及び鍵共有応答デバイスが提供される。これらのデバイスは、電子的形態で非公開乱数値を生成し、電子的形態で二変数多項式の公開セットを取得し、非公開乱数値を公開セットの多項式に代入することによって得られる一変数多項式を合計することにより、一変数多項式を計算するために構成される。これらのデバイスは、自身が計算した一変数多項式を他方のデバイスに送信し、生成した非公開乱数値を、受け取った一変数多項式へ代入することにより、共有の対称鍵を計算又は再構築するように構成される。
通信ネットワークが複数のネットワークデバイスを備える場合、これらのネットワークデバイスの間のセキュアな接続をセットアップすることは問題である。この問題は、非特許文献1(「Blundo」とも称する)において対処される。
これは、p個の要素を有する有限体Fの係数を有する対称二変数多項式f(x,y)を生成する、ネットワーク権限又は信頼できる第三者機関(TTP)とも呼ばれる中央の権限を想定し、ここで、pは、素数又は素数の累乗である。各デバイスはFにおける一意の数字を有しており、各デバイスには、TTPによってローカルの鍵材料(key material)が提供される。識別子ηを有するデバイスについて、ローカルの鍵材料は、多項式f(η,y)の係数である。デバイスηがデバイスη’と通信することを望む場合、その鍵材料を使用して、鍵K(η, η’)=f(η, η’)を生成する。fは対称なので同じ鍵が生成される。ローカルの鍵材料は秘密である。ローカルの鍵材料の情報は、システムを直接的に危険にさらす可能性がある。特に、盗聴は同じ共有鍵を取得することを可能にするであろう。方法は、デバイスネットワーク内の各デバイスが、自身の一意の識別番号及びローカルの鍵材料を有することを必要とする。
本明細書で説明される鍵共有開始デバイスと鍵共有応答デバイスは、いずれもプライベートの鍵材料を受け取る必要はない。鍵共有開始デバイスと鍵共有応答デバイスが、通信を暗号化するのに使用され得る秘密を共有していない場合であっても、これらのデバイスは、共有の対称鍵について合意することができる。さらに、鍵共有開始デバイス及び鍵共有応答デバイスは、単一の値ではなく、一変数多項式を他のパーティに送信する。鍵共有開始デバイス及び鍵共有応答デバイスは、外部サーバから公開セットを受け取るように構成されてもよく、したがって、ローカル処理のオーバーヘッドを低減し、ネットワーク負荷をシフトすることができる。しかしながら、公開セットは、いずれの秘密の値も決定することは許容しない。
鍵共有開始デバイス及び鍵共有応答デバイスの例は、以下の番号が付けられた項において定められる。
1. 鍵共有応答デバイスと共有される対称鍵を生成するよう構成される鍵共有開始デバイス(100)であって、共有される対称鍵は、電子メッセージの対称暗号化及び/又は復号のためのものであり、当該鍵共有開始デバイスは、
−開始鍵データ生成器(110)であって、
電子的形態で第1の非公開乱数値(112,s)を生成することと、
電子的形態で二変数多項式の公開セット(122,fi(,))を取得することと、
第1の非公開乱数値(112,s)を公開セット(122,fi(s, ))の多項式に代入することによって得られる一変数多項式を合計することにより、開始一変数多項式(124)を計算することと、
のために構成される、開始鍵データ生成器(110)と、
−通信ユニット(330)であって、
開始一変数多項式(124)を、鍵共有応答デバイス(200)に送信することと、
鍵共有応答デバイスから応答一変数多項式(222)を受け取ることと、
のために構成される、通信ユニット(330)と、
−対称鍵取得器(310)であって、
第1の非公開乱数値(112,s)を応答一変数多項式(222)に代入することにより、共有される対称鍵(312,K’)を再構築すること
のために構成される、対称鍵取得器(310)と、
を備える。
2. 鍵共有開始デバイスと共有される対称鍵を生成するように構成される鍵共有応答デバイス(200)であって、共有される対称鍵は、電子メッセージの対称暗号化及び/又は復号のためのものであり、当該鍵共有応答デバイスは、
−通信ユニット(340)であって、
鍵共有開始デバイスから、開始一変数多項式(124)を受け取ること
のために構成される、通信ユニット(340)と、
−応答鍵データ生成器(220)であって、
電子的形態で第2の非公開乱数値(212,r)を生成することと、
電子的形態で二変数多項式の公開セット(122,fi(,))を取得することと、
第2の非公開乱数値(r)を公開セット(122,(fi(r, ))の多項式に代入することによって得られる一変数多項式の全体を合計することにより、応答一変数多項式(222)を計算することであって、通信ユニットは、鍵共有開始デバイスに応答一変数多項式(222)を送信するように更に構成されることと、
のために構成される、応答鍵データ生成器(220)と、
−対称鍵取得器(210)であって、
第2の非公開乱数値(212,r)を開始一変数多項式に代入することにより、共有される対称鍵(214,K)を計算すること
のために構成される、対称鍵取得器(210)と、
を備える。
3. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
電子メッセージを、共有される対称鍵(214、312)を用いて暗号化するために構成される暗号化ユニット(230)及び/又は、
暗号化された電子メッセージを、共有される対称鍵(214、312)を用いて復号するために構成される復号ユニット(320)と、
を備える。
4. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
二変数多項式の公開セット(fi(,))は、対称二変数多項式のみを備える。
5. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
二変数多項式の公開セット(fi(,))は、少なくとも2つの異なる二変数多項式を備え、かつ/又は、
公開セットの少なくとも1つの多項式が、該少なくとも1つの多項式の2つの変数のうちの1つの変数において少なくとも次数2を有する。
6. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
開始一変数多項式は、開始一変数多項式の係数のリストとして正準形式で表され、
応答一変数多項式は、応答一変数多項式の係数のリストとして正準形式で表される。
7. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、異なる可換環が、二変数多項式の公開セットの各多項式に関連付けられ、
第1の非公開乱数値(s)を公開セットの特定の多項式(fi(s, ))に代入することによって得られる開始一変数多項式は、特定の一変数多項式に関連付けられる可換環の正準形式に簡約され、
第2の非公開乱数値(r)を公開セットの特定の多項式(fi(r, ))に代入することによって得られる応答一変数多項式は、特定の一変数多項式に関連付けられる可換環の正準形式に簡約される。
8. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、異なる可換環が、二変数多項式の公開セットの各多項式に関連付けられ、
公開グローバルリダクション整数(N)が、公開セットに関連付けられ、公開個別リダクション整数(qi)が公開セットの各多項式に関連付けられ、
第1の非公開乱数値(s)及び第2の非公開乱数値(r)は整数であり、公開セット内の各多項式は、整数係数を有する二変数多項式(fi(,))であり、開始一変数多項式及び応答一変数多項式は、整数係数を有する一変数多項式であり、
開始一変数多項式を計算することは、
公開セットの各多項式について、第1の非公開乱数値(s)を当該多項式(fi(s, ))に代入し、当該多項式に関連付けられる公開個別リダクション整数(qi)を法として簡約すること
により、一変数多項式のセットを取得することと、
一変数多項式のセットを合計し、グローバルリダクション整数(N)を法として簡約することと、
を含み、
共有される対称鍵(K)を計算することは、第2の非公開乱数値(r)を開始一変数多項式内に代入して、グローバルリダクション整数(N)を法として簡約することを含み、
応答一変数多項式を計算することは、
公開セットの各多項式について、第2の非公開乱数値(r)を当該多項式(fi(r, ))に代入し、当該多項式に関連付けられる公開個別リダクション整数(qi)を法として簡約すること
により、一変数多項式のセットを取得することと、
一変数多項式のセットを合計し、グローバルリダクション整数(N)を法として簡約することと、
を含み、
対称鍵(K)を再構築することは、第1の非公開乱数値(s)を応答一変数多項式内に代入して、公開グローバルリダクション整数(N)を法として簡約することを含む。
9. 第8項に記載の鍵共有開始デバイス又は第8項に記載の鍵共有応答デバイスにおいて、
公開グローバルリダクション整数は、2(α+2)b-1より大きい、かつ/又は2(α+2)bより小さい奇数であり、αは、公開セット内の多項式の2つの変数のうちの一方の変数の最も高い次数を表し、bは鍵長を表し、
各公開個別リダクション整数(qi)について、公開グローバルリダクション整数(N)マイナス公開個別リダクション整数(qi)は、2の鍵長乗の倍数(qi=N−βi2b、1≦βi≦2b)であり、2の鍵長の2倍乗よりも小さく、
共有される対称鍵(K)を計算することは、2の鍵長乗(2b)を法として簡約することを含む。
10. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
応答鍵データ生成器は、再構築鍵(K’)が対称鍵(K)と等しいかどうかを検証するために、鍵確認データを対称鍵(K)から計算するように構成され、通信ユニットは、鍵共有開始デバイスに鍵確認データを送信するために更に構成され、
鍵共有開始デバイスの対称鍵取得器(310)は、
第1の非公開乱数値(s)を応答一変数多項式に代入し、公開グローバルリダクション整数(N)を法として簡約した結果から、第1の再構築鍵(K’)を導出することと、
鍵確認データから、第1の再構築鍵(K’)が対称鍵(K)と等しいかどうかを判断し、等しくない場合は、第1の再構築鍵(K’)から更なる再構築鍵を導出すること
のために構成される。
11. 第8項及び第10項の組合せに係る鍵共有開始デバイスにおいて、更なる再構築鍵を導出することは、第1の再構築鍵(K’)に対して、公開グローバルリダクション整数(N)を加算するか、公開グローバルリダクション整数(N)の乗算を行い、2の鍵長乗(2b)を法として簡約することを含む。
12. 第1項に記載の鍵共有開始デバイス又は第2項に記載の鍵共有応答デバイスにおいて、
公開グローバルリダクション多項式(N(t))が公開セットに関連付けられ、公開個別リダクション多項式(Qi(t))が公開セットの各多項式に関連付けられ、
第1の非公開乱数値(S(t))及び第2の非公開乱数値(r(t))は多項式であり、公開セット内の各特定の多項式(Fi(,))は、該特定の多項式(Fi(,))に関連付けられる公開個別リダクション多項式(Qi(t))を法とする多項式環からとられる係数を有する二変数多項式(Fi,j,k(t))であり、
開始一変数多項式及び応答一変数多項式は、多項式係数を有し、
開始一変数多項式を計算することは、
公開セットの各特定の多項式について、第1の非公開乱数値(s(t))をその多項式(Fi(s, ))に代入し、その特定の多項式に関連付けられる公開個別リダクション多項式(Qi(t))を法として簡約すること
により、一変数多項式のセットを取得することと、
一変数多項式のセットを合計することと、
を含み、
対称鍵(K)を計算することは、第2の非公開乱数値(r(t))を開始一変数多項式に代入し、グローバルリダクション多項式(N(t))を法として簡約することを含み、
応答一変数多項式を計算することは、
公開セットの各特定の多項式について、第2の非公開乱数値(r(t))をその多項式(Fi( ,r))に代入し、その多項式に関連付けられる公開個別リダクション多項式(Qi(t))を法として簡約すること
により、一変数多項式のセットを取得することと、
一変数多項式のセットを合計することと、
を含み、
対称鍵(K)を再構築することは、第1の非公開乱数値(s(t))を開始一変数多項式に代入し、グローバルリダクション多項式(N(t))を法として簡約することを含む。
13. 第1項に記載の鍵共有開始デバイス及び第2項に記載の鍵共有応答デバイスを備えるシステム。
14. 鍵共有応答デバイスと共有される対称鍵を生成するよう構成される鍵共有開始方法であって、共有される対称鍵は、電子メッセージの対称暗号化及び/又は復号のためのものであり、当該鍵共有開始方法は、
電子的形態で第1の非公開乱数値(s)を生成するステップと、
電子的形態で二変数多項式の公開セット(fi(,))を取得するステップと、
第1の非公開乱数値(s)を公開セット(fi(s, ))の多項式に代入することによって得られる一変数多項式を合計することにより、開始一変数多項式を計算するステップと、
開始一変数多項式を、鍵共有応答デバイスに送信するステップと、
鍵共有応答デバイスから応答一変数多項式(222)を受け取るステップと、
第1の非公開乱数値(s)を応答一変数多項式(222)に代入することにより、共有される対称鍵(312,K’)を再構築するステップと
を備える。
15. 鍵共有開始デバイスと共有される対称鍵を生成するように構成される鍵共有応答方法であって、共有される対称鍵は、電子メッセージの対称暗号化及び/又は復号のためのものであり、当該鍵共有応答方法は、
鍵共有開始デバイスから、開始一変数多項式を受け取るステップと、
電子的形態で第2の非公開乱数値(r)を生成するステップと、
第2の非公開乱数値(r)を開始一変数多項式に代入することにより、共有される対称鍵(K)を計算するステップと、
第2の非公開乱数値(r)を公開セット(fi(r, ))の多項式に代入することによって得られる一変数多項式の全体を合計することにより、応答一変数多項式(222)を計算するステップと、
鍵共有開始デバイスに、応答一変数多項式(222)を送信するステップと、
を備える。
16. コンピュータ上で実行されると、第14項及び第15項のいずれか1つに記載のステップの全てを実行するように適合されるコンピュータプログラムコード手段を備えるコンピュータプログラム。
17. コンピュータ読取可能媒体上で具現化される第16項に記載のコンピュータプログラム。
本発明は、多くの異なる形式の実施形態を許容するが、本開示が、本発明の原理の例示と考えられるべきであり、図示及び説明される具体的な実施形態に本発明を限定するように意図されていないという理解の下、1つ以上の具体的な実施形態を図示し、本明細書において詳細に説明することにする。
図1は、鍵共有システム400の概略的なブロック図である。システム400は、鍵共有開始デバイス100及び鍵共有応答デバイス200を備える。鍵共有応答デバイス200は、応答デバイス200と呼ばれることもある。
鍵共有開始デバイス100は、鍵共有応答デバイスと共有される対称鍵を生成するよう構成される。共有される対称鍵は、例えばAES又はDESのようなブロック暗号を使用することにより、あるいはRC4のようなストリーム暗号を使用することにより、電子メッセージの対称暗号化及び/又は復号に使用され得る。共有される対称鍵は、例えばそれぞれハッシュ又はブロック暗号を使用するHMAC又はCBC−MAC等のようなメッセージ認証コードを生成及び/又は検証することにより、対称認証に使用され得る。
鍵共有開始デバイス100は、開始鍵データ生成器110、通信ユニット330及び対称鍵取得器310を備える。鍵共有開始デバイス100は、図1に示されるように、オプションの暗号化ユニット230も備える。暗号化ユニット230の代わりに、鍵共有開始デバイス100は、対称鍵を使用するために構成される何らかの他の暗号ユニットを備える可能性もある。
公開(public)及び非公開(private)という形容詞の使用は、理解を助けるものとして意図される:全ての公開データへのアクセスがあるとしても、少なくとも、アプリケーションのセキュリティを与えるか、あるいは鍵生成、暗号化及び復号に必要とされるリソースと比べて、過度に高リソースを必要としないことなく、非公開データを計算することはできない。しかしながら、「公開」は、対応するデータが必ずしも、鍵共有開始デバイス100及び応答デバイス200以外の誰かに利用可能にされることを意味しない。特に、公開セット122及び他の公開パラメータを、信頼されてないパーティから秘密に保つことは、セキュリティを向上させる。同様に、非公開データへのアクセスは、そのデータを生成したパーティに制限されることがあり、これもセキュリティを向上させる。しかしながら、信頼されているパーティは、非公開データへのアクセスも許容され得るので、非公開データへのアクセスはセキュリティを危険にさらす。
開始鍵データ生成器110は、「s」とも呼ばれる第1の非公開乱数値112を電子的形態で生成するように構成される。非公開乱数値112は、攻撃者についてのその予測値が、所定のセキュリティ限界(security bound)よりも小さいという意味でランダムである。例えば非公開乱数値112は、鍵共有開始デバイス100内に備えられる乱数生成器(別個には図示せず)を使用して、鍵共有開始デバイス100により選択され得る。乱数生成器は、真の乱数生成器であってもよく、疑似乱数生成器であってもよい。開始鍵データ生成器110は、第1の非公開乱数値112を、ストレージ、例えば電子メモリ内に記憶する。ストレージが、一時的なストレージ、例えばRAMのような揮発性メモリであり得る場合、システム430は一時鍵の生成に適している。
開始鍵データ生成器110は、式ではfi(,)としても示される、二変数多項式の公開セット122を電子的形態で取得するように構成される。以下で説明される実施形態は、セット122内の全ての二変数多項式が対称であると想定する。対称の多項式を使用することは幾つかの利点をもたらす。全ての利点のうち、第1に、これらの多項式は、より少ない係数しか指定する必要がなく、したがって使用するリソースがより少ないことである。第2に、これらの多項式は、非対称の多項式の鍵生成及び復号が、多項式の2つの変数のうちの第1の変数を代入に使用し、一方、暗号化が、多項式の2つの変数のうちの第2の変数を代入に使用するので、ブックキーピングを簡単にする。
対称二変数多項式は、プレースホルダとして2つの形式的変数を用いて、fi(x,y)として示されることもある。対称二変数多項式は、fi(x,y)=fi(y,x)を満たす。この要件は、係数に対する要件、例えば単項式xaybの係数が、単項式xbyaの形式と等しいという要件に変換できる。
公開セット122は、幾つかの方法で取得され得る。例えば公開セット122は、鍵共有開始デバイス100において使用されるべき暗号化を決定する基準によって示されることがある。この場合、異なるデバイス間で合意される共有鍵のみが異なるが、これは、これらの共有鍵が、異なる非公開乱数値を使用して生成されたからである。固定の公開セット122を使用することは、鍵共有開始デバイス100及び鍵共有応答デバイス200における通信及び/又はストレージのオーバーヘッドを低減する。
異なるデバイス100及び200の対して異なる公開セット122を使用することは、セキュリティを向上させる。例えば公開セット122は、公開セット122内の多項式の係数について乱数値を計算することにより、ランダムに生成され得る。公開セット122の他の側面、例えば公開セット122内の多項式の数、多項式の次数又は最大次数等のような側面を指示することは都合がよい。また、例えばストレージ要件を低減するために、多項式内の係数の一部がゼロであることを指示することもある。
公開セット122内の多項式の数は、適用に応じて異なるように選択され得る。公開セット122は、少なくとも1つの二変数多項式を備える。鍵共有開始デバイス100の実施形態において、公開セット122は1つの多項式からなる。公開セット122内に1つの多項式のみを持つことは、複雑性、ストレージ要件を低減し、スピードを向上させる。しかしながら、公開セット122内に1つの多項式しか持たないことは、公開セット122内で2つ以上の多項式を有することよりもセキュアでないと考えられる。というのも、そのような1つの多項式のシステムは、以下で説明される合計における追加的混合による利益を受けないからである。しかしながら、鍵生成、暗号化及び復号は正しく機能することになり、低い値及び/又は低いセキュリティの適用については十分にセキュアであると考えられる。
残りの部分では、公開セット122が、少なくとも2つの対称二変数多項式を備えると想定することにする。実施形態では、多項式の少なくとも2つ又は全てが異なり、これは、システムの分析を大幅に複雑にする。公開セット122は2つの等しい多項式を備え、これらの2つの多項式が異なる環にわたって評価される場合、合計ステップにおける混合による利益を受け得ることは必ずしも必要ではないが、この点については以下で更に説明することにする。実施形態において、公開セット122は、異なる環に関連付けられる少なくとも2つの等しい多項式を備える。2つ又はそれ以上の等しい多項式を有することにより、ストレージ要件を低減させる。
公開セット122内の多項式は異なる次数であってよい。対称二変数多項式の次数では、2つの変数のうちの一方の変数における多項式の次数を意味する。例えばx2y2+2xy+1=2の次数は、xの次数が2であるので、2と等しい。公開セット122内の多項式は対称なので、次数は、他の変数と同じものとなるであろう。
公開セット122内の多項式の次数は、適用に応じて異なるように選択され得る。公開セット122は、次数1又はそれより高い次数の少なくとも1つの対称二変数多項式を備える。実施形態において、公開セット122は、次数1の多項式のみを備える。公開セット122内に1次多項式のみを持つことは、複雑性、ストレージ要件を低減し、速度を向上させる。しかしながら、公開セット122内に次数1の多項式しか持たないことは、公開セット122内に次数が少なくとも2の少なくとも1つの多項式を有する場合よりもセキュアでないと考えられる。というのも、そのようなシステムはかなり線形性が低いからである。しかしながら、公開セット122内の複数の多項式が異なる環に対して評価される場合、公開セット122内の全ての多項式が線形である場合であっても、結果として得られる暗号化は線形でないことに留意されたい。実施形態において、公開セット122は、次数2又はそれ以上の次数の少なくとも1つの多項式、好ましくは2つの多項式を備える。しかしながら、次数1の多項式のみが使用され、低い値及び/又は低いセキュリティの適用にとって十分にセキュアであると考えられる場合は、鍵生成、暗号化及び復号は正しく機能するであろう。
公開セット122内に次数0の1つ以上の多項式を持つことは、より高い次数の多項式が十分なセキュリティを提供する限り、システムに影響を与えることはないであろう。
中程度のセキュリティの適用では、公開セット122は、次数2の2つの対称二変数多項式を備えることがあり、あるいはこれらの多項式からなることがある。より高いセキュリティの適用では、公開セット122は、1つが次数2と、もう1つが次数2より高い、例えば次数3という、2つの対称二変数多項式を備えることがあり、あるいはこれらの多項式からなることがある。多項式の数及び/又はその次数を増やすことにより、増加するリソース消費のコストにおけるセキュリティが更に向上するであろう。
一般的に言うと、鍵共有開始デバイス100及び鍵共有応答デバイス200が二変数多項式の公開セット122を得るには、3つのソースが存在する。第1の可能性は、鍵共有開始デバイス100及び鍵共有応答デバイス200が、予め格納された二変数多項式の公開セット122を有することである。例えば鍵共有開始デバイス100及び鍵共有応答デバイス200は、鍵共有を可能にするよう、格納された二変数多項式の公開セットを各デバイスが有する、デバイスの大きなセットからの2つのデバイスであってよい。この選択肢は、セキュリティは低いが、複雑性も低い。第2の選択肢は、鍵共有開始デバイス100と鍵共有応答デバイス200のうちの一方が、二変数多項式の公開セット122を計算し、これを、鍵共有開始デバイス100と鍵共有応答デバイス200のうちの他方に送信することである。鍵共有開始デバイス100が二変数多項式の公開セット122を計算する場合、このデバイスは、この公開セット122を、その最初のメッセージ(以下で説明する)とともに送信することができ、これにより鍵共有開始デバイス100と鍵共有応答デバイス200との間で交換されるメッセージの数を減らすことができる。第3の選択肢は、鍵共有開始デバイス100と鍵共有応答デバイス200との双方が、外部ソース、例えばいわゆる信頼性できる第三者機関(TTP)等の鍵共有サーバ450から二変数多項式の公開セット122を取得することである。二変数多項式の公開セット122がパブリックであるとしても、すなわち二変数多項式の公開セット122の情報では共有の対称鍵を取得することはできず、鍵共有開始デバイス100及び鍵共有応答デバイス200の一方は、他のパーティが二変数多項式の公開セット122を生成するのに十分なランダム性に対するアクセスを有することを疑うことがある。さらに、鍵共有サーバ450を使用することは、二変数多項式の公開セット122が必要とされる前に、例えばネットワーク負荷が低いときに、二変数多項式の公開セット122を取得することを可能にする。図1は、第2の選択肢、すなわち鍵共有サーバ450を用いない選択肢を図示している。二変数多項式の公開セット122の生成は、図1では別個に示されていない。
鍵共有開始デバイス100及び鍵共有応答デバイス200は、二変数多項式の公開セット122に加えて、公開データ、例えばグローバルモジュラス等を必要とすることがあり、これに関する更なる情報は以下で提供される。鍵共有開始デバイス100及び鍵共有応答デバイス200は、この情報を、これらのデバイスが二変数多項式の公開セット122を取得した同じソースから取得することができる。
図2aは、第3の選択肢、すなわち鍵共有サーバ450を伴うシステム430の実施形態を示している。システム430は、鍵共有開始デバイス100、鍵共有応答デバイス200及び鍵共有サーバ450を備える。鍵共有開始デバイス100及び鍵共有応答デバイス200は、二変数多項式の公開セット122を、鍵共有サーバ450から受け取ることにより取得するよう構成される。鍵共有サーバ450は、二変数多項式の公開セットを含む第1の電子メッセージ410を鍵共有開始デバイス100に送信し、同じ二変数多項式の公開セットを含む第2の電子メッセージ420を鍵共有応答デバイス200に送信するように構成される。システム400と430との双方において、鍵共有開始デバイス100及び鍵共有応答デバイス200は、共有鍵を取得した後、その鍵を暗号化及び/又は認証された電子通信440といった様々な暗号化の目的で使用することができる。
図2bは、鍵共有サーバ450と、鍵共有開始デバイス100と、鍵共有応答デバイス200との間で交換されるメッセージを示すシーケンス図である。図2bは、鍵共有サーバ450を伴わないシステムにも当てはまることがあり、このような場合、メッセージ451及び452は省略され、例えばメッセージ453が二変数多項式の公開セット122を含む。図2bでは、時間は下方向に向かって経過する。451及び452において示されているように、鍵共有サーバ450は、第1のメッセージ410及び第2のメッセージ420を送信する。次に、鍵共有開始デバイス100は、453において、開始一変数多項式124を送信する。454において、鍵共有応答デバイス200は、該デバイス自身の応答一変数多項式222を送信することによって応答し、これは潜在的に、鍵確認メッセージにより達成される。455において、鍵共有開始デバイス100及び鍵共有応答デバイス200は、共有鍵を使用して、暗号化及び/又は認証された電子通信をする。
図1を続けると、開始鍵データ生成器110は、第1の非公開乱数値112を公開セット122の多項式に代入することにより取得される一変数多項式の全体を合計することにより、開始一変数多項式124を計算するように構成される。例えば開始鍵データ生成器110は、第1の非公開乱数値112を公開セット122内の対称多項式の各々1つに代入し、その結果を減らすことができる。第1の非公開値112のような特定の値を、対称二変数多項式の2つの変数のうちの1つに代入するが、他の変数については特定の値を代入しないことにより、変数のうちの1つを除外して一変数多項式が得られる。
公開セット122内の代入の後に、結果を正準形式にすることは望ましいことである。例えば鍵共有開始デバイス100及び鍵共有応答デバイス200内において、及び一般的には鍵共有システム400、430を通して、一変数多項式について正準形式が使用され得る。代入の結果を、単項式の次数によって順序付けされる係数のリストとして、例えばアレイとして書くことは良い選択である。値が複数の表現を有する場合、正準の選択は係数にとっても好ましい。
開始一変数多項式124を取得する一方法は、次の通りである。
1.公開セット122内の各多項式について:
a.2つの変数のうちの一方について、第1の非公開乱数値112を多項式に代入し、
b.結果を正準形式にして多項式に関連付けられる環に簡約し、したがって一変数多項式を取得し、
2.1bで取得された一変数多項式を全て、更なる環内に合計して、開始一変数多項式124を取得する
これらのステップは、大部分において組み合されてよい。
開始一変数多項式124を、正準形式に従って係数のリストとして表すこともできる。多くの適用にとって適切な形式は、係数に関連付けられる単項式の次数によって順序付けられるアレイ内に係数をリストすることである。すなわち、一変数多項式を、単項式に関連付けられる係数を有する単項式の合計と見なすことができる。再び、可能性のある式を含む例を下記に提供する。
通信ユニット330は、開始一変数多項式124を鍵共有応答デバイス200に送信するために構成される。鍵共有応答デバイス200は、開始一変数多項式124を受け取るように構成される通信ユニット340を備える。
通信ユニット330は、通信ユニット340との間で送受信をするように構成され、通信ユニット340は、通信ユニット330との間で送受信をするように構成される。通信は直接であっても間接的であってもよい。多様な電子通信ユニットが適している。例えば通信ユニット330及び/又は通信ユニット340は、無線ユニット、例えばWi−Fi、NFC又はBluetooth(登録商標)ユニットであってよい。例えば通信ユニット330及び/又は通信ユニット340は、例えばEthernet(登録商標)を使用する有線であってもよい。
通信ユニット330は、応答鍵データ生成器220からメッセージ、応答一変数多項式222を受け取るように構成され、鍵共有開始デバイス100は、応答一変数多項式222を使用して共有の対称鍵を取得することになる。読みやすさを向上させるため、鍵共有応答デバイス200を説明するまで、鍵共有開始デバイス100についての更なる説明を後に回すことにする。
鍵共有応答デバイス200は、鍵共有開始デバイス100と共有される対称鍵を生成するように構成される。鍵共有開始デバイス100と鍵共有応答デバイス200との間の通信は、鍵共有開始デバイス100によって、例えば開始一変数多項式124を含むメッセージを送信することによって開始されたと想定する。しかしながら、鍵共有応答デバイス200は、低リソース集約デバイスであり得るので、鍵共有応答デバイス200は、鍵共有開始デバイス100にプロトコルを開始させる、すなわちメッセージ453を送信させる、要求メッセージを最初に送ってもよい。
鍵共有応答デバイス200は、通信ユニット340を備え、通信ユニット340は、鍵共有開始デバイス100によって生成された開始一変数多項式124を受け取るように構成される。
鍵共有応答デバイス200は、応答鍵データ生成器220を備える。応答鍵データ生成器220は、開始鍵データ生成器110と同じタイプのデバイスであってよい。すなわち、応答鍵データ生成器220は、「r」と呼ばれる第2の非公開乱数値212を電子的形態で生成し;二変数多項式の公開セット122、fiを電子的形態で取得し;第2の非公開乱数値rを公開セット122の多項式fi(r, )に代入することにより取得される一変数多項式の全体を合計することによって、応答一変数多項式222を計算するように構成される。
応答鍵データ生成器220と開始鍵データ生成器110との間の違は、応答鍵データ生成器220が、二変数多項式の公開セット122を、鍵共有開始デバイス100から受け取ることにより取得することが可能であることである。鍵共有開始デバイス100は、二変数多項式の公開セット122を、自身で生成することにより、あるいはまた別のソース、例えば鍵共有サーバ450から取得することにより、得ることができる。
応答鍵データ生成器220により応答一変数多項式222を計算することは、非公開乱数値112の代わりに第2の非公開乱数値212を使用すること以外は、開始一変数多項式124を計算する場合と同じ実装を使用することができる。
応答鍵データ生成器220は、応答一変数多項式を、正準形式の応答一変数多項式の係数のリストとして表すことができる。開始一変数多項式124に使用されたものと同じタイプの正準形式を、応答一変数多項式222に使用することができる。特に、応答一変数多項式222を、多項式の次数によってソートされる応答一変数多項式222の単項式の係数のリストとして表すことができる。応答一変数多項式222又は開始一変数多項式124を、各ペアが次数と単項式の係数を備えるペアのリストとして表してもよい。この表現では、ゼロ係数の単項式は表す必要がない。後者の表現は、公開セット122内のわずかな多項式にも適している。
通信ユニット340は、鍵共有開始デバイス100から受け取ったメッセージに応答して、応答一変数多項式222を鍵共有開始デバイス100に送信するように構成される。
鍵共有応答デバイス200は、第2の非公開乱数値212,rを、開始一変数多項式に代入することにより共有の対称鍵214,Kを計算するために構成される、対称鍵取得器210を備える。第2の非公開乱数値212は、rとも呼ばれる。第2の非公開乱数値212は、暗号化されたメッセージの攻撃者についての予測可能性が、セキュリティ限界よりも小さいという意味でランダムである。好ましくは、異なる第2の非公開乱数値212は、生成される各々の新たな共有鍵に使用されるが、これは、鍵共有開始デバイス100及び鍵共有応答デバイス200のうちの一方のパーティが新たな乱数を使用し、その結果新たな共有鍵がもたらされることになる限りは、必ずしも必要ではない。対称鍵取得器210は、第2の非公開乱数値212を、鍵共有開始デバイス100から通信ユニット340を通して受け取られる開始一変数多項式124に代入することにより、対称鍵214を取得するように構成される。
第2の非公開乱数値212は秘密である、すなわち、少なくとも、鍵214で暗号化される通信のコンテンツについて信頼されていないパーティに対して秘密である。鍵共有開始デバイス100は、第2の非公開乱数値212にアクセスする必要はない。応答デバイス200の実施形態において、第2の非公開乱数値212は、鍵214及び応答一変数多項式222を生成した後、例えばこれらの生成後すぐに削除される。
対称鍵214を取得することは、代入後に更なるステップも伴うことがある。例えばハッシュ関数が、対称鍵214を取得する前に適用されることがある、例えば第2の非公開乱数値212,rを開始一変数多項式及びリダクションステップ(reduction step)に代入した結果に適用されることがある。これは、対称鍵214におけるエントロピーをスムーズにし、例えば第2の非公開乱数値212の分散が均一でないか、均一であるように知られていない場合にセキュリティを高めることができる。また、対称鍵214は、ある鍵長まで切り捨てられることがある。例えばあるものは、代入及び切捨ての結果のb個の最下位ビットをとることができる。
応答デバイス200、例えば対称鍵取得器210は、鍵共有開始デバイス100によって再構築される再構築対称鍵312(K’)が対称鍵214と等しいかどうかを検証するために、対称鍵214(K)から、鍵確認データを計算するように構成され得る。鍵確認データは、様々な形式をとることができる。例えば鍵確認データは、対称鍵214に対する暗号ハッシュ、例えばsha−256であってよい。再構築鍵312が対称鍵214と等しいかどうかを検証するために、鍵共有開始デバイス100は、再構築対称鍵213に対してハッシュを計算し、これらのハッシュが同じであるかどうかを検証することができる。鍵確認データが入力に対する暗号を備えてもよい。再構築対称鍵312が対称鍵214と等しいどうかを検証するために、鍵共有開始デバイス100は、再構築対称鍵312を用いて入力を暗号化し、暗号が同じであるかどうかを検証してもよく、あるいは現在の入力を復号して、これが入力と等しいかどうかを検証してもよい。入力は鍵確認データの一部であってよく、例えば入力はノンスであってもよく、あるいは乱数でもよい。また、入力は固定であってもよく、後者の場合、入力は、鍵確認データの一部である必要はない。
通信ユニット340は、応答一変数多項式222を鍵共有開始デバイス100に送信するように構成され、さらに、鍵確認データを鍵共有開始デバイス100に送信してもよい。パラメータの幾つかの選択のために、共有鍵が正しく生成されることになる必要がある場合に、鍵確認データが必要とされる。
鍵共有応答デバイス200は、オプションの復号ユニット320を備える。復号ユニット320は、鍵共有開始デバイス100が再構築対称鍵312を使用して暗号化した暗号化メッセージを復号するように構成される。復号ユニット320は、暗号化ユニット230により使用された暗号化アルゴリズムに対応する復号アルゴリズムを使用するように構成される。例えばメッセージがAESを使用して暗号化されると、復号ユニット320はAESを使用して復号することになる。使用する暗号化及び復号アルゴリズムは固定であってよい。例えば応答デバイス200及び鍵共有開始デバイス100は、常にAESを使用するように構成され得る。しかし、使用する暗号化及び復号アルゴリズムは構成可能であってもよい。鍵共有応答デバイス200は、復号ユニット320の他に、対称鍵214を使用する他の又は追加の暗号ユニットを備えてもよい。鍵共有応答デバイス200は、暗号化及び/又は認証された電子通信440のために214を使用し得る。
鍵共有開始デバイス100について続けると、通信ユニット330は、応答一変数多項式222及び潜在的には鍵確認データを鍵共有応答デバイス200から受け取るように構成される。対称鍵取得器310は、再構築対称鍵312を取得するように構成される。再構築対称鍵312は、対称鍵取得器210により得られる対称鍵214の対応する応答一変数多項式222に基づく再構築である。
対称鍵取得器310は、第1の非公開乱数値112(s)を応答一変数多項式222に代入することにより、再構築対称鍵312を再構築するように構成される。このステップは、同じ暗号化鍵を生じる可能性が高いであろう。残念ながら、第1の非公開乱数値112を応答一変数多項式222に代入することから、対称鍵214が直接得られることは保証されない。この可能性は、公開セット122内の多項式の数、その次数及び元になる環に依存する。この可能性は、公開セット122を表す一般式に第1の非公開乱数値112を代入し、同じである再構築鍵312及び対称鍵214をゆがめる繰上げ(carry)の可能性を計算することにより、計算され得る。
そのような可能性及び適用に応じて、鍵確認データの重要性は異なる。幾つかの適用は、偶然に鍵共有開始デバイス100及び鍵共有応答デバイス200が最終的に同じ鍵に行きつかず、したがって相互のメッセージを復号することができないことがあることを甘受することがある。必要な場合、鍵共有開始デバイス100は、応答デバイス200に、異なる第2の非公開乱数値212で取得されるが、二変数多項式の新たな公開セット122を送信するよう要求することができる。
しかしながら、鍵共有開始デバイス100が、複数の鍵を構築し、鍵確認データを使用してこれらの複数の鍵を検証することにより、これらの複数の鍵から再構築対称鍵312を決定することも可能である。鍵確認データを使用して、複数の鍵から最大でも1つの鍵を正しく検証することができる。
構築された鍵の数と、システムについて行われる選択、特に公開セット122及びその基礎をなす環について行われる選択は、鍵共有開始デバイス100が対称鍵214と等しい鍵を構築することを失敗する確率に影響する。必要であればこの確率をゼロまで減らすことができることを以下に示す。
複数の構築鍵を生成することは、好ましくは反復して行われる。例えば対称鍵取得器310は、鍵検索のために次のように構成され得る:
1.非公開乱数値(s)を応答一変数多項式に代入した結果から、第1の再構築鍵(K’)を導出し、
2.鍵確認データから、第1の再構築鍵(K’)が対称鍵214(K)と等しいかどうかを判断する。
3.等しい場合は、鍵検索を終了し、
4.更なる再構築鍵を第1の再構築鍵(K’)から生成する。
5.ステップ2に戻る。
この鍵検索の実装は、for-nextループやwhileループ、do-until等のような様々なプログラミング手段を使用して行われ得る。ステップ3は、タイムアウトした場合にも終了してもよい。
興味深いことに、対称鍵取得器210及び対称鍵取得器310のいずれも、鍵214及び312を生成するために公開セット122にアクセスする必要がない。これは、鍵共有開始デバイス100が、開始一変数多項式124を生成した後は二変数多項式の公開セット122を破棄、例えば削除してもよいことを意味する。鍵共有応答デバイス200は、応答一変数多項式222を生成した後、二変数多項式の公開セット122を破棄してもよい。この削除は、対称鍵取得器310及び/又は対称鍵取得器210がそれぞれ鍵312、213を生成する前に行われてよい。
暗号化ユニット230は、再構築対称鍵312を用いてメッセージを暗号化して、暗号化メッセージを得るように構成され得る。暗号化ユニット230は、任意の対称暗号化アルゴリズムにより構成され得る。例えば暗号化ユニット230は、CBC又はCTRといった暗号化用の適切な「オペレーションのモード」を使用するAES、CAST等のようなブロック暗号を使用することができる。平文メッセージが、対称鍵214よりも小さい又は等しいビットサイズを有することがわかる場合、暗号化ユニット230又は復号ユニット320は、メッセージに対称鍵214を加算又はXORして、これを暗号化又は復号化することができる。暗号化ユニット230の代わりに、又はこれに加えて、認証/検証及び復号ユニットのような他の暗号化ユニットを使用してもよい。
鍵共有応答デバイス200は、鍵共有開始デバイス100と同様であるが、重要な相違点が2つある:鍵共有応答デバイス200の鍵生成部は、より簡単であり、鍵共有応答デバイス200は、生成した鍵が、鍵共有開始デバイス100で生成された鍵と等しくない可能性について説明する必要がなく;さらに、鍵共有開始デバイス100は、鍵共有応答デバイス200との通信の前に開始一変数多項式124を計算し、その後に再構築対称鍵312を計算するが、鍵共有応答デバイス200は、鍵共有開始デバイス100からの受信と鍵共有開始デバイス100への送信の間に、応答一変数多項式222及び開始一変数多項式124を計算する。
鍵共有開始デバイス100及び鍵共有応答デバイス200は、典型的には異なるデバイスであり、潜在的には地理的に分散される。鍵共有応答デバイス200及び鍵共有開始デバイス100は、例えばインターネット等の通信ネットワークを介して相互に通信することができる。鍵共有開始デバイス100及び鍵共有応答デバイス200は、通信ネットワークを使用して、開始一変数多項式124、応答一変数多項式222及び/又は二変数多項式122の公開セットを分散させることができるだけでなく、例えば有線接続や、USBスティック等のようなポータブルメモリデバイスを使用する移送を用いてもよい。
興味深いことに、第1の非公開乱数値112、開始一変数多項式124、対称鍵214、応答一変数多項式222及び再構築対称鍵312の計算の基礎をなす演算システムは、幾つかの方法で選択され得る。例えば二変数及び一変数多項式の係数と、第1の非公開乱数値112及び第2の非公開乱数値212を含む値は、いわゆる可換環から選択され得る。可換環は、値のセットが加算及び乗算と組み合されるという数学的概念である。
公開セット122が複数の多項式を備える場合、異なる可換環を公開セット122の各多項式に関連付けることにより、向上した混合効果と一方向性(one-way-ness)の双方が得られることを本発明者らは見抜いた。開始鍵データ生成器110及び応答鍵データ生成器220は、それぞれ、非公開乱数値112又は第2の非公開乱数値212を公開セット122の多項式の各々に代入し、これに関連付けられる環内の各多項式を簡約するように構成される。好ましくは、各多項式は正準形式にされる。
数式形式では、開始一変数多項式124及び応答一変数多項式222の生成は、第1の非公開乱数値112及び第2の非公開乱数値212について、それぞれ次のように表される:
これらの式において、多項式f
i(,)は環R
iに関連付けられる。大括弧は、示される環の正準形式へのリダクションを示す。それ自体の合計は、グローバル環R
0(数式中では示さず)で行われ得る。また、対称鍵214及び再構築対称鍵312の計算もグローバル環で行われ;潜在的には、続いて、鍵長(b)(ビットで)までの切捨てのような追加の処理が行われ得る。公開セット122の多項式に関連付けられる各ローカル環について、合計に先立って、環の要素をグローバル環にマッピングするためのマッピング関数が存在し得る。多くの実施形態において、マッピングは自然マッピング(natural mapping)であり;ローカル環内の値を表すのに使用されるビットパターンが、同じビットパターンを有するグローバル環の値にマップされ;言い換えると、マッピングを行うために実際の演算動作を行う必要はない。リダクションを適用することは、「リダクション関数」とも呼ばれる。
公開セット122内の多項式に関連付けられる環のうちの1つとして、あるいはグローバル環として使用される環は、例えばシステム400において次のように実装される。環の値は、電子デバイス100及び200においてデジタル形式で表され、これらの値に対する加算及び乗算演算はデジタルアルゴリズムとして実装される。アルゴリズムは、ソフトウェアで実装されてもハードウェアで実装されてもよい。これらの演算のハードウェア表現はしばしば、潜在的にはソフトウェアとの組合せで使用される。環は、環の値を一意の形式で表すための正準化アルゴリズムを有することがある。
デジタル形式で表すことができる多くの可換環が存在する。2つの重要な例は、多項式環と整数環である。以下に整数環に基づく実施例を与えるが、整数環の場合、各R
iは、
として、すなわち、q
iを法とする整数の可換環として選択され、各R
0は、
として、すなわちNを法とする整数の可換環として選択される。これらの環は、デジタルで表される整数のように、例えばそれぞれ0からq
i−1又は0からN−1までの整数のように、これらの値のデジタル表現を許容する。多項式は、この形式で表される値のアレイとして表されることがある。加算アルゴリズムは、整数加算のハードウェア実装として実装されてよく、その後にモジュラスを法とするリダクションのソフトウェア実装が続く。乗算は、整数乗算のハードウェア実装として実装されてよく、その後にモジュラスを法とするリダクションのソフトウェア実装が続く。多くの可換環及びデジタル表現それ自体は、その技術分野において公知である。本明細書で説明される鍵共有システムを取得するためのそのようなデジタル表現の適用は公知ではない。
鍵共有システム400の実施形態では、公開グローバルリダクション整数(N)が公開セットに関連付けられ、公開個別リダクション整数(qi)が公開セットの各多項式に関連付けられる。関連する情報が公開セット122内に含まれてよく、あるいは固定であってもよい。実施形態では、公開グローバルリダクション整数は固定であり、公開セット内に含まれる必要はないが、公開個別リダクション整数(qi)は固定ではなく、公開セット122とともに生成され得る。これらの数は、セキュリティ要件や正確な復号の可能性等に応じて、ランダムに選択され得る。これらの数の可能性のある選択肢を以下に与える。公開個別リダクション整数のうちの少なくとも2つは異なり、好ましくは公開個別リダクション整数の全てが異なる。
この実施形態において、開始鍵データ生成器110は、非公開乱数値112を、0と公開グローバルリダクション整数(N)との間の整数として生成するように構成される。応答鍵データ生成器220は、第2の非公開乱数値212を、0と公開グローバルリダクション整数(N)との間の整数として生成するように構成される。
この実施形態において、開始鍵データ生成器110は、公開セット122内の多項式を、整数係数を有する対称二変数多項式(fi(,))として取得するように構成される。公開セット122内の多項式は、関連する公開リダクション整数を法として簡約した係数、例えばより大きいか負であり得る係数を有することを必要とされない。しかしながら、実装には、公開セット122内の多項式が、例えば0と、関連する公開リダクション整数(qi)マイナス1(これを含む)との間の係数を有する正準形式であることが都合がよい。
この実施形態において、開始鍵データ生成器110は、開始一変数多項式124を、整数係数を有する一変数多項式として生成するよう構成される。応答鍵データ生成器220は、応答一変数多項式222を、整数係数を有する一変数多項式として生成するよう構成される。
例えば開始鍵データ生成器110は:
1.下記2.により一変数多項式のセットを取得することと、
2.公開セットの各多項式について
a.非公開乱数(s)を、その多項式に代入し(fi(s, ))、その多項式に関連付けられる公開個別リダクション整数(qi)を法として簡約することと、
3.一変数多項式のセットを合計して、グローバルリダクション整数(N)を簡約することと、
によって、開始一変数多項式を生成するように構成され得る。
応答一変数多項式222を生成するように応答鍵データ生成器220を構成することは、非公開乱数値112の代わりに第2の非公開乱数値212を使用することを除いて、同じように行われ得る。
対称鍵取得器210は、第2の非公開乱数値(r)を開始一変数多項式に代入し、その結果のうち少なくとも鍵長の数(b)のビットをとって、グローバルリダクション整数(N)を法として簡約することにより、対称鍵(K)を計算するように構成される。
例として、公開グローバルリダクション整数(N)は2(α+1)b-1より大きい、かつ/又は2(α+1)bより小さい奇数として選択され、この場合、αは、公開セット内の多項式の2つの変数のうちの1つの変数における最も高い次数であり、bは鍵長を表す。各公開個別リダクション整数(qi)について、公開グローバルリダクション整数(N)マイナス(引く)公開個別リダクション整数(qi)は、2の鍵長乗の倍数(qi=N−βi2b,1≦βi<2b)であり、2の鍵長の2倍乗よりも小さい。このパラメータの特定の選択は、適切な混合と、復号デバイスが鍵を再構築することが可能な高確率との間のトレードオフである。他の選択も可能である。
この場合、対称鍵214(K)を計算することは、2の鍵長乗(2b)を法として簡約すること、すなわち、代入結果の最後のbビットのみをとるように切り捨てることを更に備える。
対称鍵取得器310は、非公開乱数値112(s)を応答一変数多項式に代入し、公開グローバルリダクション整数(N)を法として解き、2の鍵長乗(2b)を法として簡約することにより、対称鍵(K)を再構築するように構成されてもよい。
この実施形態において、対称鍵取得器310における代入ステップのみから得られる鍵は、まだ対称鍵214と等しくない可能性がある。再構築鍵が、暗号化に使用された鍵と等しいか否かの検出は、鍵共有応答デバイス200から得られる鍵確認データを使用することがある。鍵確認は、暗黙的であってもよく、例えば異なる鍵で復号するときには取得されない特定の形式のメッセージを受け取ることがある。
鍵Kの鍵確認データ(例えばハッシュ関数Hについて、H(K)がH(K’)と異なる)場合、鍵共有開始デバイス100は、依然として正しい鍵を取得し得る。そのようにするために、対称鍵取得器310は、K’から、範囲jについての値
及びその鍵確認値(例えばハッシュ値)を計算する。多くてもこれらの鍵確認値のうちの1つが鍵確認値、例えばハッシュ値H(K)に等しい。そのインデックスjが見つかる場合、対称鍵取得器310は、値jを使用して、
としてKを計算する。ここで、角括弧はモジュロ演算を示している。そのようなjが見つからない場合、鍵共有開始デバイス100はデータを復号することができない。後者の場合、鍵共有開始デバイス100は、幾つかの選択肢を有し、例えばエラーメッセージを生成し、異なる第2の非公開乱数値212から生成される二変数多項式122の新たな公開セットを要求すること等ができる。興味深いことに、非公開乱数値112は、最初のK’を計算するためにのみ必要とされ、他の計算は、公開グローバルリダクション整数(N)を使用する。
下記のアルゴリズムを使用することができる。対称鍵取得器310は、鍵検索のために次のように構成され得る:
1.非公開乱数(s)を応答一変数多項式に代入した結果から、第1の再構築鍵(K’)を導出し、
2.第1の再構築鍵(K’)が対称鍵214(K)に等しいかどうかを、鍵確認データから判断する。
3.等しい場合、鍵検索を終了し、
4.第1の再構築鍵から、新たなゼロ以外の値jについて
を計算することにより、更なる再構築鍵を生成する。
5.ステップ2に行く。
ステップ3はタイムアウトの場合も終了してよい。例えば一部のリソース制約デバイスでは、鍵の再構築に費やすことができる時間の量は限られる。
典型的に、デバイス100及び200はそれぞれ、デバイスに格納された適切なソフトウェアを実行するマイクロプロセッサ(図示せず)を備え、そのようなデバイスでは、例えばソフトウェアがダウンロードされ、デバイスの、例えばRAM(図示せず)又はROM等の対応するメモリ内に格納され得る。
下記にシステムの実施形態に数学的な説明を与える。最初にセキュリティパラメータ:すなわち、ビット長b、公開セット内の多項式の数m、そして公開セット内の最大次数αを選択する。ビット長bは、対称暗号化の鍵長を決定する。他の2つのパラメータが増加すると、システムの複雑性が増加する。これらの3つのパラメータは固定であってよく、例えばシステムアーチファクトによって決定されてよく、あるいは鍵共有開始デバイス100によって選択されてもよい。さらに、鍵共有開始デバイス100は、区間(2
(α+1)b-1,2
(α+1)b)の奇数N、1≦β
i<2
bを満たす整数β
iによる形式q
i=N−β
i2
bのm個の整数qi、1≦i≦m、指数αのm個の対称二変数多項式:
を選択する。
対称性により、指定する必要があるのは、これらの(f
i)
jk、ただしj≦kのみである。鍵共有開始デバイス100は、範囲1≦s<2
bで秘密の非公開整数s(112)を選択し、(α+1)の数:
を計算することにより、公開一変数多項式125を計算する。
鍵共有開始デバイス100によって生成される上記のパラメータは全て、sを除いて公開データであり、鍵共有応答デバイス200に通信され得る。この特定の実施形態において、鍵共有開始デバイス100はハッシュ関数Hも指定する。応答デバイス200は、範囲1≦r<2
bで乱数rを選択し、(α+1)の数
並びに数
及びKのハッシュ,H(K)のような鍵確認データを計算することにより、応答一変数多項式222を計算する。応答デバイス200はb
k並びにH(K)を伝送する。鍵共有応答デバイス200は、応答一変数多項式222を、例えば数
のように、対称鍵214により暗号化されたメッセージ(M)とともに送信することができ、この場合、Mは、鍵共有応答デバイス200から鍵共有開始デバイス100に送信されるべきbビットの平文メッセージである。Kを加算する代わりに、応答デバイス200は他の暗号化アルゴリズムを使用して、例えばブロック暗号を使用して、MをKで暗号化することによりCを取得してもよい。鍵共有開始デバイス100は、
及びハッシュ値
を計算する。
鍵共有開始デバイス100は、H
j'=H(K)となるj’を見つけ、
としてKを取り出す。ここで、鍵共有開始デバイス100は、送信されたメッセージMを
として取り出す。Kを減じる代わりに、鍵共有開始デバイス100は、暗号化アルゴリズムに対応する他の復号アルゴリズムを使用して、KによるMの復号によりMを取得してもよい。
スキームのセキュリティは、係数αk及び(fi)jkを所与とすると、sを見つける困難性に依存する。m>1及びα>1について、これを実施するための既知の方法は、全ての可能性のあるsの値を試してみる方法しかなく、この方法はbが十分に大きい場合、実現不可能である。b=128又はそれ以上の値は、全ての可能性のあるsの値を試すことが実現不可能であるほど大きい、すなわち、総当たり攻撃は阻止される。しかしながら、一部の適用は完全な実現不可能性を必要としない。この場合、b=48又はそれ以上の値で既に十分であり得る。
m=1では、係数α
kは、環
における多項式である。そのようなシステムは、おそらくはルート発見アルゴリズム(root finding algorithm)を適合させることにより攻撃され得る。これは当然容易なタスクではないが、全てのセキュリティアプリケーションにとって、m>1を選択することが推奨される。しかしながら、m=1は、例えばリソースの使用に対してセキュリティをトレードオフしなければならない、低い値のシステムに使用され得るワーキングシステムを生じることになる。
b、m、α及びハッシュ関数の指定は、例えばこれらがシステム内で固定の場合は必要とされない。
上記の実施形態において、K及びMの加算は、暗号化として使用することができる。これは、例えばコマンドメッセージのようなシステムが比較的短いメッセージに適用される場合に適した選択である。この構造を使用して第2の対称鍵を暗号化してもよく、この第2の対称鍵は次いで、Mを暗号化するのに使用される。上記の構造は、他の対称暗号化とともに使用されてもよく、例えばAES−128といったAESのようなブロック暗号とともに使用されてもよい。上記の説明は幾つかの方法で変更されてもよい。可能な複数の変形を以下で説明する。
例えば公開セットと開始及び応答一変数多項式のサイズは、全ての多項式の係数(fi)jkが、j=k=αのときを除いてゼロであることを要する場合、大幅に減少させることができる。これは、二変数多項式の公開セット122のサイズも減少させるが、更に重要なことには、これは、応答デバイス200が伝送する必要があるのは、単一のbk、すなわちbαのみであり、これにより暗号テキストのサイズが(α+4)bビットまで減少することを示唆する。
Kを所与とするとき、秘密鍵sを見つける際の問題は単一の式:
からsを簡約することまで減る。これは、m>1、α>1の場合は、依然として難しい問題である。
メッセージMが均等に分配されていない場合も、Kのほぼ均一の分配は、確実にCが(ほとんど)均一に分配されるようにするので、Cを
として形成することは、良い選択である。他の可能な選択肢は、任意の1パラメータセットの可逆関数について、
を含み、ここで、例えば
奇数A、Bを所与として
F
K(M)=K・M、この場合、応答デバイス200は、K(s,r)≠0となるように乱数rをとる必要がある。
F
k(M)=K+M
鍵共有システム400及びシステム430は、「環」における演算としても知られる乗法及び加法を実行するための代替的な演算システムを用いて構成されてもよい。可換環が好ましいと考えられる。環は一般的に適用可能であるが、読みやすさのために、以下では多項式環の例を与える。多項式環は、整数環に類似し、可換環の例である。上述のシステムとの重大な相違は、多項式の係数、第2の非公開乱数値及び非公開乱数値が、様々な多項式環からの要素であることである。我々は、使用される多項式環の全ての形式的な変数を示すのに「t」を使用することにする。
多項式環自体は公知であるので、以下では簡単な概要のみを与える。環Z
p[t]、すなわち、Z
p=Z/(pZ);{0,1,…,p-1}において係数を有する変数tの多項式の環を考える。この環の元(element)は、多項式
であり、ここで、全てのa
k∈Z
p及び級数は終結し;k>Kについての全ての係数がa
k=0となるようなKが存在する。deg(A(t))によって示されるA(t)の次数は、全てk>Kについてa
K≠0かつa
k=0となるようなKの値である。これは、ゼロ多項式を除いて、Z
p[t]の全ての要素の次数を定義する。次数「0」、すなわちゼロ多項式は未定義である。
Z
p[t]における2つの多項式の加算を、
として定義することができ、ここで<・>
pは、引数(argument)が法pに対して評価され、Z
p内にあることを示す。A(t)+B(t)≠0の非ゼロの多項式A(t)及びB(t)について、deg A(t)+B(t)≦max(deg (A(t))+deg(B(t)))と考えられることに留意されたい。
Z
p[t]における2つの多項式の乗算は、
として定義される。Pが素数(prime)である場合、非ゼロの多項式A(t)及びB(t)について、degA(t)+B(t)=deg(A(t))+deg(B(t))と考えられることに留意されたい。Pが素数でない場合、これは必ずしも真ではない。我々は、以下ではpを素数と仮定することにする。
(素数pについて)Q(t)をZp[t]の非ゼロの多項式とする。次いで、任意の多項式A(t)∈Z p[t]を、deg(R(t))<deg(Q(t))ではA(t)=P(t)・Q(t)+R(t)として一意に書くことができる。ここで、P(t)は、Q(t)によるA(t)の割り算の結果であり、R(t)は剰余である。この剰余は、<A(t)>Q(t)又はQ(t)を法として簡約したA(t)によって示される。環R(Q(t),p):=Zp[t]/(Q(t)Zp[t])は、ゼロ多項式と、deg(Q(t))より小さい次数のZpの係数のtの全ての多項式とのセットとして定義される。2つのそのような多項式の加算は、Zp[t]における加算と同じであり、乗算は、Zp[t]における乗算と同じであり、その後にQ(t)を法とするリダクションが続く。
非負の整数と、p変数の多項式との間に自然マッピングが存在する:多項式の係数は、整数のp変数の展開式(p-ary expansion)の桁に対応し、したがって多項式に対応する整数は、t=pを多項式に代入し、これをZ:
において評価することにより得られる。このマッピングは、Qを法とする整数リダクションと、多項式Q(t)を法とするリダクションの等価性を示唆するものではないことに留意されたい。例えばZ
2[t]では、1+t
2=(1+t)(1+t)と考えられ、したがって<1+t
2>
1+t=0であるが、<1+2
2>
1+2=<5>
3=2≠0である。
環R(Q(t),p)の元のセットは、Q(t)の次数のみに依存する。多項式の係数はZpにあるが、Q(t)とは独立であるので、これらの元の加算はpに依存する。一方、その乗算の結果は、p及びQ(t)に依存する。
環R(Q(t),p)において定義済みの乗算及び加算を持つことにより、この環における多項式を定義することが可能になる:これらの引数は、この環の元であり、これらは、環の値による係数(ring-valued coefficient)を持ち、この環内の値をとる。R(Q(t),p)の次数αの二変数多項式F(・,・)を:
と書くことができ、ここで(Z
p[t]の)合計を、リダクション操作の外でとることがきる。異なる環R(Q
1(t),p)、R(Q
2(t),p)及びR(Q
m(t),p)における多項式を(Z
p[t]で)加算することもできる:
以下の実施形態では、ビット指向デバイスにおける実装を容易にするために、p=2を使用する。しかしながら、他のpの値、特に素数の値も可能であるので、これは限定ではない。例えば251及び65521は、係数がそれぞれ1バイト及び2バイトで適合するので適切な選択である。
実施形態において、開始鍵データ生成器110は、電子的形態で以下のパラメータを選択するか、他の方法で取得するように構成される:
−Mとして示される、公開グローバルリダクション多項式次数;
−鍵のサイズ(Bビット)
−整数α、好ましくはα>1。
−非公開乱数値及び第2の非公開乱数値のサイズを決定するセキュリティパラメータ「b」
−整数m、好ましくはm≧2;
パラメータMについての良い選択は、M=2α(b−1)+B−1及びb=Bである。システム設計者は、これらのパラメータを選択して、これらを鍵共有開始デバイス100に送信することができる。さらに、開始鍵データ生成器110は、電子的形態で以下のパラメータを選択するか、他の方法で取得するように構成される:
−公開グローバルリダクション多項式N(t)∈Z2[t]。その次数deg(N(t))はMに等しい;
−公開個別リダクション多項式Q1(t),…,Qm(t)
−2つの変数の各々における次数αの二変数多項式Fi(,)の公開セット。各R(Qi(t),2)において、係数Fi,j,k(t)=Fi,k,j(t)、1≦i≦m、0≦j,k≦αの二変数多項式Fi(・,・)。
鍵のサイズ(B)及びパラメータサイズ(b)は、異なるものとすることができる。これらを等しく選択することは任意選択である。
公開セット内の各多項式と、公開個別リダクション多項式Q
i(t)が関連付けられ、またその反対もある。公開セット内の各特定の多項式F
i(,)は、その特定の多項式F
i(,)に関連付けられる公開個別リダクション多項式Q
i(t)を法とする多項式環からとられる係数F
i,j,k(t)を有する二変数多項式である。多項式は、
として示すことができる。
公開個別リダクション多項式Qi(t)を選択する良い方法は、次の通りである:最初に、次数Bの多項式r(t)∈Z2[t]を選択し;次いで、全てがM−α(b−1)−Bにほぼ等しい次数を有し、かつ少なくとも1つ(好ましくは全て)がM−2α(b−1)−Bより大きい次数を有する、m個の多項式β1(t),…, βm(t)∈Z2[t]を選択し;次いで、m個の多項式Q1(t),…,Qm(t)を定義し、ここで、Qi(t)=N(t)+βi(t)r(t)である。リダクション多項式についてのこの選択は、鍵共有開始デバイス100の対称鍵取得器が、鍵共有応答デバイスにより使用されるものと同じ対称鍵を、非公開乱数値を応答一変数多項式に代入することから直接的に取得することを保証する。公開個別リダクション多項式の次数の最も低い限度は、−1(マイナス1)としてとることができることに留意されたい。−1より大きい次数は、次数が少なくとも0であるべきことを意味する。次数は、最大でもα(b−1)−1としなければならない。実施形態において、公開個別リダクション多項式の少なくとも1つ、あるいは全てが少なくとも2の次数を有する。
ローカルリダクション多項式は、Qi(t)=N(t)−βi(t)r(t)として選択されてもよく、N(t)、βi(t)及びr(t)は、p>2についてZp[t]からとられる。これは、これらの多項式を、0からp-1まで(これを含む)の整数係数で表すことができることを意味する。
鍵共有開始デバイス100は、第1の非公開乱数値sを{0,1,…,2
b-1}において電子的形態で取得し、非公開乱数値(112,s)を、公開セットの多項式に代入することにより得られる一変数多項式の全体を合計することにより、開始一変数多項式を計算する:
非負の整数とp変数(この場合はバイナリ)多項式との間の自然マッピングを使用して、sをs(t)にマッピングする、すなわち、sのバイナリの展開式の係数をs(t)の係数とマッピングすることに留意されたい。後者を直接的に生成することも可能である。
先のように、鍵共有応答デバイスは、対称鍵取得器210、応答鍵データ生成器220及び(任意選択で)復号ユニット320を備える。
応答鍵データ生成器220は、第2の非公開乱数値rを{0,1,…,2
b-1}において電子的形態で取得するように構成される。第2の非公開乱数値は、対称鍵取得器210により開始一変数多項式に代入される:
ここで、その結果は、公開グローバルリダクション多項式を法とし、次いでr(t)を法として簡約する。この代入及びリダクションの結果は、形式的な変数(t)の多項式である。これから、対称鍵214が様々な方法で取得され得る。例えば多項式は、自然マッピングを使用して数に変換され得る。マッピングされた結果又は係数の文字列を直接的に使用するか、これを処理、例えばハッシュ処理してもよい。鍵のリダクション、拡張、エントロピー増幅等が必要に応じて適用され得る。鍵共有応答デバイス200は、対称鍵を、例えば先のようにメッセージを暗号化するために使用する。
応答鍵データ生成器220は、第2の非公開乱数値212(r)を公開セットの多項式(122,f
i(r, ))に代入することにより得られる一変数多項式を合計することによって、応答一変数多項式を計算するために構成される:
鍵共有開始デバイス100は、対称鍵取得器310及び(任意選択で)暗号化ユニット230を備える。
対称鍵取得器310は、
から鍵K(r,s)を計算する。
興味深いことに、パラメータは、K(r,s)=K(s,r)を保証する。この鍵は、潜在的に同じ導出を使用して、あるいは応答デバイスのような他の更なる処理を使用して、暗号テキストを復号するのに使用され得る。この場合、更なる再構築鍵を導出する必要はない。
二変数多項式F
i(・,・)は、対称二変数多項式として選択されることがある。鍵共有開始デバイス100が公開する鍵の材料が、
であり、鍵共有応答デバイス200が鍵共有開始デバイス100に送信する鍵の材料が、
であるので、これは必要とされない。鍵共有開始デバイス100と鍵共有応答デバイス200の双方が同じ鍵を計算する:
図3は、集積回路500の概略的なブロック図である。集積回路500は、プロセッサ520、メモリ530及びI/Oユニット540を備える。集積回路500のこれらのユニットは、バスのような相互接続510を通して互いの間で通信することができる。プロセッサ520は、本明細書で説明されるような方法を実行するために、メモリ530内に格納されるソフトウェアを実行するように構成される。このようにして、集積回路500を、鍵共有開始デバイス100及び/又は応答デバイス200として構成することができ;メモリ530の一部は、必要に応じて、公開セット、非公開乱数値、一変数多項式、平文メッセージ及び/又は暗号化メッセージを格納することができる。
I/Oユニット540は、デバイス100又は200のような他のデバイスとの通信に使用されてよく、例えば二変数多項式の公開セット122のような公開データ、並びに潜在的には関連パラメータやモジュラス(moduli)等を受け取り、暗号化及び/又は認証されたメッセージを送受信する。I/Oユニット540は、無線通信用のアンテナを備えてよい。I/Oユニット540は、有線通信用の電気インタフェースを備えてもよい。
集積回路500は、コンピュータ、モバイルフォン等のモバイル通信デバイスに一体化され得る。集積回路500は、照明デバイスに一体化されてもよく、例えばLEDデバイスとともに配置され得る。例えば鍵共有開始又は応答デバイスとして構成され、かつLEDのような照明ユニットとともに配置される集積回路500は、共有される対称鍵で暗号化されたコマンドを受け取ることができる。
多項式操作は、メモリ530内に格納される多項式操作ソフトウェアによって指示されるように、プロセッサ520によって行われるが、集積回路500がオプションの多項式操作デバイス550とともに構成されるとき、鍵生成のタスク及び一変数多項式の計算はより早い。多項式操作デバイス550は、代入及びリダクション演算を実行するためのハードウェアユニットである。
図4は、集積回路500が鍵共有開始デバイス100として構成される場合に、メモリ539とともに使用され得るメモリレイアウトの概略的なブロック図である。図4に示されているのは、sのような第1の非公開乱数562;Nのような公開グローバルリダクション整数564;fiのように整数係数582〜586を有する対称二変数多項式、そして、qiのように関連する公開リダクション整数592〜596である。さらに、図4ではメモリの2つの部分が、開始一変数多項式124を計算するためのワーキングスペースとして確保される。リダクション結果566を使用して、非公開乱数562を対称二変数多項式の1つに代入し、公開リダクション整数を法として簡約する。対称多項式の各々について、結果が合計結果566に加算され、グローバル整数564を法として解かれる。図4に示されるレイアウトは、m=3のシステムに適している。ワーキングスペースは、応答一変数多項式222から、再構築対称鍵312を計算するのにも使用され得る。
図4は整数環について説明されているが、係数を多項式環からとることも可能である。必要とされるメモリは、対応して適合させるべきである。
公開セット内の多項式を対称にすることは、実装を簡単にする。鍵共有システム400の実施形態では、公開セット内の二変数多項式の少なくとも1つは非対称である。ある実施形態では、公開セット122内の全ての多項式が非対称である。鍵生成は、非公開乱数値112をセット122の多項式の2つの変数のうちの特定の1つに代入するように鍵共有開始デバイス100が構成されることを除いて、上述のように機能する。例えばf(x,y)がセット122内の二変数多項式のうちの1つであり、かつ鍵共有開始デバイス100が、2つの変数のうちの第1の変数を使用するように構成される場合、これはf(s,y)を計算する。(もしあれば)合計ステップは上述の通りである。応答デバイスは、開始一変数多項式124を受け取る。一変数多項式は1つの変数しか持たないので、第2の非公開乱数値212を代入する際に、公開セット122内の対称多項式を使用することとの間に相違はない。しかしながら、応答一変数多項式22を計算するために、暗号化デバイスは、第2の非公開乱数値212を、2つの変数のうちの第2の変数に、すなわち鍵共有開始デバイス100によって使用されたものとは異なる変数に代入するように構成される。上記の例に従うと、応答デバイスはf(x,r)を計算することになる。最終的に、復号デバイスは一変数多項式を受け取るので、代入に利用可能な変数は1つしかない。
非対称多項式を使用することは、開始一変数多項式124と応答一変数多項式222が異なる構造を有することを保証するので、セキュリティを向上させることができる。
本明細書で与えられる、セット122内の対称多項式を使用する全ての実施形態は、非対称多項式を使用するように修正されてもよい。必要とされる唯一の変更は、応答一変数多項式222が、セット122内の多項式の2つの変数のうちの一方の変数に代入することから取得され、一方、開始一変数多項式124が、セット122内の多項式の2つの変数のうちの他方の変数に代入することから取得されることを確実にすることである。
一実施形態において、鍵共有開始デバイス100及び鍵共有応答デバイス200はそれぞれ、公開鍵/秘密鍵のペアを有する。鍵共有開始デバイス100及び鍵共有応答デバイス200は、他のパーティの公開鍵を取得するように構成される。鍵共有開始デバイス100及び鍵共有応答デバイス200は、それぞれの秘密鍵を使用して、開始一変数多項式124及び応答一変数多項式222に署名をするように構成される。鍵共有開始デバイス100及び鍵共有応答デバイス200は、受け取った署名を検証して、検証が失敗した場合は開始一変数多項式124及び/又は応答一変数多項式222を拒絶するように構成される。適切な署名及び検証プロトコルには、DSA又はECDSAが含まれる。公開鍵は、X.509証明書のような証明書を使用する交換であってよい。鍵共有開始デバイス100と鍵共有応答デバイス200との間の通信を暗号化するために本明細書で説明されるプロトコルを使用して合意された一時鍵を使用することは、転送セキュリティを提供し:秘密鍵のうちの1つ以上が漏したとしても、過去の通信はセキュアなままである。鍵共有プロトコルは、例えば他のパーティの公開鍵へのアクセスを持たずに、匿名で使用されることもある。例えば鍵共有開始デバイス100及び鍵共有応答デバイス200は、モバイルフォンのように、共有される対称鍵を使用して互いに暗号化通信用に構成される通信デバイスであり得る。
例えば鍵共有開始デバイス及び鍵共有応答デバイスは、例えばモバイルフォンのようなモバイル通信デバイスとすることができる。これらの通信ユニットは、無線通信、例えばNFC又はBluetooth(登録商標)といった短距離通信のために構成され得る。これらの電話を集めることにより、本明細書で説明されるシステムを使用して共有鍵に対して合意することによって、セキュアな通信リンクを確立することができる。電話が範囲内にないときであっても、これらの電話は共有鍵を使用して依然としてセキュアに通信することができる。共有鍵が確立されると、この鍵を、他の鍵管理機能、例えば公開鍵/秘密鍵暗号化システムにおける公開鍵の交換に使用することができる。
鍵共有は、低リソースの適用に適している。例えば鍵共有開始デバイス100及び鍵共有応答デバイス200は、アドホック無線ネットワーク用に構成されるデバイスとすることができる。この適用では、鍵共有開始デバイス100が鍵214と同じ鍵312を取得することを失敗する場合に、幾つかのデバイス間の通信が失敗する可能性があることはあまり重大なことではない。例えば鍵共有開始デバイス100及び鍵共有応答デバイス200は、照明デバイス内の通信ユニット330及び通信ユニット340が無線通信デバイスの照明デバイスである。鍵共有開始デバイス100と鍵共有応答デバイス200は、これに類似する、、通信ネットワークから一緒の複数の照明デバイスのセットの一部である。或るデバイスが通信に失敗するとした場合、データがこの周囲にルーティングされ得る。
鍵共有開始デバイス100は、二変数多項式122の自身の公開セットを生成して、これを第
のメッセージとともに鍵共有応答デバイス200に送信することが可能であることに留意されたい。この利点は、鍵共有応答デバイス200及び鍵共有開始デバイス100が、第3者からの公開パラメータを全く必要とせずに、共通の鍵に対して合意することができることである。難点は、これが通信オーバーヘッドを増加させることである。
攻撃者が通信を盗聴することを想定する。攻撃者は、盗聴により、開始一変数多項式124及び応答一変数多項式222を取得する可能性がある。しかしながら、攻撃者は、これからs又はrを推測することはできず、鍵214、312を計算する手段を持たない。
二変数多項式122の公開セットが対称でない場合にも機能するよう、構造をわずかに修正してもよい。この修正は次の通りである:鍵共有開始デバイス100が、二変数多項式122の公開セットの2つの変数のうちの1つに第1の非公開乱数値112を代入し、そして、鍵共有応答デバイス200が2つの変数のうちの他方を使用する。これは前述のように合意され得る。鍵共有開始デバイス100及び鍵共有応答デバイス200は、異なる「スロット」を使用して、そのそれぞれの一変数多項式と共有対称鍵を計算する。最終的な結果は、双方とも同じ共通の鍵を計算する。以下の明示的な実施形態では、対称関数を使用する。
図5は、鍵共有開始デバイス100と鍵共有応答デバイスとの間、例えば鍵共有開始デバイス100と鍵共有応答デバイス200に類似するデバイスの間で共有される対称鍵を生成する方法700をフローチャートで図示している。Aというラベルが付けられたステップをとると、鍵共有開始デバイス100の方法が得られる。Bというラベルが付けられたステップをとると、鍵共有応答デバイスの方法が得られる。方法700は、分散的手法、すなわち複数のデバイスにわたって分散されるよう実装されてもよい。
図5には下記が示されている:
例えば鍵共有サーバ450により、電子的形態で二変数多項式122の公開セットを、生成するステップ702。
例えば鍵共有開始デバイス100により、電子的形態で第1の非公開乱数値(112,s)を生成するステップ704。
例えば鍵共有開始デバイス100により、電子的形態で二変数多項式の公開セット(122,fi(,))を取得するステップ706。
例えば鍵共有開始デバイス100により、第1の非公開乱数値(112,s)を公開セットの多項式(122,fi(s, ))に代入することによって得られる一変数多項式を合計することにより、開始一変数多項式(124)を計算するステップ708。
例えば鍵共有開始デバイス100により、開始一変数多項式(124)を、鍵共有応答デバイス(200)に送信するステップ710。
例えば鍵共有応答デバイス200により、鍵共有開始デバイス100から開始一変数多項式(124)を受け取るステップ712。
例えば鍵共有応答デバイス200により、電子的形態で第2の非公開乱数値(212,r)を生成するステップ714。
例えば鍵共有応答デバイス200により、電子的形態で二変数多項式の公開セット(122,fi(,))を取得するステップ716。
例えば鍵共有応答デバイス200により、第2の非公開乱数値(r)を公開セットの多項式(122,fi(r, ))に代入することによって得られる一変数多項式の全体を合計することにより、応答一変数多項式(222)を計算するステップ718。
例えば鍵共有応答デバイス200により、第2の非公開乱数値(212,r)を開始一変数多項式に代入することにより共有対称鍵(214,K)を計算するステップ720。
任意選択として、例えば鍵共有開始デバイス100により、対称鍵から鍵確認データを計算するステップ722。
例えば鍵共有応答デバイス200により、応答一変数多項式(222)及び任意選択で鍵確認データを、鍵共有開始デバイス100に送信するステップ724。
例えば鍵共有開始デバイス100により、鍵共有応答デバイス200から応答一変数多項式(222)及び任意選択で鍵確認データを受け取るステップ726。
例えば鍵共有開始デバイス100により、第1の非公開乱数値(112,s)を応答一変数多項式(222)に代入することにより、共有される対称鍵(312,K’)を再構築するステップ728。これは、例えば第1の非公開乱数値(s)を応答一変数多項式に代入し、公開グローバルリダクション整数(N)を法として簡約することの結果から、第1の再構築鍵(K’)を導出することによって行われてもよい。
例えば鍵共有開始デバイス100により、鍵確認データから、第1の再構築鍵(K’)が対称鍵(K)に等しいかどうかを判断し、等しくない場合には、第1の再構築鍵(K’)から更なる再構築鍵を導出するステップ730。このステップは任意選択である。
例えば鍵共有開始デバイス100又は鍵共有応答デバイス200により、電子メッセージを共有の対称鍵(214、312)で暗号化し、かつ/又は例えばメッセージ認証コードを追加することにより共有の対称鍵(214,312)で電子メッセージを認証するステップ732。
例えば鍵共有開始デバイス100又は鍵共有応答デバイス200により、暗号化された電子メッセージを共有の対称鍵(214,312)で復号するか、かつ/又は例えばメッセージ認証コードを検証することにより共有の対称鍵(214,312)で電子メッセージを検証するステップ734。
当業者には明らかであるように、本発明を実行する多くの異なる方法が可能である。例えばステップの順序を変更することができ、あるいは一部のステップを並列に実行してもよい。さらに、ステップの間に、他の方法のステップを挿入してもよい。挿入されたステップは、本明細書で説明されるような方法の改善を表すことがあり、あるいは方法とは未関連であってもよい。例えばステップ718及び720を交換してもよく、少なくとも部分的に並列に実行してもよい。さらに、所与のステップは、次のステップが開始される前に必ずしも完全に終了しなくてもよい。
本発明に係る方法は、プロセッサシステムに方法700を実行させるための命令を備えるソフトウェアを使用して実行され得る。ソフトウェアは、システムの特定のサブエンティティによって行われるこれらのステップのみを含んでもよい。ソフトウェアは、ハードディスク、フロッピー(登録商標)、メモリ等のような適切な記憶媒体に格納され得る。ソフトウェアは、有線又は無線によって、あるいは例えばインターネットのようなデータネットワークを使用して信号として送信されてもよい。ソフトウェアは、サーバ上でのダウンロード及び/又はリモート使用に利用可能にされ得る。
認識されるように、本発明は、コンピュータプログラム、特に本発明を実践に移すように適合される担体上又は担体内のコンピュータプログラムにも及ぶ。プログラムは、部分的にコンパイルされた形態のようなソースコード、オブジェクトコード、コード中間ソース及びオブジェクトコードの形態、あるいは本発明に係る方法の実装における使用に適した他の形態であってよい。コンピュータプログラム製品に関する実施形態は、説明される方法の少なくとも1つの処理ステップの各々に対応するコンピュータ実行可能命令を備える。これらの命令は、サブルーチンに細分され得るか、かつ/又は静的若しくは動的にリンクされ得る1つ以上のファイルに格納され得る。コンピュータプログラム製品に関する別の実施形態は、説明されるシステム及び/又は製品の少なくとも1つについての手段の各々に対応するコンピュータ実行可能命令を備える。
上述の実施形態は、本発明を限定するものではなく例示であり、当業者は、多くの代替的な実施形態を設計することが可能であろうことに留意されたい。
特許請求の範囲において、括弧内に配置される任意の参照符号は、請求項を限定するものとして解釈されるべきではない。「備える(comprise)」という動詞及びその派生語の使用は、請求項に記載されるもの以外の要素又はステップの存在を除外しない。ある要素に先行する「a」、「an」という冠詞は、そのような要素の複数の存在を除外しない。本発明は、幾つかの個別の要素を備えるハードウェアによって、及び適切にプログラムされるコンピュータによって実装され得る。幾つかの手段を列挙するデバイスの請求項において、これらの要素の幾つかは、ハードウェアの1つ及び同じアイテムで具現化されてよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に使用することができないことを示唆するものではない。