説明

シークレットキーを使った暗号化計算方法、及び、装置

【課題】SPA攻撃からDES暗号化法に保護するために、シークレットキー(K)をマスクし、各アップデートされた導出計算キー(M’、M’)が、本方法の各実行時異なるようにする。
【解決手段】DES法の各ステップは、先立つキー計算ステップの間に、既知のキー計算方法に基づいて、以前に計算された導出キーから、アップデートされた導出キー(M’、M’)を算出する、複数キー計算ステップ(ET2)を有する。最初のアップデートされた導出キー(M’)は、シークレットキー(K0)から取得されるものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シークレットキー又はプライベートキーを持つ暗号化計算方法及び装置に関するものである。更に、具体的に言えば、本発明は、SPA(Simple Power Analysis)物理的攻撃から前記方法又は装置を適用されたコンポーネントを保護することである。この種の攻撃は、暗号化法を実行するとき、コンポーネントの電力消費から又は電磁放射から、シークレットキー又はプライベートキーに関する情報を取得することを目的としている。
【背景技術】
【0002】
本発明によるコンポーネントは、特に、各種サービス及び/又はデータに対するアクセスが厳しく管理される用途に使用される。これらコンポーネントは、通常、マイクロプロセッサーと、特にシークレットキーを有するプログラムメモリの周辺に形成されるアーキテクチャを有している。
【0003】
このコンポーネントは、例えば、スマートカード、特にバンキング用スマートカードにおいて、コントロール端末又は遠隔端末を介して使用される。
このコンポーネントは、1つ又は複数のシークレットキー暗号化又はプライベートキー暗号化法を用いて、入力データから出力データを計算する。この方法を使って、例えば、暗号化、暗号解読、認証又は、入力メッセージのサインその他、前記入力メッセージのサインの認証を行う。
【0004】
取引の安全性を確保する為には、シークレットキー又はプライベートキー暗号化法の構築は、アルゴリズムの、入力データ及び/又は出力データの知識から、使用されるシークレットキーを決定することが、できないようにする。しかし、コンポーネントのセキュリティは、使用するシークレットキーを秘密保持する能力に依存する。というのは、このキーは変更することができないからである。
【0005】
よく使われる一方法は、DES(Data Encryption Standard)法である。この方法を使って、例えば、64ビットの平文メッセージME(即ち入力データ)と56ビットのシークレットキーK0から、64ビットでコード化され、暗号化されたメッセージMS(即ち出力データ)を作成することができる。
【0006】
DESのメインステップを、図1に詳細に記載する。最初の順序換え(permutation)IPの後、入力データの該順序換えされたビットで形成するブロックが、左側部L0と右側部R0とに分離される。
【0007】
この後、16ラウンドの同一演算が行われる。前記演算の各ラウンドの間、演算の先行するラウンドの間に計算された中間データの、右側部(R0,・・・、R15)は、変換Fと呼ばれる変換の間に、導出キー(derivative key)と組合わせられる。変換Fの結果は、演算の前ラウンドの間に計算された中間データの、左側部(L0,・・・、L15)に加えられる(XOR演算)。
【0008】
第16中間データの16ラウンドの演算の後に、左側部L16と右側部R16は集められ、最終順序換えIP−1(これは、最初の順序換えIPの反転である)でプロセスは完了する。
【0009】
1と16の間に含まれる演算のiランキングラウンドについて、図2に詳細に記載する。前ラウンドの間に計算された中間キーKi−1の56ビット/は、シフトされ(演算Si)、新規アップデートされた中間キーKiを与える。次に、56から48ビットを、順序換え/圧縮のPC演算が選択し、導出キーMiを与える。但しMi=PC(Ki)=PC(Si(Ki-1))。ステップPCとSiは、キー計算ステップET2(キー計算手段)を形成する。
【0010】
並行して変換Fが実行される。先行するラウンドにおいて計算された、1つの中間データの右側部Ri-1は、拡張演算(演算E)により48ビットに拡張され、XORタイプ演算により導出されたキーMと組合わされ、置換演算(substitution operation)により新規32ビットにより置換され(演算SBOXで表される)、次に、再度順序換えされる(演算P)。実施する際は、演算F、P、E、PC、SBOXは、どのラウンドでも同一である。反対に、導出キーK1からK16の計算の間に使用される演算S1からS16は、ラウンド毎に異なる。
【0011】
DES法の実行時の演算F、P、E、PC、SBOXの特徴は、全て既知である:実行された演算、使用されたパラメータ等。これら特徴は、例えば、特許出願WO 00/46953。又は、“Data Encryption Standard, FIPS PUB46”(1977,1,15発行)に、詳細に説明されている。
【0012】
シークレットキー又はプライベートキーを使ったコンポーネントのセキュリティは、それが使うキーの秘密維持する能力に依存している。特に、SPA分析を受ける時にはそうである。
【0013】
SPA分析において、コンポーネントは、実行するとき、同一入力データMEを適用して、複数回、暗号化法を実行するように構成される。該実行のトレースは、時間の関数として測定される。例えば、該トレースは、コンポーネントの電力消費、又は、時間の関数として放出される電磁エネルギーを表す。測定の組は、平均化され、測定からノイズを除去し、固定入力データMEの回路の現実のトレースを取得する。例えば、1組の10から1000の同一測定によれば、測定からノイズを十分除去でき、固定入力データMEのコンポーネントの現実のトレースを取得できる。
【0014】
DES方法の場合の、このようなトレースの形態を図3に示す。この形は、明瞭に、DES法の異なるステップを示す。即ち、最初の順序換え(t1以前の)、t2とt1、t3とt2、…t17とt16の間の16ラウンドの演算、最後の順序換え(t17後の)。
【0015】
図3のトレースから見て分かるように、標準DES法を使うコンポーネントの場合に使用されるシークレットキーに関する情報を得ることは、極めて簡単である。例えば、演算の各ラウンドで、時間インターバル(この間に、導出キー伝達命令(a derived transfer instruction)が、前記XOR演算の実行前に実行される)を同定しながら、導出キーMiのイメージを決定することができる。全導出キーM1〜M16は、既知の演算で、シークレットキーから取得されるから、前記導出キーの単純なイメージについて知り得れば、シークレットキーについての情報が与えられる。
【0016】
更に一般的に、シークレットキーを使った暗号化法は、全て、SPA分析に対し、多かれ少なかれ弱い。その弱さ(sensitivity)は、特に、シークレットキーが直接に、又は、既知の導出キースケジューリング法により取得され導出された形で使用される、クリティカル段階を実行する期間、特に重要である。例えば、この種のクリティカル段階は、導出キースケジューリング段階(この間に、アップデートされた導出キーMiは、前回算出されたキーMi-1から計算される)である。
【発明の開示】
【発明が解決しようとする課題】
【0017】
本発明の目的は、SPAの物理的攻撃に対し、免疫力をつけたシークレットキー又はプライベートキーで、暗号化計算の為の安全化方法を実装することである。即ち、暗号化計算の安全化方法は、本方法を実行する時、使用する入力データがどのようなものであるにせよ、本方法を使用する回数がどのようなものであるにせよ、本方法は使用するキーについての情報を与えないものである。
【0018】
この目的をもって、本発明は、入力データ(ME)とシークレットキー(K0)から、出力データを与える暗号化計算法に関する。本方法は、複数の導出キースケジューリングステップ(ET2)(キー計算手段)を有するもので、既知のキースケジューリング法に従って、前に算出された導出キーからアップデートされた導出キー(M‘1、…、M’i、…)を供給するものである。最初のアップデートされた導出キーは、シークレットキー(K0)から取られる。
【0019】
本発明によると、本方法は、マスキングステップ(ET1)(このステップは、シークレットキー(K0)をマスクするための、最初のキースケジューリングステップ(ET2)の前に実行される)を含む。なお、アップデートされた導出キー(M’1,…,M’i,…)は、本方法を実行する時点毎に異なる。
【0020】
本発明は、又、本発明による暗号化計算法を使う電子的コンポーネントに関するものである。用語「マスクされた」(即ち「ミックスされた」)は、ここで又は本書の他の部分では、以下の意味に解すべきである。:本発明に従う方法において、データ、結果がマスクされたといわれる時は、二つの実行の間に、特に同一入力データと同一シークレットキーを使った方法を2回実行する間、それらが異なる値を持つ場合である。
【0021】
このように、本発明による暗号化計算法を使うと、同一入力データで本方法を2回実行するコンポーネントは、二つの異なるトレースを出力する。特に、本方法のクリティカル命令(これは導出キーを使用する)が残すトレースに対応するクリティカル時間インターバル時に。
換言すれば、使用された入力データがどのようなものであるにせよ、例え本発明による暗号化計算法の数回にわたる実行の間に入力データは同一であるにせよ、コンポーネントが残すトレースは、常に、一つの実行時と他の実行時では異なる。
【0022】
この結果を得るために、マスキングステップの間に、ランダムに選択されたマスキングパラメータはシークレットキーとミックスされ、マスクされたシークレットキーが出力される。最初の導出キーは、最初のキースケジューリングステップの間に、マスクされたシークレットキーから計算される。
マスキングステップの後、非マスクのシークレットキーは消去してもよい。というのは、その後使用されないからである。しかし、シークレットキーは、本方法の次のステップで使用される。本方法のセキュリティはこのように増強される。
【0023】
このように、本発明では、本発明の実施時に現実に操作されたキー全ては、ランダム数である。何故ならば、それはランダム数(マスキングパラメータ)のマスキングから導かれるものであるからである。従って、本方法の1つの実施から他の実施で、本方法を使うコンポーネントのトレースは、それ自身ランダムである。各実施の前にランダムに選択するマスキングパラメータがあるからである。
【0024】
従って、コンポーネントのトレースについての、多数の測定を行う時に、同一の入力データを使う場合には、これら測定結果を平均すると、平均トレースになる。これは時間の関数として一定(1組のランダムトレースの平均)である。そして、クリティカルな演算が行われたとしても、これは、使われたキーの値に関する情報を与えない。このように、本発明を使うと、コンポーネントは、如何なるSPAタイプの物理的攻撃に対しも完全に免疫抵抗を有する。
【0025】
本発明は、このように、SPA攻撃の弱点を使い、コンポーネントを保護するものである。確かに、SPA攻撃が成功した場合、即ち、SPA攻撃がコンポーネントが使うシークレットキーに関する情報を提供する場合、必ず、以下のためのクリティカルな時間インターバルが必要になる。
―入力データMEが同一である時、コンポーネントのトレースが、このインターバルに関し同一である、
―このインターバルの期間、可視情報(visible information)は関係がある(relevant)。即ち、この期間、前記情報が、シークレットキー全部又は一部、及び/又は、シークレットキーから導出されたキーの全部又は一部を表す。
【0026】
仮に使用する入力データが同一であっても、本発明のコンポーネントは、本発明の方法を実施する間には、種々のトレースを与える。従って、クリティカルなインターバル(一つの方法の実施から他の方法の実施において、可視情報は関係が有り、同一である)を見つけることは不可能である。従って、コンポーネントに対するSPA攻撃はシークレットキーに関する情報を提供することできない。
【0027】
変形例によると、本発明の方法は、又、以下を含むものである。
―導出計算されたキー又はアップデートされた導出キーを使った計算ステップ、
―前記計算ステップの後で実行され、前記計算ステップの結果に関するマスキングパラメータの寄与を除去するアンマスキングステップ(unmasking step)。
【0028】
他の変形例において、本発明の方法は、複数計算ステップを有し、各ステップはアップデートされた導出キーを使い、アンマスキングステップは、各計算ステップの後に実行され、先行する計算ステップの結果に関するマスキングパラメータの寄与を除去する。
【0029】
マスキングステップの間、例えば、以下の演算が実行される。
K’0=K0|X0、
K’0は、マスクされたシークレットキー、
K0は、シークレットキー、
X0は、マスキングパラメータである。
演算子|はミキシング演算子で、好ましくは、2パラメータ線形演算子である。一つの例において、ミキシング演算子は、XOR演算子である。
アンマスキングステップの間、ミキシング演算子の逆元(inverse)の演算子は、アップデートされた導出キーから導かれるマスキングパラメータの寄与を除去するのに使用されることが好ましい。
【0030】
本発明の好ましい実施例によると、本方法は、安全なDES法であって、16ラウンドの演算を有する。各ラウンドの演算は、アップデート導出キーを使う。
【0031】
一つの実施例において、単一マスキングステップはDES方法の第1ラウンド1に先立って実行される。他の実施例では、マスキングステップは、マスキングステップは、DESタイプ法の各ラウンドのスタート時に実行される。
各演算ラウンドにおいて、
―計算ステップを含む変換が実行され、これは、先行するラウンド間に計算された 中間データとアップデータされた導出キーを組合わせるものである。
―前記計算ステップの後で、アンマスキングステップが実行される。
【0032】
各マスクされアップデータされた導出キーが演算ラウンド間に計算される。又は、導出キーの全ては、演算のラウンドとは独立して、別に計算してもよい。例えば、導出キーは、本方法の開始段階の前、又は期間に実施されてもよい。
【発明を実施するための最良の形態】
【0033】
以下に示す第1の例において、図4に示すダイアグラムの方法を説明する。32ビットの入力データR0をエンコードし、シークレットキーK0と前記入力データR0とから32ビットの出力データR1を作成する。
本方法は、導出キー計算ステップET2と変換ステップFに、大別することができる。
導出キー計算ステップET2(導出キー計算手段)は、シークレットキーK0から導出キーM1を算出する。前記キー計算ステップは、変数K0の複数ビットをシフトする演算S1が形成する。これにより、K1=S1(K0)と順序換え/圧縮演算ステップPCが行われる。このように、導出キーM1が、次の関係式(relation)により得られる。
M1=PC(S1(K0))。
【0034】
前記変換ステップFは、前記入力データR0及び導出キーM1から出力データR1を与える。
変換ステップFは標準DES法のステップFと同一であり、次のように分割される。データR0は拡張Eにより32ビットから48ビットに拡張され、XOR演算により、導出キーM1と組合わせられ、置換演算SBOXの間に、新規の32ビットにより置換され、次に順序換えされる(演算P)。このように、出力データR1は、次の関係式から得られる。
R1=P(SBOX(E(R0)+M1)).
【0035】
図4の方法は、本発明によるもので、開始ステップET0、マスキングステップET1、差分計算ステップ(a difference computing step)ET3とアンマスキングステップET4(図5)を加えて行われる。
開始ステップET0の間、マスキングパラメータX0がランダムに選択される。
マスキングステップET1(これは、前記開始ステップET0の後に実行される)の間、マスキングパラメータX0は、シークレットキーK0とミックスされ、マスクされたシークレットキーK’0を出力する。ミキシングは、次の関係式により行われる。
K’0=K0|X0。
【0036】
演算子|は、ミックスする二変数に関して線形であるように選ばれる。一つの実施例において、演算子|はXOR演算子である。演算子|は、又、線形演算子タイプであってよい。一般的に、演算子|は、データA,B,Cが何であろうとも、次の性質を持つ。
【0037】
【数1】

【0038】
−演算子|-1が存在し、|の逆演算子である。即ち(A|B)|-1A=B、
| と |-1 が同一でありえる。
【0039】
次に、キー計算ステップET2(キー計算手段)がシークレットキーK’0から実行され、マスクされた導出キーM’1を算出する。このように、マスクされ、導出されたキーが次関係式により与えられる。
M’1=PC(S1(K’0))=PC(S1(K0|X0))
=PC(S1(K0)|PC(S1(X0))
最後の等号は、演算子PC、S1、|が線形演算子であるという事実から導かれる。
PC(S1(K0)=M1(図4の例を参照)であるから、それからM’1=M1|PC(S1(X0))が導かれる。但し、M1は、図4の方法により計算された導出キーで、安全なものではない(non secured)。
【0040】
差分計算ステップET3(差分計算手段)は、開始ステップET0の後で実行される。ステップET3は、キー計算ステップET2(キー計算手段)の前に、同時に、又は後で実行してもよい。
ステップET3は、マスクされた導出キーM’1に対するパラメータX0の寄与(contribution)C1を決定する。
ステップET3は、ステップET2と類似している。ステップET3は演算S1及び演算PCを含む。演算S1はマスキングパラメータX1=S1(X0)(X0のビットをシフトすることでアップデートされる)を出力し、演算PCは寄与C1を計算する。寄与C1は、次関係式に基づいて計算される。
C1=PC(S1(X0))。
最後にそれからM’1=M1|C1が導かれる。
【0041】
アンマスキングステップET4は、変換ステップF’(これは、本発明によるステップET4の追加により修正された変換Fに対応する)のサブステップである。ステップET4は、XOR演算子による組合せ演算と非線形置換演算SBOXとの間で実行される。
ステップET4は、アップデートされたパラメータX1が組合せ演算の結果に与えた寄与C1を除去することを目的とする。このために、演算子|-1が使われる。これは、|の逆線形演算子である。例えば、演算子|がXORとすると、演算子|-1も又、XORである。ステップET4の出力において、次式を得る。
【0042】
【数2】

【0043】
このように、寄与C1を取去った後、SBOX演算子の入力に出現する変数はE(R0)+M1である。即ち、本発明に基づくが、しかし安全ではない類似の方法(図4)の演算子SBOXの入力に現われる変数と同一である。従って、変換ステップF’の出力に現われる出力データは、図4の非安全化方法の変換演算Fの出力に現われるものと同一である。
【0044】
これまで説明してきたように、図4と5の方法が与える結果は、厳密に言って同一である。即ち、入力データ要素とシークレットキーが同一の場合、出力データ値は、両者のケースで同一である。
【0045】
従来のDES法の場合のように、図4の方法は、同一の理由により、SPA攻撃に弱い。実際、同一のシークレットキーK0に対し、導出キーM1の値は、本方法の各実施において、同一である。従って、SPA攻撃は、本方法のトレースを測定することにより、可能である。特に、キー計算ステップET2と変換ステップF’の間である時間インターバルにおいて可能である。
【0046】
これとは、対照的に、本発明による図5の方法は、SPAタイプ攻撃に対し、免疫抵抗力がある。実際、1つの同一のシークレットキー値K0に対し、対応する導出キーM’1の値は、本方法の一つの実施と他の実施では、常に異なる。なぜならば、アルゴリズムの開始期間にランダムに選択されたマスキングパラメータX0は、導出キーM’1に対し、ランダムな寄与C1をする。
このように、本発明によると、本方法は、SPA攻撃に対し、ランダムなマスキングパラメータを付加することにより、保護されるのである。
【0047】
他の例において、図1、2に示すDES法を説明する。上記に見られるように、DES暗号化法は、シークレットキーK0と入力MEから出力データMSを計算する。DES法は16ラウンド演算から構成されており、入力順序換えIPがそれに先行し、出力順序変えIP−1(これは、入力順序換えの反転演算である)が後続する。各演算ラウンドは、特に(ステップ2)、導出キー計算ステップET2(導出キー計算手段)と変換ステップFを含む。
【0048】
本発明によると、開始ステップET0、マスキングステップET1の追加及び、各演算ラウンドで差計算ステップET3、アンマスキングステップET4の追加により、DES法は安全化される(図6)。これは、図5と同様である。説明を明確に単純にするために、第iラウンドの演算だけを図6に示す。演算は本発明の特徴ステップET0〜ET4を有している。但し、iは1〜16の間の整数である。
【0049】
開始ステップET0の間に、マスキングパラメータX0がランダムに選択される。
マスキングステップET1の間に、開始ステップET0の後で、マスキングパラメータX0は、シークレットキーK0とミックスされ、上記実施例に示したように、マスクされたシークレットキーK’0を与える。このミキシングは、次の関係式に基づいて行われる。:
K’0=K0|X0
【0050】
第iラウンドにおいて、キー計算ステップET2(キー計算手段)は、第iランキングのマスクされた中間キーK’i-1(先行するi−1ランキングラウンドのステップET2の間に計算された、)からマスクされた導出キーM’iを与える。ステップET2は、演算Si(前に計算されマスクされた中間キーK’i−1のビットをシフトする)と演算PCを含む。以下の関係式を得る。
【0051】
【数3】

【0052】
最後の複数等号は、線形演算子PC、Si、|の性質から得られるものである。更に、PC(Si(Ki-1))=Mi(図2の例参照)から、次式が導かれる。
M’i=Mi|PC(Si(Xi−1))
【0053】
差計算ステップET3は、開始ステップET0の後、実行される。ステップET3は、ステップET2の前に、平行して、又は後に、実行してもよい。ステップET3は、マスキングパラメータX0の値をアップデートし、Xi−1が導出キーM’iに与える寄与Ciを決定する。
【0054】
ステップET3は、キー計算ステップET2(キー計算ステップ)と同様である。ET3は、演算Si(パラメータXi−1のビットをシフトすることによりXiを出力する)と演算PC(寄与Ciを出力するように順序換え/圧縮を行う)を有する。寄与Ciは、次の関係式から計算される。
Ci=PC(Xi)=PC(Si(Xi−1))。
これから、最後に、次式が導かれる。
M’i=Mi|Ci
【0055】
アンマスキングステップET4は変換ステップF’(本発明のステップET4を追加して修正される変換Fに対応する)のサブステップである;ステップET4は、XOR演算子の組合せ演算と非線形置換演算SBOXの間で実行される。ステップET4は、演算子|-1を使ってアップデートされたマスキングパラメータXiが与える寄与Ciを除去するものである。ステップET4の後に、SBOX演算子の入力に現われる変数は、次に等しい。
【0056】
【数4】

【0057】
従って、それは類似の方法であるが(図1、2)、本発明によるが安全なものではない方法の演算子SBOXの入力に現われる変数と同一である。従って、変換ステップF’の出力に現れるデータRiは、非安全(non-secured)DES法(図1,2)の変換演算Fの出力に現われるものと同一である。
【0058】
このように、本発明による安全化DES法を使うと、計算される中間データLi、Ri(但しiは、1〜16の整数である)は、標準的なDES法で得られるものと同一である。これとは対照的に、本発明による安全化法を使うと、使用されるどのキー(シークレットキー、中間キー、導出キー)も、SPA攻撃にアクセスされることはない。更に具体的に言えば、導出キー計算に対応する本方法のステップに対するSPA攻撃は、シークレットキーに関する、及び/又は、複数中間キーKi又は複数導出キーの1つに関する情報を与えるものでない。実際、これらキ-の値は、本方法が使用する入力データ又はシークレットキーが、どのようなものであろうと、本方法の実行時に異なっている。
【0059】
図6の方法の修正及び/又は改良は、本発明の範囲から逸脱しない範囲で可能である。
例えば、図6のDES法において、キー計算ステップET2(キー計算手段)と差分計算ステップET3(差分計算手段)は、キーM’iと寄与Ci(これは、ステップET2,ET3により生成される)を使う演算ラウンドの期間に実行される。
【0060】
しかし、DES法の演算ラウンドとは独立に、ステップET2、ET3を実行することは、可能である。例えば、本方法の開始フェーズの間に、X0を選択するためのステップET0の後で、全ステップET2、ET3を実行することは可能である。全キーM’1,M’16及び全寄与C1〜C16は、この場合、記憶され、使用される演算ラウンドで供給される。
最後に、留意すべきは、個々に説明した例全部は、本発明の範囲を制限するものではないと考えるべきである。
【0061】
本発明に不可欠なことは、ランダムパラメータを暗号化法に導入することである。それは、入力データ及び/又はシークレットキー及び/又は出力データの値がどのようなものであろうと、コンポーネントによる本方法の二つの実施の間に、このコンポーネントが、異なる複数キー(シークレットキー、中間キー、導出キー)を使用するようにするためである。特に、同一入力データ及び/又は同一シークレットキー及び/又は同一出力データを使用する二つの実施の間に。
このように、本方法を実施する場合において、異なるキーを使用することによって、本方法は、異なるトレースを生成する。従って、本方法は、SPA攻撃に強いものである。
【図面の簡単な説明】
【0062】
【図1】シークレットキーを使った既知の暗号化法を説明するブロック図である。
【図2】図1の方法の詳細ステップを説明する流れ図である。
【図3】時間の関数として、図1の暗号化法を使った部品が残した実際のトレースである。
【図4】簡単化された暗号化法の流れ図である。
【図5】本発明により安全化された図4の方法の流れ図である。
【図6】本発明により安全化されたDESタイプの流れ図である。

【特許請求の範囲】
【請求項1】
入力データ(ME)とシークレットキー(K)から出力データ(MS)を得る暗号化計算方法であって、
前記暗号化計算方法は、既知のキー計算方法に基づいて、先行するキー計算ステップの間に計算された導出キー(M’i−1)からアップデートされた導出キー(M′i)を算出する複数の演算ステップ(ET2)を有し(但し、最初のアップデートされた導出キー(M′1)はシークレットキー(K0)から算出される)、
また、前記暗号化計算方法は、最初のキー計算ステップ(ET2)の前に実行される単一のマスキングステップ(ET1)を有し、シークレットキー(K)をマスクし、各アップデートされた導出計算キー(M’、…、M’、…)が本方法の各実行時異なることを特徴とする暗号化計算方法。
【請求項2】
マスキングステップ(ET1)の間に、ランダムに選択されたマスキングパラメータ(X)がシークレットキー(K)とミックスされ、マスクされたシークレットキー(K′)が算出され、最初のキー計算ステップ(ET2)において、最初の導出キー(M’)はマスクされたシークレットキー(K)から計算されることを特徴とする請求項1に記載の暗号化計算方法。
【請求項3】
マスキングステップ(ET1)は、前記方法の開始ステップ(ET0,ET1)の間に実行されることを特徴とする請求項2に記載の暗号化計算方法。
【請求項4】
―アップデータされた導出キー(M’、…、M’、…)を使う計算ステップ(ET5)と、
―以前の計算ステップの結果からマスキングパラメータ(X)の寄与を除去するために、計算ステップ(ET5)の後に実行するアンマスキングステップ(ET4)と、
を含む請求項2又は請求項3に記載の暗号化計算方法。
【請求項5】
マスキングステップ(ET1)の間に、
K’=K|X’
但し、K’は、マスクされたシークレットキーであり、
は、シークレットキーであり、
は、マスキングパラメータであり、
|は、ミキシング演算子である。
の演算が実行されることを特徴とする請求項2〜4のいずれか1項に記載の暗号化計算方法。
【請求項6】
前記ミキシング演算子は、2パラメータ線形演算子であることを特徴とする請求項5に記載の暗号化計算方法。
【請求項7】
ミキシング演算子は、XOR演算子であることを特徴とする請求項5又は6に記載の暗号化計算方法。
【請求項8】
アンマスキングステップ(ET4)において、ミキシング演算子の反転演算子が使われることを特徴とする請求項4に記載の暗号化計算方法。
【請求項9】
アップデートされた導出キー(M’、…、M’、…)を使う複数計算ステップ(ET5)を有し、又、各計算ステップ(ET5)の後、アンマスキングステップ(ET4)を実行し、先行する計算ステップ(ET5)の結果からマスキングパラメータ(X)の寄与を除去することを特徴とする請求項2〜8のいずれか1項に記載の暗号化計算方法。
【請求項10】
各ラウンドの演算はアップデートされた導出キー(M′、…、M′16)を使い、第1ラウンドより前にマスキングステップ(ET1)を実行する、16ラウンドの演算を行うDES方法による、請求項2〜8のいずれか1項の暗号化計算方法。
【請求項11】
各操作ラウンドにおいて、次の演算を含む変換Fが実行される請求項10に記載の暗号化計算方法。
―先行するラウンドで計算された中間データと、アップデータされた導出キー(M’、…M’16)とを組合わせる計算ステップ(ET5)と、
―前記計算ステップの後実行するアンマスキングステップ(ET4)と、
を含む、請求項10記載の方法。
【請求項12】
入力データ(ME)とシークレットキー(K)から出力データ(MS)を得る暗号化計算装置であって、
前記暗号化計算装置は、所定のキー計算方法を使って、先行するキー計算の間に計算された導出キー(M’i−1)からアップデートされた導出キー(M′i)を算出する複数の演算手段を有し(但し、最初のアップデートされた導出キー(M′1)はシークレットキー(K0)から算出される)、
また、前記暗号化計算方法は、単一のマスキング演算を最初のキー計算の前に実行し、シークレットキー(K)をマスクする演算をおこない、各アップデートされた導出計算キー(M’、M’)が各演算ラウンド毎に異なることを特徴とする暗号化計算装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2008−295109(P2008−295109A)
【公開日】平成20年12月4日(2008.12.4)
【国際特許分類】
【出願番号】特願2008−232726(P2008−232726)
【出願日】平成20年9月10日(2008.9.10)
【分割の表示】特願2002−563651(P2002−563651)の分割
【原出願日】平成14年2月6日(2002.2.6)
【出願人】(591035139)エステーミクロエレクトロニクス ソシエテ アノニム (31)
【Fターム(参考)】