説明

認証および安全なデータ転送のためのセッション鍵の生成

【課題】第1の通信パートナーおよび第2の通信パートナーに知られたセッション鍵を、前記第1の通信パートナーのために、第1の通信パートナーおよび第2の通信パートナーによって決定され得る秘密情報から生成するための装置を、サイドチャンネル攻撃から保護する。
【解決手段】乱数(rP;rT)を得るための手段22と、前記乱数(rP;rT)の少なくとも1つの部分と秘密情報(kIV)の一部との連結を用いて、セッション鍵(k0)を計算するための手段24と、前記セッション鍵(k0)を第2の通信パートナーとの通信のために用いるための手段28とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の各実施形態は、典型的には、2つの各通信パートナー間の安全な相互認証、およびそれに続く安全なデータ転送のために用いられ得るセッション鍵の生成に関する。
【背景技術】
【0002】
対称暗号法における、2つの各通信パートナー間、例えば、読取装置および非接触型データカードの形をした2つの各ユーザ端末間の安全な相互認証は、例えば、いわゆるチャレンジ・レスポンス法(例えば、二方向または三方向のチャレンジ・レスポンス法など)を用いて行われ得る。
【0003】
チャレンジ・レスポンス法は、通信パートナーを、知識に基づいて認証する方法である。一方の通信パートナーが、チャレンジを提示し、他方の通信パートナーは、このチャレンジを解決して(レスポンス)、特定の情報の知識を証明する必要がある。
【0004】
この種の方法は、概して、サイドチャンネル攻撃、例えば、DPA(differential power analysis:差分パワー解析)、EMA(electro-magnetic analysis:電磁気解析)などの影響を受けやすい。
【0005】
これは、アタッカーが、基本的に、2つの各端末のうちの一方の端末の秘密鍵を再現することができることを意味しており、アタッカーが、基本的に、例えば、各通信パートナー間で繰り返し行われた認証の試みにおける現状の各プロファイル(EM放射の各プロファイル)を記録することによって、当該端末のクローンを、比較的手間をかけずに作成できることを意味している。
【発明の概要】
【発明が解決しようとする課題】
【0006】
認証の基になる、例えばブロック暗号化といった暗号化を保護するためのハードウェア手段は、比較的高価である。
【0007】
従って、本発明の目的は、従来の保護手段よりも改善された、サイドチャンネル攻撃に対抗する原理を提供することにある。
【課題を解決するための手段】
【0008】
上記目的は、請求項1の特徴を有する装置、請求項21に係る方法、および請求項27に係るコンピュータプログラムによって、達成される。
【0009】
本発明の各実施形態は、プロトコルに基づいた方法を用いることに基づいている。このプロトコルに基づいた方法は、サイドチャンネル攻撃から保護されていないので、安価である暗号化の実装を用いることを可能にするものである。
【0010】
複数の各実施形態によって、サイドチャンネル攻撃に対して安全な、いわゆる「セッション鍵」を導出することが可能になる。上記導出は、ユーザ端末のうちの一方の端末の個々の「ルート鍵」から、1つのセッションに固有の1度きりの使い捨て鍵(セッション鍵)が導出され、認証を行うと共に、後に続く2つの各通信パートナー間のデータ転送を確実に行うことが可能であることを意味している。
【0011】
このようなセッション鍵の導出は、各乱数を利用することに基づいている。これらの各乱数は、複数の各実施形態によれば、2つの各通信パートナー間において交換されることが可能である。第三者、いわゆる信頼できる第三者機関が、上記各乱数を提供することも、想定可能である。
【図面の簡単な説明】
【0012】
以下に、本発明の各実施形態を、添付の各図面を参照しながら、詳細に説明する。
【図1】本発明の一実施形態に係る暗号化プロトコルを示す概略的な図である。
【図2A】本発明の一実施形態に係るセッション鍵を生成するための装置を示すブロック図である。
【図2B】本発明の他の実施形態に係るセッション鍵を生成するための装置を示すブロック図である。
【図2C】本発明のさらに他の一実施形態に係るセッション鍵の装置を示すブロック図である。
【図3】本発明の一実施形態に係るセッション鍵を生成する方法を示すフローチャートである。
【図4】本発明の一実施形態に係る認証プロトコルの流れを示す図である。
【図5A(1)】本発明の第1の実施形態に係る、セッション鍵の生成および相互認証を詳細に示す一方の図である。
【図5A(2)】本発明の第1の実施形態に係る、セッション鍵の生成および相互認証を詳細に示す他方の図である。
【図5B(1)】本発明の他の一実施形態に係る、セッション鍵の生成および相互認証を詳細に示す一方の図である。
【図5B(2)】本発明の他の一実施形態に係る、セッション鍵の生成および相互認証を詳細に示す他方の図である。
【図6】本発明の一実施形態に係るデータ交換プロトコルの概観を示す図である。
【図7】本発明の一実施形態に係る、セッション鍵から導出された、2つの各通信パートナー間のデータ転送用の鍵の計算を示すブロック図である。
【図8】伝送されるデータフレームを示す概略的なブロック図である。
【図9】本発明の一実施形態に係る、メッセージを認証するためのチェック部の生成を示す概略的なブロック図である。
【図10】本発明の一実施形態に係る、連続メッセージを認証するための連続チェック部の生成を示す概略的なブロック図である。
【図11】暗号化されたデータフレームを示す概略的なブロック図である。
【図12】本発明の一実施形態に係る、伝送されるデータフレームを暗号化することを示す概略的なブロック図である。
【図13】本発明の一実施形態に係る、連続的に伝送される各データフレームを暗号化することを示す概略的なブロック図である。
【図14】本発明の一実施形態に係る、受信されたデータフレームを暗号復号化することを示す概略的なブロック図である。
【図15A】本発明の一実施形態に係る、自律的かつ非線形のフィードバックシフトレジスタを示す概略的なブロック図である。
【図15B】本発明の一実施形態に係る、結合を含む、非線形フィードバックシフトレジスタを示す概略的な図である。
【発明を実施するための形態】
【0013】
本発明の各実施形態は、2つの各通信パートナーの安全な相互認証を可能にする。これら2つの各通信パートナーを、以下では、端末または読取装置T、および非接触チップカードP(proximity integrated circuit card, PICC:近接型ICカード)と呼ぶが、これによって一般性が制限されるものではない。概して、これら2つの各通信パートナーが互いに異なる各構成を有していること、例えば、サーバ構成とクライアント構成とを有することも、当然、想定可能である。
【0014】
近接型カードは、一般に、読取装置、例えば支払い用の読取装置に極めて近接して用いられる。受動型のチップカード、特に、受動型のRFID(radio frequency identification:無線IC)チップカードが用いられ得る。このチップカードは、そのエネルギーを読取装置から受け取る。この種の近接型カードは、典型的には、125kHzまたは13.56MHzの周波数において動作することが可能である。
【0015】
さらに、本発明の各実施形態は、認証後に、2つの各通信パートナーであるTとPとの間で交換されたメッセージの完全性保護を確保する。交換されたメッセージ自体の保護、つまりプライバシー保護も可能である。従って、通信パートナーは、一実施形態に係る相互認証の後、完全性保護を含むデータ転送モード、または、プライバシー保護を含むデータ転送モードに同意することが可能である。ここでは、共通の秘密情報が、第1の通信パートナーと第2の通信パートナーとの両方によって決定されることが必要条件である。これは、いわゆる秘密鍵暗号と同様である。
【0016】
図1は、本発明の一実施形態に係る通信プロトコルの暗号部を示す概略的な図である。前記プロトコルの暗号部は、2つの部分、すなわち認証10と、後に続くデータ転送12とから構成される。
【0017】
認証10の間に、2つの通信パートナーPおよび通信パートナーTは、互いに認証し合う。複数の各実施形態によれば、これは、三方向のチャレンジ・レスポンスプロトコルを用いて行われ得る。認証10の結果は、それぞれ他方の通信パートナーの承諾または拒絶である。承諾の場合、共通の一時秘密の認証10によって、共通の一時秘密、いわゆるセッション鍵k0と、場合によっては後に続くデータ転送12に必要とされるさらなる情報とがもたらされる。
【0018】
認証10が成功した後、第1の通信パートナーPは、そのメモリの一部を、第2の通信パートナーTによるアクセスのために解除することが可能である。従って、第2の通信パートナーTは、対応するアクセス権を所有している所定のデータブロックを読み出す、および/または、書き込むことが可能である。
【0019】
従って、Pは、Pの不揮発性メモリ(NVM)から読み出すこと、および、Pの不揮発性メモリ(NVM)に書き込むことが可能である。このためのコマンドは、第2の通信パートナーTからのものである。これは特に、第1の通信パートナーPが非接触型チップカードであり、第2の通信パートナーTが読取装置である各実施形態に適用される。
【0020】
複数の各実施形態によれば、データ転送12を確実に行うために、2つの各手段、すなわち、
−MAC(message authentication code:メッセージ認証コード)モードと呼ばれるデータ完全性保護機構と、
−暗号化モードと呼ばれるプライバシー保護機構と、が存在している。
【0021】
複数の各実施形態によれば、これらの各保護モードのうちの1つのモードだけを、所定の時間において、2つの通信パートナーであるPと通信パートナーTとの間のデータ転送12のために用いてよい。データ転送12の保護は、その前の認証中に決定されたセッション鍵k0によって認証10と結び付けられている。
【0022】
・完全性保護の場合、複数の各実施形態によれば、セッション鍵k0は、いわゆるメッセージ認証コード(MAC)、すなわち送信されたメッセージを認証するためのチェック部を生成するための基本鍵として用いられる。
【0023】
・プライバシー保護の場合、セッション鍵k0は、伝送されたデータパッケージを暗号化するための基本鍵として用いられる。
【0024】
本発明の原理の概要を、図1を用いて説明した後、本発明の各実施形態を、他の図面を用いて、より詳細に説明する。
【0025】
図2Aは、第1の通信パートナーおよび第2の通信パートナーに知られたセッション鍵k0を、第1の通信パートナーのために、第1の通信パートナーおよび第2の通信パートナーによって決定され得る秘密情報kIVから生成する装置20を示す概略的な図である。ここで、装置20は、第1の通信パートナーに関連付けられている。ここで注目される2つの通信パートナーPおよび通信パートナーTのうちのどちらが、第1の通信パートナーおよび第2の通信パートナーと呼ばれるかは、重要でない。
【0026】
装置20は、乱数rを得るための手段22を含む。乱数rの少なくとも1つの部分rPまたは部分rTが、手段24に供給され得る。手段24は、乱数の少なくとも1つの部分と秘密情報kIVの一部との連結を用いて、セッション鍵k0を計算するための手段である。秘密情報kIVを得るために、手段26が設けられている。
【0027】
その後、計算されたセッション鍵k0は、第2の通信パートナー(図示されていない)と通信するための手段28によって用いられる。第2の通信パートナーとの通信のために、入力部29aおよび出力部29bを有するインターフェース29が設けられている。
【0028】
セッション鍵k0を生成するための装置20がどちらの通信パートナー上で用いられているかに応じて、装置20の個々のブロックまたは手段に、異なる要件が生じ得る。装置20は、複数の各実施形態のように、典型的に近接型カードP内で用いられる場合、PとTとの間の安全な認証および安全なデータ転送を確保するために、異なるリソースが提供される。図2Bには、近接型カードP内に組み込まれた装置20のブロック図が示されている。
【0029】
本実施形態によれば、秘密情報kIVを得るための手段26は、第1の通信パートナー、すなわち典型的には近接型カードPの、チップ独自の識別IVを提供し、前記識別IVから秘密情報kIVを導出するように構成されている。これは、製造者固有の方法で行われてよい。
【0030】
複数の各実施形態によれば、乱数を得るための手段22は、ハードウェアモジュールとしての暗号化乱数生成器RNGを含む。この暗号化乱数生成器RNGによって、乱数rの少なくとも1つの部分rPを生成することが可能である。
【0031】
一実施形態によれば、セッション鍵k0を計算するための手段24は、暗号化および/または暗号復号化のためのハードウェアモジュールを含む。これは、ブロック暗号化、特にAES(Advanced Encryption Standard:新暗号規格)に基づくブロック暗号化であってよい。乱数の少なくとも1つの部分rPと秘密情報kIVの一部との連結は、非接触チップカードPの側において、ハードウェアモジュールNLMによって行われてよい。一実施形態に係る連結は、非線形連結または非線形写像(NLM)であってよい。
【0032】
一般に、読取装置Tは、攻撃から保護された環境内に配置されていると想定され得る。従って、安全性に関連する要件が、読取装置のハードウェア実装に課せられることは、ほとんどない。概略的な装備を考慮すると、読取装置Tの側に組み込まれたセッション鍵k0を生成するための装置20は、チップカードPの側に含まれるセッション鍵k0を生成するための装置20と違いはない。複数の各実施形態によれば、秘密情報kIVは、読取装置Tの側でのみ、異なる方法で得られる。これが、手段26に関して、各通信パートナー間で基本的相違が存在する理由である。これについては、図2Cに示されている。
【0033】
読取装置Tの側において、秘密情報kIVを得るための手段は、秘密情報kIVを、チップカードPの装置固有の識別IVと一般鍵kMとに基づいて得るように構成されていてよい。従って、一般鍵kMおよび装置固有の識別IVが、鍵導出関数KDに供給されることによって、kIVが決定される。
【0034】
本発明に係るセッション鍵を生成するための方法の一実施形態についてより詳細に論じる前に、図3を参照しながら、方法ステップの大まかな概要を説明する。
【0035】
本概要では、個々の方法ステップは、2つの各通信パートナーのそれぞれによって行われてよい。しかしながら、これらの各方法ステップは、2つの各通信パートナーに別々に分配されてもよい。最終的に、信頼できる第三者機関がこれらの各方法ステップを行うことも想定可能である。
【0036】
第1のステップ32では、乱数r、または乱数rの1つの部分を得る。第2のステップ34では、乱数の少なくとも1つの部分と秘密情報kIVの一部との連結を用いて、セッション鍵k0を計算する。次に、第3のステップ36では、計算されたセッション鍵k0を、2つの各通信パートナーであるPとTとの間の通信のために用いる。
【0037】
より詳細な説明のために、以下の数学的表記を用いる。
【0038】
2つの表記xおよび表記yの数学的等式は、
x=y, (1)
によって表され、
ここで、値xを変数yに割当てることは、
y:=x. (2)
によって表される。
【0039】
2つの2進数xおよび2進数yの連結zは、
z:=x||y. (3)
である。
【0040】
2つの2進数xおよび2進数yの、さらなるモジュロ2またはビットワイズの排他的論理和は、
z:=x XOR y (4)
として記載される。
【0041】
yビット鍵kを用いた、2xビットデータブロックmの暗号化は、次のように表される。
【0042】
c:=AES(鍵=k,m) (5)
ここで、本発明の実施形態は、ブロック暗号化、特にAES規格に従った暗号化を提供する。同様に、暗号復号化は、
m:=AES-1(鍵=k,c) (6)
によって表される。
【0043】
この暗号復号化は、AES規格に従ったブロック暗号復号化であってよい。
【0044】
本発明の一実施形態に係る、2つの通信パートナーPおよび通信パートナーTのセッション鍵k0の生成および相互認証のフローチャートが、図4のフロー図/シーケンス図に示されている。
【0045】
次に、第1の通信パートナーPおよび第2の通信パートナーTの側で行われる全ての各ステップに関して、個々のステップを実行する順番を考慮して、詳細に説明する。図4に示される実施形態では、個々のステップを説明する順番が重要である。ここで、これらのステップをそれぞれ、P0,P1,...,Pn、およびT0,T1,...,Tnと呼ぶ。Pは第1の通信パートナーを示し、Tは第2の通信パートナーを示し、指数nは時間的順序を指す。同時に行うことが可能なステップ、または実装を容易にするために交換可能なステップは、明確に強調される。図解を簡素にするために、全てのステップに名前を付す。
【0046】
P1:第1の通信パートナーPの側での乱数の生成
一実施形態によれば、オンチップ乱数生成器RNGが、2つの乱数rPおよび乱数RPの生成を開始してよい。RPは、複数の各実施形態によれば、128ビットの幅を有していてよく、いわゆる「チャレンジ」として第2の通信パートナーに送信され得る。一実施形態によれば、rPは、32ビットの幅を有しており、セッション鍵k0を計算するために用いられ得る。RPおよびrPは、独立して、かつ、均等に分布されたランダムビットを含む2進数であると想定される。一実施形態によれば、乱数を得るための手段22は、前記乱数の少なくとも第1の部分を、ランダムにまたは擬似ランダムに決定するように構成されている。
【0047】
P2:第1の通信パートナーPから第2の通信パートナーTへの第1のメッセージ
複数の各実施形態によれば、第1の通信パートナーPは、その装置識別IVと、P側のセッション鍵乱数値rPと、P側のランダムチャレンジRPとを連結させて、第1のメッセージM1を形成する。第1のメッセージM1は、第2の通信パートナーTに転送される。
【0048】
1:=IV||rP||RP. (11)
これは、乱数rPおよび乱数RPを受信した後、rPが、RPおよび装置固有の識別IVと共に、第2の通信パートナーTまで転送されることを意味している。
【0049】
P3:第1の通信パートナーP側における秘密情報kIVの決定
秘密情報kIVは、秘密情報kIVを攻撃から保護する製造者固有の手段によって、Pの側において得ることが可能である。
【0050】
T4:第2の通信パートナーTの側における乱数の生成
第2の通信パートナーT側の、乱数を得るための手段22または乱数生成器RNGを始動させて、2つの乱数rTおよび乱数RTを得ることが可能である。従って、複数の各実施形態によれば、RTは、128ビットの幅を有し、第1の通信パートナーPに伝送される「チャレンジ」として機能することが可能である。rTは、複数の各実施形態によれば、32ビットの幅を有し、セッション鍵k0を計算するために用いられ得る。RTおよびrTの両方は、独立して、かつ、均一に分布されたランダムビットを含む。
【0051】
T5:第2の通信パートナーTの側における秘密情報kIVの決定
第1の通信パートナーPの第1のメッセージM1を受信した(ステップP2)後、第2の通信パートナーTは、鍵導出関数KDによって得られた、例えば一般鍵kMと装置固有の識別IVとから、秘密情報、すなわち第1の通信パートナーの個々の秘密鍵kIVを導出する。
【0052】
IV:=KD(kM,IV) (14)
鍵導出関数KDの定義は、製造者に特有であってよく、このため、本発明に係るプロトコルには何の影響も与えない。従って、読取装置Tの側では、秘密情報kIVは、一般鍵kMとチップカードPの転送された装置固有の識別IVとに基づいて、鍵導出関数KDによって決定される。
【0053】
T6:第2の通信パートナーTの側におけるセッション鍵k0の計算
セッション鍵k0は、前記乱数の少なくとも一部と秘密情報kIVの一部との連結SKを用いて計算される。従って、x=(x0,x1,...,x127)∈GF(2)128、および、y=(y0,x1,...,y31)∈GF(2)32である。GF(2)nは、ガロア体、すなわち加法、減法、乗法、および除法の基本計算が規定される2n個の要素の有限数を有する量を示す。このため、次の関数
EXT:GF(2)128→GF(2)32 (15)
は、概して、128ビット値から任意の32ビットを抽出することを意味している。複数の各実施形態によれば、32個の最下位ビットが、抽出される。しかし、次の関数
PAD:GF(2)32→GF(2)128 (16)
は、概して、32ビット値をパディングして、128ビット値を形成することを示している。これは、PADがビットパディングルールを指すことを意味している。複数の各実施形態によれば、32ビット値を各ゼロの値によってパディングして128ビット値を形成する。
【0054】
一実施形態によれば、第2の通信パートナーTは、k0=SK(kIV,rP,rT)に従って、共通かつ一意のセッション鍵k0を計算する。従って、SKは、セッション鍵計算関数の形をした、kIVと乱数rの少なくとも1つの部分(rP,rT)との連結を意味している。一実施形態によれば、セッション鍵は、次のように計算される。
【0055】
SK:
P:=NLM(EXT(kIV),rP), (17)
k':=AES(鍵=PAD(kP),kIV) (18)
0:=AES(鍵=PAD(rT),k') (19)
これは、第1のサブステップ(方程式17)において、32ビットの秘密情報kIVと32ビットの乱数値rPとの非線形写像または連結が、kP:=NLM(EXT(kIV),rP)に従って、形成され得ることを意味している。ここでは、
NLM:GF(2)32xGF(2)32→GF(2)32
z=NLM(x,y) (20)
が適用される。これは、複数の各実施形態によれば、セッション鍵k0を計算するための手段24が、乱数の少なくとも1つの部分rPと秘密情報kIVの一部分EXT(kIV)との非線形連結NLMを用いて、セッション鍵を計算するように構成されていることを意味している。
【0056】
非線形連結NLMの1つの目的は、チップ独自の秘密kIVと公的にアクセス可能な乱数rPとを連結し、サイドチャンネル攻撃またはDPA攻撃によって、kIVに関する情報を得られないようにすることである。複数の各実施形態によれば、128ビットの秘密kIVおよび32ビットのランダム変数rPを組み合わせてランダムな32ビットのセッション鍵のプリカーサー(中間)値kPを形成する。
【0057】
その後、このプリカーサー値kPに基づいて、最終的なセッション鍵k0を決定することが可能である。正式には、この非線形連結は、方程式(20)に従って規定され得る。複数の各実施形態に係るkPがセッション鍵k0の唯一のランダム基盤であるので、ここに記載する実施例によれば、最大232の異なるセッション鍵を生成することが可能である。従って、32ビットのkIVだけを、非線形連結NLMへの入力として用いることで十分である。当然ながら、例えば、16、64、128といった、他の任意のビット数を用いてもよい。
【0058】
非線形連結NLMの高性能の実装として、非線形フィードバックシフトレジスタ(NLFSR)を用いてもよい。非線形フィードバックシフトレジスタの特徴は、非線形フィードバックシフトレジスタが、ゼロ状態、すなわち全てのレジスタセルがゼロを用いて初期化された状態を保持することである。典型的には32個のレジスタセルによって、ゼロではない全ての初期状態は、正確に、232−1クロックサイクルの後に繰り返されることになる。換言すると、自律的な動作の場合、シフトレジスタの状態は、232−1の周期で繰り返す。
【0059】
本発明の一実施形態に係る非線形フィードバックシフトレジスタの可能な実装が、図15Aに概略的に示されている。
【0060】
32個のレジスタセルD0〜D31の全てのコンテンツは、関数fに供給される。図15Aの矢印によって示されるように、各クロックの後、あるレジスタセルのコンテンツは、隣り合う1つのレジスタセルに伝えられ得る。これは、レジスタセルD1のコンテンツはレジスタセルD0に、レジスタセルD2のコンテンツはレジスタセルD1に伝えられる(他も同様)ことを意味している。この関数fの結果は、レジスタセルD31のコンテンツがその前のセルD30に伝わった後、レジスタセルD31に書き込まれる。
【0061】
一実施形態によれば、NLFSRを用いた非線形連結NLMの可能な1つの計算は、次のステップを意味している。
【0062】
1.NLFSRの初期状態を設定するステップ。つまり、rP[0..31]をレジスタセルD[0..31]にロードすること。
【0063】
2.秘密情報の一部を挿入するステップ。つまり、秘密情報の一部kIV[0...31]を、図15Bに示されるような順番kIV[0],kIV[1],kIV[2],...,kIV[31]に従って、NLFSRの中に連続的に結合させる。これによって、各結合ステップの後、NLFSRは、クロックされる。これは、秘密情報の一部kIV[0..31]を挿入することは、TSIK=32クロックサイクルを取ることを意味している。
【0064】
3.連結ステップ。つまり、NLFSRは、時間TMIX=64サイクルの間、自律的にクロックされる。これは、この時間TMIXの間には、レジスタの中には、何も挿入されない、または何も連結されないことを意味している。64クロックサイクルの後、レジスタのコンテンツT[0..31]は、セッション鍵の先行する値kPを形成する。
【0065】
本発明の他の一実施形態によれば、非線形連結NLMは、非線形フィードバックシフトレジスタを使用する代わりに、再現不可能な多項式f(X)、すなわち2つの無用でない各多項式の積としては記載できない多項式に基づいて、実現可能である。
【0066】
x=(x0,x1,...,x31)、y=(y0,y1,...,y31)、z=(z0,z1,...,z31)の場合、z=NLM(x,y)は、典型的には、
3131+...+z11+z0=(x3131+...+x11+x0)*(y3131+...+y11+y0)modf(X) (21)
または、短く表すとz=x*ymodfに基づいて、算出され得る。これは、有限体GF(232)内の乗法であるため、NLM(x,NLM(y1,y2))=NLM(NLM(x,y1),y2)が、ここでは当てはまる。このため、
P :=NLM(r1,r2), (22)
k'P:=NLM(EXT(kIV).r1), (23)
P :=NLM(k'P,r2) (24)
に基づく方程式(17)の実装は、EXT(kIV)≠(0,0,...,0)であるならば、DPA攻撃から保護され得る。本実施形態によれば、方程式(17)に係る非線形連結は、方程式(23)および方程式(24)に係る2つの各非線形連結に分割される。
【0067】
このため、ステップP1の別の一実施形態では、乱数生成器RNGは、3つの乱数値r1、乱数値r2、および乱数値RPを生成する。RPは、複数の各実施形態によれば、128ビットの幅を有していてよく、いわゆる「チャレンジ」として第2の通信パートナーTに送信される。
【0068】
1およびr2はそれぞれ、32ビットの幅を有していてよく、セッション鍵k0を計算するために用いられる。RPおよびr1,r2は、独立して、かつ、均一に分布されたランダムビットを有する2進数であると想定される。第1の通信パートナーPは、rP:=NLM(r1,r2)を計算し、r1およびr2を一時記憶装置内に格納する。
【0069】
一実施形態によれば、再現不可能な多項式f(X)を含むNLMの一実現方法は、主に、多項式f(X)によって規定される線形フィードバックシフトレジスタ(LFSR)を、関数z=NLM(x,y)の第1の独立変数xを含む第2のレジスタと共に用いる。これにより、第2のレジスタは、論理ANDおよびXORゲートによってLFSRに結合される。
【0070】
値zは、典型的には、次のように計算される。
1.LFSRの全ての各レジスタセルを、ゼロに設定する。
2.第2のレジスタの各レジスタセルXiを、値xi(i=0,...,31)にてロードする。
3.時間T=32クロックサイクルの間、値y31,y30,...,y0をANDゲートの中に結合させ、yとxとを連結させる。
4.32個のクロックサイクルの後、LFSRのレジスタの各コンテンツは、値z=(z0,z1,...,z31)を形成する。
【0071】
上記計算は、一実施形態に係るセッション鍵k0を計算するための手段24が、再現不可能な多項式f(X)によって規定された線形フィードバックシフトレジスタを用いて、非線形連結NLMを実装するように構成されていることを意味している。このため、非線形連結(NLM)の結果は、再現不可能な多項式f(X)を含む、乱数の少なくとも1つの部分と秘密情報kIVの部分との乗法による連結のモジュロ演算に依存する(方程式21と共に方程式23を参照)。
【0072】
セッション鍵k0を生成する間において、サイドチャンネルの漏洩を大幅に低減することは、非線形連結NLMを適切に実装することによって、慣れたアタッカーであっても、ほとんどDPA攻撃をすることができない程度まで実現可能である。さらに、セッション鍵k0の計算は、非線形連結NLMによって加速され得る。
【0073】
非線形連結NLMの後のステップでは、方程式(18)に従って、秘密情報kIVをセッション鍵の中間値kPと連結させる。このため、連結AES(.,.)は暗号化アルゴリズムである。複数の各実施形態によれば、この暗号化アルゴリズムAESは、ブロック暗号化またはブロック暗号である。特に、いわゆる新(アドバンスド)暗号規格(AES)に基づくブロック暗号化を用いてよい。
【0074】
これは、複数の各実施形態によれば、セッション鍵k0を計算するための手段24が、非線形連結NLMから導かれた値kPを、暗号化AES用の鍵として用いて、秘密情報kIV、または秘密情報kIVから導かれた値を暗号化すると共に、この暗号化に基づいてセッション鍵k0を得るように構成されていることを意味している。
【0075】
複数の各実施形態によれば、第2の通信パートナーTではなく、第1の通信パートナーPだけが、乱数rPを決定することも可能である。この場合、方程式(18)に係る暗号化の結果得られた値k'が、既にセッション鍵となろう。
【0076】
しかしながら、ここで論じる実施形態では、方程式(18)に係る暗号化は、第2の乱数rTによって、第3のステップ(方程式19)において、中間結果k'と第2の乱数値rTとを、
0:=AES(鍵=PAD(rT),k') (22)
に従って連結させることによって、改善することが可能であり、その結果、最終的に共通のセッション鍵k0を得ることが可能である。
【0077】
方程式(17)〜(19)を融合させれば、複数の各実施形態に係るセッション鍵k0を計算するための手段24は、セッション鍵k0を、
0=AES(PAD)rT),(AES(PAD(NLM(EXT(kIV),rP)),kIV)) (23)
に基づいて計算するように構成されている。
【0078】
ここで、rPは第1の乱数であり、rTは第2の乱数であり、kIVは秘密情報を示しており、NLM(',')は非線形連結に相当し、EXT(')は抽出ルールに相当し、PAD(')はビットパディングルールに相当し、AES(',')は新暗号規格に基づくブロック暗号化に相当する。
【0079】
さらに、方程式(18)および方程式(19)に係る各ステップを、典型的には、
0:=AES(鍵=PAD2(kP),XORPAD(rT),kIV)(24)
に係る単一の暗号化ステップと置き換えることも、想定可能である。
【0080】
ここで、次の関数:
PAD2:GF(2)32→GF(2)128 (25)
は、入力値yの32ビットを倍加することによって生じる64ビット値をパディングすることを意味している。特に、上記の64ビット値は、各ゼロ値を用いてパディングされ得る。
【0081】
これは、一実施形態によれば、乱数を得るための手段22は、第1の乱数rPを、ランダムまたは擬似ランダムに決定し、第2の乱数rTを、他方の通信パートナーから得るように構成されていることを意味している。
【0082】
セッション鍵k0を計算するための手段24は、秘密情報kIVから導かれた値を、第1の乱数rPおよび第2の乱数rTから導出された鍵によって暗号化するAESに基づいて、セッション鍵k0を計算するように構成されている。
【0083】
他の一実施形態によれば、乱数を得るための手段22は、ランダムまたは擬似ランダムに決定された乱数rP、または前記乱数から導かれた値と、秘密情報kIVの一部EXT(kIV)との非線形連結NLMに基づいて、第1の乱数kpを決定し、第2の乱数rTを、他方の通信パートナーから得るように構成されている。
【0084】
セッション鍵k0を計算するための手段24は、秘密情報kIVから導かれた値を、第1の乱数kPおよび第2の乱数rTから導出された鍵によって暗号化するAESに基づいて、セッション鍵k0を計算するように構成されている(方程式24参照)。
【0085】
T7:第2の通信パートナーTの側におけるレスポンス計算
ステップT7において、第2の通信パートナーTは、第1の通信パートナーPの「チャレンジ」RPに対する「レスポンス」cPを計算する。ここでは、ステップT6のセッション鍵が用いられる。
【0086】
P:=AES(鍵=k0,RP) (26)
T8:第2の通信パートナーTから第1の通信パートナーPへの第2のメッセージ
ステップT8では、ステップT7において計算されたレスポンスcPと、第2の通信パートナーTの側で決定された乱数値rTと、ランダムチャレンジRTとを連結させて、第2の通信パートナーTの側の第2のメッセージM2を形成する。このメッセージM2は、第2の通信パートナーTから第1の通信パートナーPに転送される。
【0087】
2:=cP||rT||RT (27)
これは、一実施形態によれば、第2の通信パートナーTが、最初に、第1の通信パートナーPのチャレンジRPに対するレスポンスを、暗号化アルゴリズムを用いたk0とRPとの連結AESに基づいて決定し(方程式26)、その後、これを、第2の乱数rTおよびランダムチャレンジRTと共に、第1の通信パートナーPに伝送することを意味している。
【0088】
P9:第1の通信パートナーPの側におけるセッション鍵k0の計算
第1の通信パートナーPが第2の乱数rTを含む第2のメッセージM2を受信した後、第1の通信パートナーPの側において、k0=SK(kIV,rP,rT)に従って、共通のセッション鍵が計算され得る。この共通のセッション鍵の計算は、第1の通信パートナーPが、第2の通信パートナーTの既に各方程式(17)〜(19)に関連して説明したステップと同じ3つのステップ
P=NLM(EXT(kIV),rP), (28)
k'=AES(鍵=PAD(kP),kIV), (29)
0=AES(鍵=PAD(rT),k') (30)
を実行することによって、行われる。
【0089】
最初の2つの各ステップ、すなわち、kPを計算するステップおよびk'を計算するス
テップは、第2のメッセージM2を受信する前に、実行され得る。第3のステップ、すなわち方程式(30)に係るk0を計算するステップは、典型的には、第2の通信パートナーTの側において第2の乱数rTが決定された時にのみ行われる必要があることを、ここで再び言及する。
【0090】
既に述べたように、本発明の実施形態は、また、乱数が第1の通信パートナーPの側においてのみ、または信頼できる第三者機関によってのみ、ランダムに決定され、各通信パートナーP、Tに提供される場合を含む。従って、方程式(30)に係るステップは、鍵計算の安全性をさらに増大させるように機能する。
【0091】
ここに記載した実施形態では、Pの側の乱数を得るための手段22も、第1の乱数rPを、ランダムまたは擬似ランダムに決定し、第2の通信パートナーTよりも前に、第2の乱数rTを得るように構成されている。
【0092】
セッション鍵k0を計算するための手段24は、第1の暗号化(方程式29)から導かれた値k'を、第2の乱数rTから導かれた値で暗号化する第2の暗号化(方程式30)に基づいて、セッション鍵k0を得るように構成されている。
【0093】
ここで、第1の乱数rPと秘密情報kIVの一部との非線形連結(方程式28)から導かれた値kPは、第1の暗号化のための鍵として用いられ、秘密情報または前記秘密情報から導かれた値を暗号化し、第1の暗号化および第2の暗号化に基づいて、セッション鍵k0を得る。
【0094】
既に説明したように、方程式(18)および方程式(19)、または方程式(29)および方程式(30)に係るステップを、例えば、
0:=AES(鍵=PAD2(kP),XORPAD(rT),kIV).(31)
に係る単一の暗号化ステップと置き換えることも可能である。
【0095】
NLMが再現不可能な多項式f(X)に基づいている場合、一実施形態に従って、第1の通信パートナーPの側においてセッション鍵k0を計算することは、
k'P:=NLM(EXT(kIV),r1), (32)
P :=NLM(k'P,r2) (33)
0 :=AES(鍵=PAD2(kP)XORPAD(rT),kIV) (34)
に従って、行われてもよい。
【0096】
P10:第1の通信パートナーPの側のレスポンス計算
ステップP10では、一実施形態に係る第1の通信パートナーPは、第2の通信パートナーTのチャレンジRTに対するレスポンスcTを、ステップP9において計算された共通のセッション鍵k0に基づいて、計算する。
【0097】
T:=AES(鍵=k0,RT) (35)
これは、セッション鍵k0が、AES規格に従ったブロック暗号化のための鍵として用いられ、第2の通信パートナーTのチャレンジRTを暗号化し、これによってレスポンスcPを得ることを意味している。
【0098】
P11:(第1の通信パートナーPから第2の通信パートナーTへの)第3のメッセージ
ステップP11では、第1の通信パートナーPは、ステップP10において計算されたレスポンスcTを、第2の通信パートナーTに送信する。
【0099】
P12:第1の通信パートナーPの側におけるレスポンス照合
ここで、第1のメッセージM1によって第2の通信パートナーTに送信されたランダムチャレンジRPは、レスポンス比較値cP'を得るために、第1の通信パートナーPの側において、
P'=AES(鍵=k0,RP) (36)
に従って、セッション鍵k0を用いて暗号化される。その後、得られたレスポンス比較値cP'は、第2の通信パートナーTからの第2のメッセージM2によって得られたレスポンスcPと、第1の通信パートナーPの側において比較される。
【0100】
P'=cPの場合、第2の通信パートナーTは、第1の通信パートナーPの側において、認証を成功させることが可能である。そうでなければ、認証は失敗に終わる。認証が失敗すると、2つの各通信パートナーP、T間のさらなる通信は、停止されることになる。認証が失敗したことは、第2の通信パートナーTに信号で知らされる。
【0101】
T13:第2の通信パートナーTの側におけるレスポンス照合:
ここでは、第2のメッセージM2を用いて、第2の通信パートナーPに送信されたランダムチャレンジRTは、レスポンス比較値cT'を得るために、第2の通信パートナーTの側において、
T'=AES(鍵=k0,RT) (37)
に従って、セッション鍵k0を用いて暗号化される。その後、得られたレスポンス比較値cT'は、第2の通信パートナーTが第3のメッセージM3(ステップP11)によって得たレスポンスcTと、第2の通信パートナーTの側において比較される。
【0102】
T'=cTの場合、第1の通信パートナーPは、第2の通信パートナーTの側において、認証を成功させることが可能である。そうでなければ、認証は失敗に終わる。認証が失敗すると、2つの各通信パートナーP,T間のさらなる通信は、停止されることになる。認証が失敗したことは、第1の通信パートナーPに信号で知らされる。
【0103】
図5Aおよび図5Bには、説明した認証法のための実施形態の詳細な図解が、関連する両方の各通信パートナーP,Tの側におけるハードウェアブロック/ソフトウェアブロックに関連して示されている。
【0104】
認証10が成功し、セッション鍵k0の生成が成功した後、本方法は、2つの通信パートナーPと通信パートナーTとの間のデータ転送ステップ12に進む。ここで、第1の通信パートナーPは、そのメモリの部分に、第2の通信パートナーTがアクセスすることを可能にし(あるいはその反対)、その結果、第2の通信パートナーTは、第2の通信パートナーTが対応するアクセス権を所有している特定のデータブロックを読むことが可能である。
【0105】
同様に、Tは、特定のデータブロックを書き込むことが可能である。従って、第1の通信パートナーPの不揮発性メモリから読み出すこと、および/または、前記不揮発性メモリにプログラミング(書き込み)することは、P自身によって行われる。しかしながら、第1の通信パートナーPは、このためのコマンドを、第2の通信パートナーTから受信する。
【0106】
2つの通信パートナーPと通信パートナーTとの間の通信および/またはデータ転送は、PからTに、およびTからPに伝送され得るデータフレームF1,F2,F3,...において、準備され得る。安全性のために、各データフレームFiからの入力として、秘密鍵kiが必要とされる。データフレームFiを処理した後、伝送される次のデータフレームFi+1のために用いられる新たな鍵ki+1が、生成され得る。伝送される第1のデータフレームF1のための第1の秘密鍵k1が、セッション鍵k0から導出される。
【0107】
全ての各データフレームは、2つの通信パートナーPと通信パートナーTとの間で交換され得る、安全性に関連する各データパッケージD1,D2,D3,...を含んでいる。従って、どの方向に、各データパッケージが送信されるかは、重要ではない。これらの各データパッケージの全体的な発生が、図6に概略的かつ典型的に示されている。
【0108】
本発明の一実施形態によれば、各データパッケージDxは、最大128ビットを含む。当然ながら、他のデータパッケージサイズも、想定可能である。第1の通信パートナーPから第2の通信パートナーTに送信されたデータパッケージは、Pのメモリから読み出されたデータを含んでいてよい。別の方向、すなわちTからPへのデータパッケージは、Pのメモリに書き込まれるデータを含んでいてよい。
【0109】
さらに、交換されるデータパッケージは、読み出しコマンド/書き込みコマンド、および/または、前記データのメモリアドレスを含んでいてよい。複数の各実施形態によれば、より高位のプロトコル層(ラッピングプロトコル層)が、制御データのうちのどれを、ここに記載する保護機構に従って、データパッケージDxの外に送信することが可能であるかを規定する。
【0110】
データパッケージは、連続したデータパッケージを含むデータフレーム内に配置されていてよい。1つのデータフレームの全てのデータパッケージは、同一の方向すなわち、TからP、またはその反対のPからTに送信され、特定の順番を有している。ここでの準備は、より高位のプロトコル層によって行われる。
【0111】
プライバシー保護モードでは、データ転送12中に伝送されたデータパッケージは、例えばAESアルゴリズムを用いて、暗号化され得る。ここで、各パッケージは、典型的には128ビットのサイズを有していてよい。他方、完全性保護モードも、データ転送12中に、メッセージ認証コード(MAC)を計算することによって用いられ得る。この場合、データパッケージのサイズは128ビットよりも小さいか、または128ビットであってよい。この場合、全てのデータフレームは、データパッケージD1,D2,D3,...の部分ではないMACパッケージMiを含んでいてよい。
【0112】
図6に概略的に示したように、データ転送段階の第1のステップ61は、伝送される第1のデータフレームF1用の第1の秘密鍵k1を、セッション鍵k0に基づいて導出することである。ステップ61は、完全性保護モードの場合でも、プライバシー保護モードの場合でも同じである。
【0113】
図7に示されるように、ステップ61の入力パラメータは、セッション鍵k0、および、認証段階10中に第1の通信パートナーPおよび第2の通信パートナーTによって生成された2つのランダムチャレンジRPおよびランダムチャレンジRTであり得る。一実施形態によれば、第1の鍵k1は、図7に図解したように、
1:=AES(鍵=RP;k0XORRT) (38)
に従って計算され得る。これは、チャレンジ値RPを、AES暗号化用の鍵として用いて、チャレンジ値RTとセッション鍵k0とのXOR連結を暗号化し、このAES暗号化に基づいて、導出された第1の鍵k1を得ることを意味している。
【0114】
他の一実施形態によれば、第1の鍵k1はまた、図7に図解したように、
1:=AES(鍵=RP;k0XORRT)XOR(k0XORRT) (39)
に従って、計算され得る。
【0115】
完全性保護モードでは、全てのデータフレームFiには、データフレームを認証するためのチェック部(MAC)Miが設けられていてよい。ここで、チェック部Miは、対応する鍵kiを用いて生成される。
【0116】
チェック部Miは、典型的には、CBC−MAC(cipher block chaining message authentication code:暗号ブロック連鎖方式メッセージ認証コード)、HMAC(keyed-Hash message authentication code:鍵付きハッシュメッセージ認証コード)、OMAC(one-key MAC:ワンキーMAC)、UMAC(message authentication code based on universal hashing:ユニバーサルハッシングに基づくメッセージ認証コード)、PMAC(parallelizable MAC:平行処理が可能なMAC)、またはCMAC(cipher-based MAC:暗号ベースのMAC)であってよい。
【0117】
データフレームFiの各データパッケージDx,Dx+1,...,Dyのシーケンスは、図8に概略的に示したように、チェック部Miによって終了する。フレームFiの送信器は、kiおよび各データパッケージDx,Dx+1,...,Dyを使用して、チェック部Miを決定し、(Dx,...,Dy,Mi)を上記フレームFi内にて伝送する。これは、複数の実施形態に係るセッション鍵k0を使用するための手段28が、第2の通信パートナーとの通信のために、メッセージMiを認証するためのチェック部Miを、メッセージ、および、セッション鍵k0または前記セッション鍵から導出された鍵kiに基づいて、計算するように構成されていることを意味している。
【0118】
同様に、各コンテンツ(Dx,...,Dy,Mi)を含むデータフレームの受信器Miは、kiおよびデータパッケージDx,Dx+1,...,Dyを用いるように形成されていてよい。上記データパッケージDx,Dx+1,...,Dyは、前記データパッケージから生じるチェック部を計算するために受信されたものである。この受信器は、結果として得られたチェック部を、受信した値Miと比較する。値が同一であるならば、2つの各通信パートナー間のデータ転送は継続され得るが、そうでなければ、データ転送は、停止されることになる。受信器は、送信器にMACのエラーを通知することが可能である。
【0119】
何れの通信パートナーPおよび通信パートナーTも、次に伝送されるデータフレームFi+1用の鍵ki+1を算出する(図6、各ステップ62、63、64参照)。本発明の一実施形態によれば、チェック部Miおよび後に続く鍵ki+1は、次のように計算され得る。
【0120】
x :=ki
x+1 :=AES(鍵=hx;Dx)XORDx
x+2 :=AES(鍵=hx+1;Dx+1)XORDx+1
x+3 :=AES(鍵=hx+2;Dx+2)XORDx+2
...
y+1 :=AES(鍵=hy;Dy)XORDy
i+1 :=hy+1
M'i :=AES(鍵=ki;ki+1)XORki+1
i :=EXT(M'i) (40)
データパッケージDxのサイズが128ビットよりも小さいならば、各データパッケージDxを、ゼロでパディングして128ビットのサイズを得ることが可能である。その後、パディングされたデータパッケージDxは、AESブロック暗号化演算および/またはXOR演算のための入力として用いられ得る。
【0121】
チェック値Miおよび後に続く鍵ki+1の生成が、図9に再び図示されている。
【0122】
図9からは、後に続く鍵ki+1が、中間鍵ki、およびデータフレームFiの個々の各データパッケージDx,Dx+1,...,Dyから算出されることが明らかである。従って、第1のデータパッケージDxは、中間鍵kiを用いてブロック暗号化される。このブロック暗号化の結果は、再び第1のデータパッケージDxを用いてXOR演算される。
【0123】
ここで次に、この連結の結果を、第2のデータパッケージDx+1をブロック暗号化するための鍵として用いて、今度は、このブロック暗号化の結果を、第2のデータパッケージDx+1と連結させ、次に、この連結の結果を、後に続くデータパッケージDx+2のための鍵として用いる(その後も同様)。
【0124】
チェック部Miは、後に続く鍵ki+1をAESブロック暗号化に従って暗号化するための鍵として、中間鍵kiを用いることによって、形成される。その後、この暗号化の結果は、ki+1とXOR連結され、MACチェック値Miが得られる。
【0125】
これは、本発明の一実施形態によれば、セッション鍵を用いるための手段28は、セッション鍵k0から導出された現在の鍵kiと、転送される次のメッセージFi+1用の次の鍵ki+1とに基づいて、転送される現在のメッセージFiのチェック部Miを計算するように構成されていることを意味している。次の鍵ki+1は、導出された現在の鍵kiと、転送される現在のメッセージFiとに依存している。
【0126】
図10は、完全性保護モードの、伝送される2つの各データフレームの全体の流れを示す図である。この流れは、セッション鍵k0に基づいて第1の鍵k1を生成する工程から始まる。
【0127】
プライバシー保護モードでは、全てのデータフレームFiは、データブロックDxを暗号化して、暗号化されたブロックCiを形成することによって安全性が保証される。この鍵kiは、常に、プライバシー保護モードで使用される。この手順は、図11に概略的に示されている。
【0128】
データフレームFiの送信器は、kiおよび各データパッケージDx,Dx+1,...,Dyを用いて、全てのデータパッケージDjを暗号化し、暗号化されたパッケージCjを形成し、データフレームFi内にて(Cx,...,Cy)を伝送する。(Cx,...,Cy)を含むデータフレームFiの受信器も、この鍵kiおよび暗号化されたCx,...,Cyを用いて、暗号化されていない各パッケージDx,Dx+1,....Dyを復号化する。各通信パートナーの両方は、後に続くデータフレームFi+1用の後に続く鍵ki+1を計算する。
【0129】
より長いメッセージを処理するためには、異なる手順が存在する。データは、最初に、データパッケージDxに分割され得る。データパッケージDxのサイズは、暗号化アルゴリズムによって事前に決定される(例えば、128ビットなど)。
【0130】
演算の電子コードブックモード(ECB)および暗号ブロック連鎖方式モード(CBC)モードは、全てのデータパッケージを必要とする。従って、最後のデータパッケージDyは、充填データでパディングされていてよい。
【0131】
その後、データパッケージは、次々に暗号化される。多くの場合使用されるCBC法では、データパッケージの暗号化の結果、以前に暗号化されたデータパッケージの暗号は、次のデータパッケージと連結または連鎖される。一実施形態によれば、Cjおよびki+1を得るための送信器の計算は、次の通りである。
【0132】
x :=ki
x :=AES(鍵=hx-1;q)XORq,
x :=AES(鍵=hx;Dx),
x+1 :=AES(鍵=hx;q)XORq,
x+1 :=AES(鍵=hx+1;Dx+1),
...
y :=AES(鍵=hy-1;q)XORq,
y :=AES(鍵=hy;Dy),
i+1 :=hy (41)
従って、値qは、典型的には128ビット値を示す。この値は、所望のように規定されてよいが、その後、不変に維持される。複数の各実施形態によれば、データパッケージDxのサイズは、常に128ビットであってよい。このサイズに達するためにゼロでパディングすることが、より高位のラッピングプロトコル層によって行われてもよい。
【0133】
複数の各実施形態によれば、図12に図示された、プライバシー保護モードにおける鍵生成の構造は、完全性保護モードまたはMACモードにおける鍵生成と同一である。図9と図12との比較すると、MACモードと比ベて、プライバシー保護モードでは、Dx+jが、定数qのみに置き換えられていることが分かる。
【0134】
この手順は、例えば、さらなる制御経路およびデータ経路の形のハードウェアリソースの低減を回避することが可能であるという利点を提供する。
【0135】
MACモードの図10と同様に、図13も、プライバシー保護モードの、伝送される2つの各データフレームのデータの流れを示しており、第1の鍵k1をセッション鍵k0に基づいて生成する工程によって開始される。
【0136】
図12と同様、図14も、データフレームの受信器の側において、データフレームFiの暗号化された各パッケージCx,...,Cyを暗号復号化するためのスキームを示す図である。鍵kiおよび鍵ki+1、並びにこれらの各鍵の間に位置している全ての中間鍵hx-1,hx,hx+1,....の鍵計算は、送信器の側と同じやり方で、すなわち方程式(41)に従って行われる。
【0137】
暗号化されたパッケージCxを暗号復号化するために、算出された中間鍵hxは、ブロック暗号化AESと逆方向のブロック暗号復号化AES-1のための鍵として用いられる。
【0138】
x :=ki
x :=AES(鍵=hx-1;q)XORq,
x :=AES-1(鍵=hx;Cx),
x+1 :=AES(鍵=hx;q)XORq,
x+1 :=AES-1(鍵=hx+1;Cx+1),
...
y :=AES(鍵=hy-1;q)XORq,
y :=AES-1(鍵=hy;Cy),
i+1 :=hy (42)
概して、通信パートナーPおよび通信パートナーTの両方は、送信器としても受信器としても機能するので、複数の各実施形態によれば、セッション鍵を用いるための手段28は、暗号化される/暗号復号化される現在のデータブロックDi+1/Ci+1用の現在の鍵ki+1を、暗号化される/暗号復号化される前のデータブロックDi/Ci用の前の鍵kiと、規定の値qとに基づいて暗号化する/暗号復号化するように構成されている。
【0139】
まとめると、本発明の各実施形態は、第1に、2つの通信パートナーPおよび通信パートナーTの安全な相互認証を目的としている。従って、複数の各実施形態によれば、第1の通信パートナーはいわゆる近接型カードPであり、第2の通信パートナーは対応する読取装置Tであってよい。
【0140】
第2に、本発明の各実施形態は、2つの各通信パートナー間で交換されたメッセージの完全性保護を確保することを目的としている。第3に、複数の各実施形態に従って、交換されたメッセージのプライバシーの保護が確保される必要がある。
【0141】
従って、複数の各実施形態によれば、これら最後の2つの各目的は、相互排他的であり、すなわち、各通信パートナーは、安全な相互認証10の後、完全性保護を含むデータ転送モード12、または、プライバシー保護を含むデータ転送モードに同意することが可能である。
【0142】
基本的な必要条件として、通信パートナーTおよび通信パートナーPは、秘密鍵暗号の設定に従って、共通の秘密情報kIVを共有している。複数の各実施形態によれば、ブロック暗号化に128ビットの鍵長を備えるAESを用いてよい。しかしながら、他のブロック暗号化アルゴリズムおよび他の鍵長も想定可能である。
【0143】
本発明の各実施形態は、本質的に、サイドチャンネル攻撃に対する安全性を増大させることが可能である。このため、基本となる暗号化モジュール、特にAESハードウェアモジュールにおいて、ハードウェア固有の手段を低減させることが可能になる。これによって、典型的には、近接型カードのサイズは、著しく小型化されることになる。
【0144】
種々な状況によっては、本発明の各方法は、ハードウェアまたはソフトウェアにおいて実装されることが可能である。この実装は、例えばDVD、CD、または電子的に読み出し可能な制御信号を有するディスクといったデジタル記憶媒体上であってよい。このデジタル記憶媒体は、それぞれの方法が実装されるように、プログラム可能なコンピュータシステムと共に動作可能である。
【0145】
従って、本発明は、また、一般に、機械読み出し可能な担体(キャリア)上に格納された、プログラムコードを有するコンピュータプログラム製品を含む。コンピュータプログラム製品は、コンピュータプログラム製品がコンピュータ上で動作すると、本発明の各方法を実行する。換言すると、本発明は、コンピュータプログラムがコンピュータ上で起動すると、セッション鍵を生成する方法を実行するためのコンピュータプログラムとしても実現可能である。

【特許請求の範囲】
【請求項1】
第1の通信パートナー(P;T)および第2の通信パートナー(T;P)に知られたセッション鍵(k0)を、前記第1の通信パートナー(P;T)のために、前記第1の通信パートナーおよび第2の通信パートナーによって決定され得る秘密情報(kIV)から、生成するための装置(20)であって、
乱数(rP;rT)を得るための手段(22)と、
前記乱数(rP;rT)の少なくとも1つの部分と前記秘密情報(kIV)の一部との連結を用いて、前記セッション鍵(k0)を計算するための手段(24)と、
前記セッション鍵(k0)を、前記第2の通信パートナーとの通信のために用いるための手段(28)とを含む、装置。
【請求項2】
前記乱数(rP;rT)を得るための前記手段(22)は、前記乱数の少なくとも第1の部分を、ランダムまたは擬似ランダムに決定するように構成されている、請求項1に記載の装置。
【請求項3】
前記乱数を得るための前記手段(22)は、前記乱数(rP;rT)の第2の部分を、前記第2の通信パートナーから得るように構成されている、請求項2に記載の装置。
【請求項4】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記乱数(rP;rT)の少なくとも1つの部分と前記秘密情報(kIV)の一部との非線形連結(NLM)を用いて、前記セッション鍵(k0)を計算するように構成されている、請求項1〜3のいずれか1項に記載の装置。
【請求項5】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記乱数の少なくとも1つの部分(rP)によってロードされた非線形フィードバックシフトレジスタによって、前記非線形連結(NLM)を実装するように構成されており、
前記非線形フィードバックシフトレジスタは、前記秘密情報(kIV)の一部の個々のビットを、前記シフトレジスタの各レジスタセルに連続的に連結させるものである、請求項4に記載の装置。
【請求項6】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記秘密情報(kIV)の一部によってロードされた非線形フィードバックシフトレジスタによって、前記非線形連結(NLM)を実装するように構成されており、
前記非線形フィードバックシフトレジスタは、連結させる前記乱数の少なくとも1つの部分(rP)の個々のビットを、前記シフトレジスタの各レジスタセルに連続的に連結させるものである、請求項4に記載の装置。
【請求項7】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記再現不可能な多項式(f(X))によって規定された線形フィードバックシフトレジスタによって、前記非線形連結(NLM)を実装するように構成されており、
前記線形フィードバックシフトレジスタは、再現不可能な多項式(f(X))によって規定されて、前記非線形連結(NLM)の結果が、前記乱数(rP;rT)の少なくとも1つの部分と、前記再現不可能な多項式(f(X))を含む前記秘密情報(kIV)の一部との乗法による連結のモジュロ演算に基づくものである、請求項4に記載の装置。
【請求項8】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記非線形連結(NLM)から導かれた値(kP)を、暗号化(AES)用の鍵として用いて、前記秘密情報(kIV)または前記秘密情報(kIV)から導かれた値を暗号化すると共に、前記暗号化(AES)に基づいて、前記セッション鍵(k0)を得るように構成されている、請求項4〜7のいずれか1項に記載の装置。
【請求項9】
前記セッション鍵(k0)を計算するための前記手段(24)は、前記秘密情報(kIV)または前記秘密情報(kIV)から導かれた値を、暗号化(AES)用の鍵として用いて、前記非線形連結(NLM)から導かれた値(kP)を暗号化すると共に、前記暗号化(AES)に基づいて、前記セッション鍵(k0)を得るように構成されている、請求項4〜7のいずれか1項に記載の装置。
【請求項10】
前記暗号化は、ブロック暗号化である、請求項8または9に記載の装置。
【請求項11】
前記ブロック暗号化は、新暗号規格(AES)に基づいている、請求項10に記載の装置。
【請求項12】
前記乱数を得るための前記手段(22)は、第1の乱数(rP)をランダムまたは擬似ランダムに決定して、前記第2の通信パートナーから第2の乱数(rT)を得るように構成されており、
前記セッション鍵(k0)を計算するための前記手段(24)は、第1の暗号化(AES)から導かれた値(k')の、前記第2の乱数(rT)から導かれた値による第2の暗
号化(AES)に基づいて、前記セッション鍵(k0)を得るように構成されており、
前記第1の乱数(rP)と前記秘密情報(kIV)の一部との非線形連結(NLM)から導かれた値(kP)が、前記第1の暗号化(AES)用の鍵として用いられて、前記秘密情報(kIV)または前記秘密情報(kIV)から導かれた値を暗号化して、前記第1および第2の各暗号化(AES)に基づいて、前記セッション鍵(k0)を得るようになっている、請求項1〜11のいずれか1項に記載の装置。
【請求項13】
前記乱数を得るための前記手段(22)は、第1の乱数(rP)をランダムまたは擬似ランダムに決定して、前記第2の通信パートナーから第2の乱数(rT)を得るように構成されており、
前記セッション鍵(k0)を計算するための前記手段(24)は、前記秘密情報(kIV)から導かれた値を、前記第1の乱数(rP)および第2の乱数(rT)から導出された鍵で暗号化すること(AES)に基づいて、前記セッション鍵(k0)を計算するように構成されている、請求項1〜12のいずれか1項に記載の装置。
【請求項14】
前記秘密情報(kIV)は、装置固有の識別(IV)および一般鍵(kM)に基づいて、鍵導出関数(KD)によって決定され得る、請求項1〜13のいずれか1項に記載の装置。
【請求項15】
前記セッション鍵(k0)を用いるための前記手段(28)は、前記第2の通信パートナーとの通信のために、メッセージを認証するためのチェック部(MAC)を、前記メッセージ、および、前記セッション鍵(k0)または前記セッション鍵(k0)から導出された鍵に基づいて、計算するように構成されている、請求項1〜14のいずれか1項に記載の装置。
【請求項16】
前記セッション鍵(k0)を用いるための前記手段(28)は、転送される現在のメッセージのチェック部(Mi)を、前記セッション鍵(k0)から導出された現在の鍵(ki)と、転送される次のメッセージ用の次の鍵(ki+1)とに基づいて、計算するように構成されており、前記次の鍵(ki+1)は、導出された前記現在の鍵(ki)と転送される前記現在のメッセージとに依存している、請求項15に記載の装置。
【請求項17】
前記セッション鍵(k0)を用いるための前記手段(28)は、前記チェック部(Mi)を計算するために、新暗号規格に基づくブロック暗号化(AES)を用いるように構成されている、請求項15または16に記載の装置。
【請求項18】
前記セッション鍵(k0)を用いるための前記手段(28)は、前記第2の通信パートナーとの通信のために、メッセージのデータブロック(Di)を、前記セッション鍵(k0)または前記セッション鍵(k0)から導出された鍵に基づいて暗号化/暗号復号化するように構成されている、請求項1〜17のいずれか1項に記載の装置。
【請求項19】
前記セッション鍵(k0)を用いるための前記手段(28)は、暗号化される/暗号復号化される現在のデータブロック(Di+1)用の現在の鍵(ki+1)を、暗号化される/暗号復号化される前のデータブロック(Di)用の前の鍵(ki)と、規定の値(q)とに基づいて、暗号化/暗号復号化するように構成されている、請求項18に記載の装置。
【請求項20】
前記セッション鍵(k0)を用いるための前記手段(28)は、前記現在の鍵(ki+1)を計算するために、新暗号規格に基づくブロック暗号化(AES)を用いるように構成されている、請求項18または19に記載の装置。
【請求項21】
第1の通信パートナーおよび第2の通信パートナーに知られたセッション鍵(k0)を、前記第1の通信パートナーのために、前記第1の通信パートナーおよび前記第2の通信パートナーによって決定され得る秘密情報(kIV)から、生成する方法であって、
乱数(rP;rT)を得る工程(32)と、
前記乱数(rP;rT)の少なくとも1つの部分と前記秘密情報(kIV)の一部との連結を用いて、前記セッション鍵(k0)を計算する工程(34)と、
前記セッション鍵(k0)を、前記第2の通信パートナーとの通信のために使用する工程(36)とを含む、方法。
【請求項22】
前記セッション鍵(k0)は、前記乱数(rP;rT)および前記秘密情報(kIV)に基づいて、前記第1の通信パートナーおよび前記第2の通信パートナーの両方によって生成される、請求項21に記載の方法。
【請求項23】
前記乱数を得る時に、第1の乱数(kP)は、ランダムまたは擬似ランダムに決定された乱数(rP)または前記乱数から導かれた値と、前記秘密情報(kIV)の一部との非線形連結(NLM)に基づいて決定され、
第2の乱数(rT)は、前記第2の通信パートナーから得られ、
前記セッション鍵(k0)を計算する工程は、前記秘密情報(kIV)から導かれた値を、前記第1の乱数(kP)および第2の乱数(rT)から導出された鍵によって、ブロック暗号化(AES)することに基づく、請求項21または22に記載の方法。
【請求項24】
前記乱数を得る時に、第1の乱数(rP)は、第1の通信パートナーによって、ランダムまたは擬似ランダムに決定され、第2の乱数(rT)が、前記第2の通信パートナーから得られ、
前記セッション鍵(k0)を計算する工程は、前記第1の乱数(rP)と前記秘密情報(kIV)との非線形連結(NLM)でのブロック暗号化(AES)により、前記秘密情報(kIV)をブロック暗号化(AES)して、前記第2の乱数(rT)をブロック暗号化(AES)することに基づく、請求項21〜23のいずれか1項に記載の方法。
【請求項25】
前記セッション鍵(k0)は、認証方法において、前記第1の通信パートナーと前記第2の通信パートナーとの間の認証のための共通の秘密として用いられる、請求項21〜24のいずれか1項に記載の方法。
【請求項26】
前記認証方法は、前記セッション鍵(k0)によって片側認証または相互認証を行うためのチャレンジ・レスポンス法である、請求項21〜25のいずれか1項に記載の方法。
【請求項27】
コンピュータまたはマイクロコンピュータ上で動作する場合のコンピュータプログラムが、請求項21〜26のいずれか1項に記載の方法を実行するためのものである、コンピュータプログラム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A(1)】
image rotate

【図5A(2)】
image rotate

【図5B(1)】
image rotate

【図5B(2)】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate