(57)【要約】本発明は、本発明は、入力データ（ＭＥ）とシークレットキー（Ｋ０）から出力データ（ＭＳ）を算出するための、暗号化計算の安全化方法に関するものである。各ステップは、先立つキー計算ステップの間に、既知のキー計算方法に基づいて、以前に計算された導出キーから、アップデートされた導出キー（Ｍ’１、Ｍ’ｉ）を算出する、複数キー計算ステップ（ＥＴ２）を有する。最初のアップデートされた導出キー（Ｍ’１）は、シークレットキー（Ｋ０）から取得されるものである。本発明は、前記方法が、シークレットキー（Ｋ０）をマスクし、各アップデートされた導出計算キー（Ｍ’１、Ｍ’ｉ）が、本方法の各実行時異なるようにするために、最初のキー計算ステップ前に実行されるマスキングステップ（ＥＴ１）を含むことを特徴とする。本方法は、バンキング取引又は更に一般的な取引操作の安全化に応用できる。
2004527787.tif 000002
【特許請求の範囲】
【請求項１】
各ステップは、先立つキー計算ステップの間に、既知のキー計算方法に基づいて、以前に計算された導出キー（Ｍ’ｉ−１）から、アップデートされた導出キー（Ｍ’１、Ｍ’ｉ）を算出する、複数導出キー計算ステップ（ＥＴ２）を有し、最初のアップデートされた導出キー（Ｍ’１）は、シークレットキー（Ｋ０）から取得される方法で、
前記方法は、シークレットキー（Ｋ０）をマスクし、各アップデートされた導出計算キー（Ｍ’１、Ｍ’ｉ）が、本方法の各実行時異なるようにするための、最初のキー計算ステップ前に実行される単一のマスキングステップ（ＥＴ１）を含むことを特徴とする、
入力データ（ＭＥ）とシークレットキー（Ｋ０）から出力データ（ＭＳ）を得る暗号化計算の安全化方法。
【請求項２】
マスキングステップ（ＥＴ１）の間に、ランダムに選択したマスキングパラメータ（Ｘ０）が、シークレットキー（Ｋ０）とミックスされ、マスクされたシークレットキー（Ｋ’０）が算出され、最初の導出キー（Ｍ’１）は、最初のキー計算ステップ（ＥＴ２）において、マスクされたシークレットキー（Ｋ０）から計算されることを特徴とする請求項１記載の方法。
【請求項３】
マスキングステップ（ＥＴ１）は、前記方法の開始ステップ（ＥＴ０，ＥＴ１）の間に実行されることを特徴とする請求項２記載の方法。
【請求項４】
―アップデータされた導出キー（Ｍ’１、Ｍ’ｉ）を使う計算ステップ（ＥＴ５）と、
―以前の計算ステップの結果からマスキングパラメータ（Ｘ０）の寄与を除去するために、計算ステップ（ＥＴ５）の後、実行する案マスキングステップ（ＥＴ４）と、
を含む請求項２又は請求項３記載の方法。
【請求項５】
マスキングステップ（ＥＴ１）の間に、
Ｋ’０＝Ｋ０｜Ｘ’０
但し、Ｋ’０は、マスクされたシークレットキーであり、
Ｋ０は、シークレットキーであり、
Ｘ０は、マスキングパラメータであり、
「｜」は、ミキシング演算子である。
の操作が実行されることを特徴とする請求項２〜４のうちの１項記載の方法。
【請求項６】
前記ミキシング演算子は、２パラメータ線形演算子であることを特徴とする請求項５記載の方法。
【請求項７】
ミキシング演算子は、ＸＯＲ演算子であることを特徴とする請求項５又は６記載の方法。
【請求項８】
アンマスキングステップ（ＥＴ４）において、ミキシング演算子の反転演算子が使われることを特徴とする請求項４記載の方法。
【請求項９】
アップデートされた導出キー（Ｍ’１、・・・Ｍ’ｉ）を使って、先立つ計算ステップ（ＥＴ５）の結果のマスキングパラメータ（Ｘ０）の寄与を除去するために、各計算ステップ（ＥＴ５）の後、アンマスキングステップ（ＥＴ４）を実行する、複数計算ステップ（ＥＴ５）を有する請求項２〜８のいずれか1項記載の方法。
【請求項１０】
各ラウンドの操作は、アップデートされた導出キー（Ｍ’１、・・・Ｍ’１６）を使い、ＤＥＳタイプの方法の最初のラウンドより前にマスキングステップ（ＥＴ１）を実行する、１６ラウンドの操作を有するＤＥＳタイプの方法である、請求項２〜８のいずれか1項の方法。
【請求項１１】
―先立つラウンドで計算された中間データと、アップデータされた導出キー（Ｍ’１、・・・Ｍ’１６）を組合わせる計算ステップ（ＥＴ５）と、
―前記計算ステップの後実行するアンマスキングステップ（ＥＴ４）と、
を含む、各操作ラウンドにおいて、変換Ｆが実行される請求項１０記載の方法。
【請求項１２】
請求項１〜１１のいずれか１項に基づく暗号化計算の安全化法を有する電子部品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シークレット又はプライベートキーを持つ暗号化計算の安全化方法に関するものである。本発明は、又、この種の方法を応用したコンポーネントに関する。更に、具体的に言えば、本発明は、ＳＰＡ（Simple Power Analysis）タイプ物理的攻撃から前記コンポーネントを保護することである。この種の攻撃は、暗号化法を実行するとき、力づくにより、又は、コンポーネントの電磁放射を介して、シークレット又はプライベートキーに関する情報を取得するために計画される。
【背景技術】
【０００２】
本発明によるコンポーネントは、特に、各種サービス及び／又はデータに対するアクセスが厳しく管理される用途に使用される。これらコンポーネントは、通常、マイクロプロセッサーと、特にシークレットキーを有するプログラムメモリの周辺に形成されるアーキテクチャを有する。
【０００３】
このコンポーネントは、例えば、スマートカード、コントロール端末を使う、又は遠隔端末で、特にバンキング用途用に使用される。
このコンポーネントは、１つ又はそれ以上のシークレットキー暗号化又はプライベートキー暗号化法を用いて、入力データから出力データを計算する。この方法を使って、例えば、暗号化、暗号解読、認証又は、入力メッセージのサインその他、前記入力メッセージのサインの確認を行う。
【０００４】
取引の安全性を確保する為には、シークレットキー又はプライベートキー暗号化法の構築は、アルゴリズムの、入力データ及び／又は出力データの知識から、使用されるシークレットキーを決定することが、できないようにする。しかし、コンポーネントのセキュリティは、使用するシークレットキーを秘密裏に保持する能力に依存する。というのは、このキーは変更することができないからである。
【０００５】
よく使われる一方法は、ＤＥＳ（Data Encryption Standard）タイプ法である。この方法を使って、例えば、６４ビットの平文メッセージＭＥ（即ち入力データ）と５６ビットのシークレットキーＫ０から、６４ビットでコード化され、暗号化されたメッセージＭＳ（即ち出力データ）を作成することができる。
【０００６】
ＤＥＳのメインステップを、図１に詳細に記載する。最初の順序換え（permutation）ＩＰの後、入力データの該順序換えされたビットが形成したブロックが、左側部Ｌ０と右側部Ｒ０とに分離される。
【０００７】
この後、１６ラウンドの同一操作が行われる。前記操作の各ラウンドの間、操作の前ラウンドの間に計算された中間データの、右側部（Ｒ０,・・・、Ｒ１５）は、変換Ｆと呼ばれる変換の間に、導出キー（derivative key）と組合わせられる。変換Ｆの結果は、操作の前ラウンドの間に計算された中間データの、左側部（Ｌ０,・・・、Ｌ１５）に加えられる（XOR演算）。
【０００８】
第１６中間データの１６ラウンドの操作の後に、左側部Ｌ16と右側部Ｒ16は、集められ、最終順序換えＩＰ−１（これは、最初の順序換えＩＰの反転である）でプロセスは完了する。
【０００９】
１と１６の間に含まれる操作のｉランキングラウンドについて、図２に詳細に記載する。前ラウンドの間に計算された中間キーＫｉ−１の56ビット/は、シフトされ（操作Ｓi）、新規アップデートされた中間キーＫiを与える。次に、56から48ビットを、順序換え/圧縮のＰＣ操作が選択し、導出キーＭiを与える。但しＭi＝ＰＣ（Ｋi）＝ＰＣ（Ｓi（Ｋi-1））。ステップＰＣとＳｉは、キー計算ステップＥＴ2を形成する。
【００１０】
平行して、変換Ｆが実行される。前ラウンドにおいて計算された、１つの中間データの右側部Ｒｉ-1は、拡張操作（操作Ｅ）により、48ビットに拡張され、ＸＯＲタイプ操作により導出されたキーＭと組合わせられ、置換操作により新規32ビットにより置換され（操作ＳＢＯＸで表される）、次に、再度順序換えされる（操作Ｐ）。実施する際は、操作Ｆ、Ｐ、Ｅ、ＰＣ、ＳＢＯＸは、どのラウンドでも同一である。反対に、導出キーＫ1からＫ16の計算の間に使用される、操作Ｓ1からＳ16は、ラウンド毎に異なる。
【００１１】
ＤＥＳ法の実行時の操作Ｆ、Ｐ、Ｅ、ＰＣ、ＳＢＯＸの特徴は、全て既知である。これら特徴は、例えば、特許出願WO  00/46953。又は、“Data Encryption Standard,FIPS PUB46”(1977,1,15発行)に、詳細に説明されている。
【００１２】
シークレットキー又はプライベートキーを使ったコンポーネントのセキュリティは、それが使うキーを秘密裏に維持する能力に依存している。特に、ＳＰＡタイプ分析を経る時にはそうである。
【００１３】
ＳＰＡ分析において、コンポーネントは、実行するとき、同一入力データMEを適用して、複数回、暗号化法を実行するように構成される。該実行のトレースは、時間の関数として測定される。例えば、該トレースは、コンポーネントの電力消費、又は、時間の関数として放出される電磁エネルギーを表す。測定の組は、平均化され、測定からノイズを除去し、固定入力データＭＥの回路の現実のトレースを取得する。例えば、１組の10から1000の同一測定によれば、測定からノイズを十分除去でき、固定入力データＭＥのコンポーネントの現実のトレースを取得できる。
【００１４】
ＤＥＳタイプの法の場合の、このようなトレースの形態を図３に示す。この形は、明瞭に、ＤＥＳ法の異なるステップを示す。即ち、最初の順序換え（ｔ1以前の）、ｔ2とｔ1、ｔ3とｔ2、…ｔ17とｔ16の間の16ラウンドの操作、最後の順序換え（ｔ17後の）。
【００１５】
図３のトレースから見て分かるように、標準DES法を使うコンポーネントの場合に使用されるシークレットキーに関する情報を取得することは、極めて簡単である。例えば、操作の各ラウンドで、時間インターバル（この間に、導出キー伝達命令（a derived transfer instruction）が、前記ＸＯＲ操作の実行前に実行する）を識別しながら、導出キーMｉのイメージを決定することが可能である。全導出キーＭ1〜Ｍ16が、既知の操作で、シークレットキーから取得されるから、前記導出キーの単純なイメージについての知識があれば、シークレットキーについての情報が分かる。
【００１６】
更に一般的に、シークレットキーを使った暗号化法は、全て、ＳＰＡタイプ分析に対し、多かれ少なかれ傷つきやすい。その弱さ（sensitivity）は、特に、シークレットキーが直接に、又は、既知の導出キースケジューリング法により取得され導出された形態で使用される、クリティカル段階を実行する期間、特に重要である。例えば、この種のクリティカル段階は、導出キースケジューリング段階（この間に、アップデートされた導出キーＭiは、前回算出されたキーＭi-1から計算される）である。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、ＳＰＡタイプの物理的攻撃に対し、免疫力をつけたシークレットキー又はプライベートキーで、暗号化計算の為の方法を実装することである。即ち、暗号化計算の方法は、本方法の実装の時、本方法にが使用する入力データがどのようなものであるにせよ、本方法を使用する数がどのようなものであるにせよ、使用するキーについての情報を与えないものである。
【００１８】
この目的をもって、本発明は、入力データ（ＭＥ）とシークレットキー（Ｋ０）から、出力データを与える暗号化計算法に関する。本方法は、複数の導出キースケジューリングステップ（ＥＴ２）を有するもので、既知のキースケジューリング法に従って、前算出された導出キーからアップデートされた導出キー（Ｍ’１、Ｍ’ｉ）を提供するものである。最初のアップデートされた導出キーは、シークレットキー（Ｋ0）から取得される。
【００１９】
本発明によると、本方法は、又、マスキングステップ（ＥＴ１）（このステップは、シークレットキーをマスクするための、最初のキースケジューリングステップ（ＥＴ２）の前に実行される）を含む。なお、アップデートされた導出キー（Ｍ’１，Ｍ’ｉ）は、本方法を実行する時点毎に異なる。
【００２０】
本発明は、又、本発明による暗号化計算法を使う電子的コンポーネントに関するものである。用語「マスクされた」（又は「ミックスされた」）は、ここ又は本書の他の部分では、以下の意味に解すべきである。：二つの実行の間、特に同一入力データと同一シークレットキーを使った方法を２つ実行する間、それらが異なる値を持つ場合、本発明に従う方法において、データ、結果がマスクされたという。
【００２１】
このように、本発明による暗号化計算法を使うと、同一入力データで本方法を２回実行するコンポーネントは、特に、本方法のクリティカル命令（これは導出キーを使用する）が残すトレースに対応するクリティカル時間インターバル時に、二つの異なるトレースを与える。
換言すれば、使われた入力データがどのようなものであるにせよ、例え入力データが、本発明による暗号化計算法の数回にわたる実行の間に、同一であるにせよ、コンポーネントが残すトレースは、常に、一つの実行時と他の実行時では異なる。
【００２２】
この結果を得るために、マスキングステップの間に、ランダムに選択されたマスキングパラメータは、シークレットキーとミックスされ、マスクされたシークレットキーを与える。最初の導出キーは、最初のキースケジューリングステップの間に、マスクされたシークレットキーから計算される。
マスキングステップの後、非マスクのシークレットキーは、消去してもよい。というのは、その後使用されないからである。しかし、シークレットキーは、本方法の次のステップで使用される。本方法のセキュリティは、このように増強される。
【００２３】
このように、本発明では、本発明の実施時に現実に操作されたキー全ては、ランダム数である。何故ならば、それはランダム数（マスキングパラメータ）のマスキングから導かれるものであるからである。従って、本方法の１つの実施から他の実施で、本方法を使うコンポーネントのトレースは、それ自身ランダムである。各実施の前にランダムに選択するマスキングパラメータがあるからである。
【００２４】
従って、コンポーネントのトレースについての、多数の測定を行う時に、同一の入力データを使う場合には、これら測定結果を平均すると、平均トレースになる。これは時間の関数として一定（１組のランダムトレースの平均）である。そして、クリティカルな操作が行われたとしても、これは、使われたキーの値に関する情報を与えない。このように、本発明を使うと、コンポーネントは、如何なるＳＰＡタイプの物理的攻撃に対し、完全に免疫抵抗を有する。
【００２５】
本発明は、このように、ＳＰＡタイプの攻撃の弱点を使い、コンポーネントを保護するものである。確かに、ＳＰＡタイプの攻撃が成功した場合、即ち、ＳＰＡタイプの攻撃がコンポーネントが使うシークレットキーに関する情報を提供する場合、必ず、以下のためのクリティカルな時間インターバルが必要になる。
―そのために、入力データＭＥが同一である時、コンポーネントのトレースが、このインターバルに関し同一である、
―このインターバルの期間、可視情報は重要である（relevant）。即ち、この期間、前記情報が、シークレットキー全部又は一部、若しくは、シークレットキーから導出されたキーの全部又は一部を表す。
【００２６】
本発明のコンポーネントは、例え、使用する入力データが同一であっても、本発明の方法を実施する間に、種々のトレースを与える。従って、クリティカルなインターバル（一つの方法の実施から他の方法の実施において、可視情報が重要で、同一である）を見つけることは不可能である。
【００２７】
変形例によると、本発明の方法は、又、以下を含むものである。
―導出計算されたキー又はアップデートされた導出キーを使った計算ステップ、
―計算ステップの後で実行され、計算ステップの結果に関するマスキングパラメータの寄与を除去するアンマスキングステップ（unmasking step）。
【００２８】
他の変形例において、本発明の方法は、複数計算ステップを有し、各ステップは、アップデートされた導出キーを使い、アンマスキングステップは、計算ステップの後に実行され、前計算ステップの結果に関するマスキングパラメータの寄与を除去する。
【００２９】
マスキングステップの間、例えば、以下の操作が実行される。
Ｋ’０＝Ｋ０｜Ｘ０、Ｋ’０は、マスクされたシークレットキー、Ｋ０は、シークレットキー、Ｘ０は、マスキングパラメータである。演算子「｜」はミキシング演算子で、好ましくは、２パラメータ線形演算子である。一つの例において、ミキシング演算子は、ＸＯＲ演算子である。
アンマスキングステップの間、ミキシング演算子の反転である演算子は、アップデータされた導出キーから導かれるマスキングパラメータの寄与を除去するのに使用されることが好ましい。
【００３０】
本発明の好ましい実施例によると、本方法は、安全なＤＥＳタイプ法であって、１６ラウンドの操作を有する。各ラウンドの操作は、アップデート導出キーを使うものである。
【００３１】
一つの実施例において、単一マスキングステップは、ＤＥＳタイプ方法の第１ラウンドの前に実行される。他の実施例では、マスキングステップは、マスキングステップは、ＤＥＳタイプ法の各ラウンドのスタート時に実行される。
操作の各ラウンドにおいて、
―計算ステップを含む変換が実行され、これは、前ラウンド間に計算された中間データとアップデータされた導出キーを組合わせるものである。
―前記計算ステップの後で、アンマスキングステップが実行される。
【００３２】
各マスクされアップデータされた導出キーが、操作ラウンド間に計算される。又は、導出キーの全ては、操作のラウンドとは独立して、別の所で計算してもよい。例えば、導出キーは、本方法の開始段階の前、又は開始の段階で実施されてもよい。
【発明を実施するための最良の形態】
【００３３】
以下に示す第１の例において、図４に示すダイアグラムの方法を説明する。32ビットの入力データＲ0をエンコードし、シークレットキーＫ０と前記入力データＲ０とから32ビットの出力データＲ１を作成する。
本方法は、導出キー計算ステップＥＴ２と変換ステップＦに、大別することができる。
導出キー計算ステップＥＴ2は、シークレットキーＫ0から導出キーＭ1を算出する。前記キー計算ステップは、変数Ｋ0の複数ビットをシフトする演算Ｓ1が形成する。これにより、Ｋ１＝Ｓ１（Ｋ０）と順序換え／圧縮演算ステップPCが行われる。このように、導出キーＭ１が、次の関係式（relation）により、得られる。Ｍ1＝ＰＣ（Ｓ1（Ｋ0））。
【００３４】
前記変換ステップＦは、前記入力データＲ0から及び、導出キーＭ1から、出力データＲ１を与える。
変換ステップＦは、標準ＤＥＳタイプ法のステップFと同一であり、次のように分割される。データＲ０は、拡張Eにより、32ビットから48ビットに拡張され、ＸＯＲ演算により、導出キーＭ１と組合わせられ、置換操作ＳＢＯＸの間に、新規32ビットにより置き換えられ、次に順序換えされる(操作Ｐ)。このように、出力データＲ１は、次の関係式から得られる。Ｒ１＝Ｐ（ＳＢＯＸ（Ｅ（Ｒ０）＋Ｍ１））．
【００３５】
図４の方法は、本発明によるもので、開始ステップＥＴ０、マスキングステップＥＴ１、差分計算ステップ（a difference computing step）ＥＴ３とアンマスキングステップＥＴ４（図５）を加えて行われる。
開始ステップＥＴ０の間、マスキングパラメータＸ０がランダムに選択される。
マスキングステップＥＴ１（これは、開始ステップＥＴ０の後に実行される）の間、マスキングパラメータＸ０は、シークレットキーＫ０とミックスされ、マスクされたシークレットキーＫ’０を与える。ミキシングは、次の関係式により行われる。
Ｋ’０＝Ｋ０｜Ｘ０。
【００３６】
演算子「｜」は、ミックスする二変数に関して線形に選ばれる。一つの実施例において、演算子「｜」は、ＸＯＲ演算子である。演算子「｜」は、又、線形演算子タイプであってよい。一般的に、演算子「｜」は、データＡ，Ｂ，Ｃが何であろうとも、次の性質を持つ。
【００３７】
【数１】
2004527787.tif 000003
【００３８】
演算子「｜-1」が存在し、「｜」の逆演算子である。即ち（Ａ｜Ｂ）｜-1Ａ＝Ｂ、「｜」と「｜-1」が同一であることもある。
【００３９】
次に、キー計算ステップＥＴ２が、シークレットキーＫ’０から実行され、マスクされた導出キーＭ’１を算出する。このように、マスクされ、導出されたキーが次関係式により与えられる。
Ｍ’１＝ＰＣ（Ｓ１（Ｋ’０））＝ＰＣ（Ｓ１（Ｋ０｜Ｘ０））＝ＰＣ（Ｓ１（Ｋ０）｜ＰＣ（Ｓ１（Ｘ０））
最後の等号は、演算子ＰＣ、Ｓ１、「｜」が線形演算子であるという事実から導かれるものである。
ＰＣ（Ｓ１（Ｋ０）＝Ｍ１（図４の例を参照）であるから、それからＭ’１＝Ｍ１｜ＰＣ（Ｓ１（Ｘ０））が導かれる。但し、Ｍ１は、図４の方法により計算された導出キーで、安全なものではない（non secured）。
【００４０】
差計算ステップＥＴ３は、開始ステップＥＴ０の後で、実行される。ステップＥＴ３は、キー計算ステップＥＴ２の前に、同時に、後で実行してもよい。
ステップＥＴ３は、マスクされた導出キーＭ’１に対するパラメータＸ０の寄与（contribution）Ｃ１を決定する。
ステップＥＴ３は、ステップＥＴ２と類似している。ステップＥＴ３は、マスキングパラメータ（Ｘ０のビットをシフトすることでアップデートする）Ｘ１＝Ｓ１（Ｘ０）を与える操作Ｓ１及び、寄与Ｃ１を計算する操作ＰＣを含む。寄与Ｃ１は、次関係式に基づいて計算される。
Ｃ１＝ＰＣ（Ｓ１（Ｘ０））。
最後にそれからＭ’１＝Ｍ１｜Ｃ１が導かれる。
【００４１】
アンマスキングステップＥＴ４は、変換ステップＦ’（これは、本発明によるステップＥＴ４の追加により、修正した変換Ｆに対応する）のサブステップである。ステップＥＴ４は、ＸＯＲ演算子による結合操作と非線形置換操作ＳＢＯＸとの間で実行される。
ステップＥＴ４は、アップデートされたパラメータＸ１が結合操作の結果に与える寄与Ｃ１を除去することを目的とする。このために、演算子「｜-1」が使われる。これは、「｜」の逆線形演算子である。例えば、演算子「｜」がＸＯＲとすると、演算子「｜-1」も又、ＸＯＲである。ステップＥＴ４の出力において、次式を得る。
【００４２】
【数２】
2004527787.tif 000004
【００４３】
このように、寄与Ｃ１を取去った後、ＳＢＯＸタイプ演算子の入力に出現する変数は、Ｅ（Ｒ０）＋Ｍ１に等しい。即ち、本発明によるが、しかし安全ではない同様な方法（図４）の演算子ＳＢＯＸの入力に現われる変数と同一である。従って、変換ステップＦ’の出力に現われる出力データは、図４の非安全方法の変換操作Ｆの出力に現われるものと同一である。
【００４４】
これまで説明してきたように、図４と５の方法が与える結果は、厳密に言って同一である。即ち、入力データ要素とシークレットキーが同一の場合、出力データ値は、両者のケースで同一である。
【００４５】
古典的なＤＥＳ法の場合のように、図４の方法は、同一の理由により、ＳＰＡ攻撃に弱い。実際、１つの又は同一のシークレットキーＫ０に対し、導出キーＭ１は、本方法の実施において、同一である。従って、ＳＰＡ攻撃は、本方法のトレースを測定することにより、可能である。特に、キー計算ステップＥＴＹ２と変換ステップＦ’の間である時間インターバルにおいて可能である。
【００４６】
これとは、対照的に、本発明による図５の方法は、ＳＰＡタイプ攻撃に対し、免疫抵抗力がある。実際、１つの、同一のシークレットキー値Ｋ０に対し、対応する導出キーＭ’１の値は、本方法の一つの実施と他の実施では、常に、異なる。なぜならば、アルゴリズムの開始期間にランダムに選択されたマスキングパラメータＸ０は、同出キーＭ’１に対し、ランダムな寄与Ｃ１をする。
このように、本発明によると、本方法は、ＳＰＡ攻撃に対し、ランダムなマスキングパラメータを付加することにより、保護されるのである。
【００４７】
他の例において、図１、２に示すＤＥＳタイプ法を説明する。上記に見られるように、ＤＥＳタイプの暗号化法は、シークレットキーＫ０と入力ＭＥから出力データＭＳを計算する。ＤＥＳ法は、１６ラウンド操作から構成されており、入力順序換えＩＰがそれに先行し、出力順序変えＩＰ−１（これは、入力順序換えの反転操作である）が後続するものである。各操作のラウンドは、特に（ステップ２）、同出キー計算ステップＥＴ２と変換ステップＦを含む。
【００４８】
本発明によると、開始ステップＥＴ０、マスキングステップＥＴ１の追加及び、各操作ラウンドで異なる計算ステップによってＥＴ３、アンマスキングステップＥＴ４の追加により、ＤＥＳ法は、確保される（図６）。これは、図５と同様である。説明を明確に単純にするために、第ｉラウンドの操作だけを、図６に示す。但し、ｉは、本発明の特徴ステップＥＴ０〜ＥＴ４の間における、１〜１６の間の整数である。
【００４９】
開始ステップＥＴ０の間に、マスキングパラメータＸ０が、ランダムに選択される。
ＭスキングステップＥＴ１の間に、マスキングパラメータＸ０は、開始ステップＥＴ０の後に、シークレットキーＫ０とミックスされ、上記例に示したように、マスクされたシークレットキーＫ’０を与える。このミキシングは、次の関係式に基づいて行われる。：Ｋ’０＝Ｋ０｜Ｘ０
【００５０】
第ｉラウンドにおいて、キー計算ステップＥＴ２は、第ｉランキングのマスクされた中間キーＫ’i-1から、先行するｉ−1ランキングラウンドのステップＥＴ２マスキングのマスクされた導出キーＭ’ｉを与える。ステップＥＴ２は、前に計算されマスクされた中間キーＫ’ｉ−１のビットをシフトする操作Ｓｉと操作ＰＣを含む。以下の関係式を得る。：
【００５１】
【数３】
2004527787.tif 000005
【００５２】
最後の複数等号は、線形演算子ＰＣ、Ｓi、「｜」の性質から得られるものである。更に、ＰＣ（Ｓi（Ｋi-1））＝Ｍi（図２の例参照）から、次しくが導かれる。
Ｍ’ｉ＝Ｍi｜ＰＣ（Ｓｉ（Ｘｉ−１））
【００５３】
差計算ステップＥＴ３は、開始ステップＥＴ０の後、実行される。ステップＥＴ３は、ステップＥＴ２の前に、平行して、又は後に、実行してもよい。ステップＥＴ３は、マスキングパラメータＸ０の値をアップデートし、Ｘｉ−１が導出キーＭ’ｉに与える寄与Ｃｉを決定する。
【００５４】
ステップＥＴ３は、キー計算ステップＥＴ２と同様である。ＥＴ３は、パラメータＸｉ−１のビットをシフトすることによりＸｉを与える操作Ｓｉと、寄与Ｃｉを与える順序換え／圧縮を行う操作ＰＣを有する。寄与Ｃｉは、次の関係式から計算される。：Ｃｉ＝ＰＣ（Ｘｉ）＝ＰＣ（Ｓｉ（Ｘｉ−１））。これから、最後に、次式が導かれる。
Ｍ’i＝Ｍi｜Ｃi
【００５５】
アンマスキングステップＥＴ４は、変換ステップＦ’（本発明のステップＥＴ４を追加して修正される変換Ｆに対応する）のサブステップである。ステップＥＴ４は、ＸＯＲ演算子の組合わせ操作と非線形置換操作ＳＢＯＸの間で実行される。ステップＥＴ４は、演算子「｜-1」アップデートされたマスキングパラメータＸｉが与える寄与Ｃｉを除去するものである。ステップＥＴ４の後に、ＳＢＯＸタイプ演算子の入力に現われる変数は、次に等しい。
【００５６】
【数４】
2004527787.tif 000006
【００５７】
従って、それは、図一、２に類似の方法であるが、本発明による安全でなものではない、演算子ＳＢＯＸの入力に現われる変数と同一である。従って、変換ステップＦ’の出力に現れるデータＲｉは、非安全（non-secured）ＤＥＳ法（図１，２）の変換操作Ｆの出力に現われるものと同一である。
【００５８】
このように、本発明による安全化ＤＥＳ法を使うと、計算される中間データＬｉ、Ｒｉ（但しｉは、1〜16の整数である）は、標準ＤＥＳ法で得られるものと同一である。これとは対照的に、本発明による安全か法を使うと、使用されるどのキー（シークレットキー、中間キー、導出キー）も、ＳＰＡタイプの攻撃にアクセスされることはない。更に特定すれば、導出キー計算に対応する本方法のステップに対するＳＰＡタイプの攻撃は、シークレットキー、及び／又は、複数中間キーＫｉ又は複数導出キーの１つについての関係情報を与えるものでない。実際、これらキ-の値は、本方法が使用する入力データ又はシークレットキーが、どのようなものであろうと、本方法の実行時に、異なっている。
【００５９】
図６の方法の修正及び/又は改良は、本発明の範囲から逸脱しない範囲で可能である。
例えば、図６のＤＥＳ法において、キー計算ステップＥＴ２と差分計算ステップＥＴ３は、キーＭ’ｉと寄与Ｃｉ（これは、ステップＥＴ２，ＥＴ３により生成される）を使う操作ラウンドの期間に実行される。
【００６０】
しかし、ステップＥＴ２、ＥＴ３を、ＤＥＳ法の操作ラウンドとは、独立に実行することは、可能である。例えば、本方法の開始フェーズの間に、Ｘ０を選択してステップＥＴ０の後で、全ステップＥＴ２、ＥＴ３を実行することは可能である。全キーＭ’1，Ｍ’１６及び、全寄与Ｃ１〜Ｃ１６は、この場合、記憶され、使用される操作ラウンドで供給される。
最後に、留意すべきは、個々に説明した例全部は、本発明の範囲を制限するものではないと考えるべきである。
【００６１】
本発明に不可欠なことは、ランダムパラメータを、暗号化法に導入することで、その目的は、本方法の二つの実施例において、入力データ及び/又はシークレットキー及び/又は出力データの値がどのようなものであろうと、このコンポーネントは、異なる複数キー（シークレットキー、中間キー、導出キー）を使用することである。特に、同一入力データ及び/又は同一シークレットキー及び/又は同一出力データを使用する二つの実施例において、使用することである。
このように、本方法を実施する場合において、異なるキーを使用することによって、本方法は、各種のトレースを生成する。従って、本方法は、ＳＰＡ攻撃に強いものである。
【００６２】
参考
ET0        開始ステップ
ET1        マスキングステップ
ET2        （既知の）導出キー計算ステップ
ET3        差計算ステップ
ET4        アンマスキングステップ（変換Ｆにおける）
F          数回の操作を組合わせる変換
IP          入力順序換え
IP-1        出力順序換え
PE          拡張操作
PC          順序換えー圧縮操作
SBOX      非線形な置換操作
Si          ビットシフト操作
C          寄与
Ki        導出キー計算操作の第ｉラウンドで算出され、第ｉラウンドで使用される中間キー
Li        操作の第ｉラウンドにより算出される中間データの32最上位ビット
ME      入力メッセージ
MS      出力メッセージ
Mi        導出キー計算操作の第ｉラウンドで算出され、第ｉラウンドで使用される導出キー
Mi'        マスクされた導出キー
Ri        操作の第ｉラウンドにより算出される中間データの32最下位ビット
Ri'        Riのマスクされた値
X0        マスキングパラメータ
Xｉ        アップデートされたマスキングパラメータ
Yi        アップデートされたマスキングパラメータ
＆、＠、「｜」    マスキング、ミキシングパラメータ
＆−1、＠−1、「｜−1」    逆元演算子（inverse operators）
【図面の簡単な説明】
【００６３】
【図１】シークレットキーを使った既知の暗号化法を説明するブロック図である。
【図２】図１の方法の詳細ステップを説明する流れ図である。
【図３】時間の関数として、図１の暗号化法を使った部品が残した実際のトレースである。
【図４】簡単化された暗号化法の流れ図である。
【図５】本発明により安全化された図４の方法の流れ図である。
【図６】本発明により安全化されたＤＥＳタイプの流れ図である。
【図１】
2004527787.tif 000007
【図２】
2004527787.tif 000008
【図３】
2004527787.tif 000009
【図４】
2004527787.tif 000010
【図５】
2004527787.tif 000011
【図６】
2004527787.tif 000012
【国際公開パンフレット】
2004527787.tif 000013
2004527787.tif 000014
2004527787.tif 000015
2004527787.tif 000016
2004527787.tif 000017
2004527787.tif 000018
2004527787.tif 000019
2004527787.tif 000020
2004527787.tif 000021
2004527787.tif 000022
2004527787.tif 000023
2004527787.tif 000024
2004527787.tif 000025
2004527787.tif 000026
2004527787.tif 000027
2004527787.tif 000028
2004527787.tif 000029
2004527787.tif 000030
2004527787.tif 000031
2004527787.tif 000032
2004527787.tif 000033
2004527787.tif 000034
2004527787.tif 000035
2004527787.tif 000036
【国際調査報告】
2004527787.tif 000037
2004527787.tif 000038
2004527787.tif 000039
2004527787.tif 000040