(57)【要約】本発明は、安全化された暗号化計算方法に関するもので、入力とシークレットキーから出力を得るために連続的に実行される計算のＮサイクルを含む。本発明は、以下の特徴をもつものである。即ち、入力をマスクし、計算サイクルにより使用され生成された各データをマスクするために、第１マスキングレベルを生成するステップと、各計算サイクル内で操作されるデータをマスクするための、第２マスキングレベルを生成するステップとを有する。また、本発明は、この方法を使った電子コンポーネントに関する。本発明は、特に、バンキング取引又は更に一般的な安全な移動操作のために有利である。
2004533630.tif 000002
【特許請求の範囲】
【請求項１】
入力キーとシークレットキーから出力データを生成するために連続的に実行されるＮ計算ラウンドを含む方法であって、
該方法は、
―計算ラウンドで使用され、生成される各中間データがマスクされるための、入力データ（ＭＥ）をマスクするための第１マスキングステージと、
―各計算ラウンド内で操作されるデータをマスクするための第２マスキングステージとを、
有することを特徴とする暗号化計算の保護方法。
【請求項２】
―第１計算ラウンド（ラウンド１）の前に入力データ（ＭＥ）をマスクするために実行する第１マスキングステップ（ＥＴ０１）と、
―マスクされない出力データ（ＭＳ）を算出するために、第Ｎ計算ラウンド（ラウンドＮ）の結果である第１アンマスキングステップ（ＥＴ１０）とを、
有する方法であって、
前記ステップＥＴ０１とＥＴ１０が第１マスキングステージを形成し、
本方法の第ｉランキング計算ラウンド（ラウンドｉ）が
―第ｉランキング計算ラウンドに先立つステップの結果をマスクするための、第２マスキングステップＥＴ３と、
―マスクされた非線形演算子（ＳＢＯＸ’）を使って前に算出した、マスクされた結果を置換する置換ステップＥＴ６と、
―ステップＥＴ３、ＥＴ６とＥＴ９が第２マスクステージを形成し、ステップＥＴ６の結果をアンマスクするための第２アンマスク・ステップＥＴ９と有することを特徴とする方法。
【請求項３】
―第１マスキングステップにおいて、第１マスキングパラメータ（Ｘ１）が入力データ（ＭＥ）とミックスされ、第１計算ラウンドで、マスクされた入力データ（ＭＥ’；Ｌ’０，Ｒ’０）を作成し、該ミキシングは第１線形ミキシング演算子（「＆」）を使用して行い、
―第１アンマスキングステップ（ＥＴ１０）において、第１マスキングパラメータ（Ｘ１）により、第Ｎ計算ラウンドの結果に対して作成される寄与が、第Ｎ計算ラウンドの結果から除去される、
ことを特徴とする請求項２記載の方法。
【請求項４】
―第１計算ラウンドの前に実行され、以下の関係を検証する非線形演算子ＳＢＯＸ’を生成するための、第３マスキングステップ（ＥＴ０３）を有する請求項２又は３記載の方法。
ＳＢＯＸ’［Ａ＠Ｘ３］＝ＳＢＯＸ［Ａ］＃Ｘ２、
但し、Ｘ２は第２マスキングパラメータ、Ｘ３は、第３マスキングパラメータであり、ＳＢＯＸは、既知の非線形演算子
「＃」は、第２ミキシング演算子で、「＠」は、第３ミキシング演算子
【請求項５】
第ｉ計算ラウンドのステップＥＴ９において、マスクされた非線形演算子ＳＢＯＸ’の結果に対し、第２マスキングパラメータ（Ｘ０）により作成される寄与が、前記マスクされた非線形演算子ＳＢＯＸ’により生成された結果から引き算することを特徴とする、請求項４記載の方法。
【請求項６】
ｉランキング計算ラウンドは、以下のステップを有し、以下の順序で実行することを特徴とする請求項４記載の方法。
―ＥＴ２：先行する計算ラウンドにより前もって計算されたマスクされた中間データの右側部（Ｒ’i-1）の拡張、
―ＥＴ３：第３マスキング演算子（「＠」）を使って、第３マスキングパラメータで（Ｘ３）先行するステップＥＴ２の結果をマスクする。
―ＥＴ４：第１マスキングパラメータを使って、先行するＥＴ３ステップの結果から寄与を除去する。
―ＥＴ５：前のステップの結果に、アップデートされた導出キー（Ｍｉ）でミキシングする。
―ＥＴ６：先行するステップＥＴ５の結果を、マスクされた非線形演算子ＳＢＯＸ’で置換し、第２マスキングパラメータ（Ｘ２）によりマスクされた結果を提供する。
―ＥＴ７：先行するステップＥＴ６の結果の順序換え。
―ＥＴ８：ＸＯＲ操作を使って、先行するＥＴ７の結果に、前に計算した中間データの左側部（Ｌ’i-1）を加算する。
―ＥＴ９：先行するステップＥＴ８の結果から、第２マスキングパラメータにより算出された寄与を除去し、中間データ（Ｌ’i、Ｒ’i）の右側部を算出する。但し、前記中間データの左側部（Ｌ’i）は、前に計算された中間データ（Ｌ’i-1、Ｒ’i-1）の右側部に等しい。
【請求項７】
前記方法を実行する毎に、マスキングパラメータ（Ｘ１，Ｘ２、Ｘ３）の中から少なくとも１つをランダムに選択することを特徴とする請求項２〜６のいずれか１項記載の方法。
【請求項８】
前記方法を実行するＭ事例毎に、マスキングパラメータ（Ｘ１、Ｘ２、Ｘ３）の中から少なくとも１つをランダムに選択することを特徴とする請求項２〜６のいずれか１項記載の方法。
【請求項９】
第１ミキシング演算子（「＆」）及び／又は第２ミキシング演算子（「＃」）及び／又は第３ミキシング演算子（「＠」）がＸＯＲ演算子であることを特徴とする請求項２〜８のいずれか１項記載の方法。
【請求項１０】
既知のキー計算法によりシークレットキー（Ｋ０）からアップデートされた導出キーを算出するための、導出計算ステップＥＴ１であって、
本方法は、又、導出キー計算ステップ（ＥＴ１）の前に実行され、本方法を実行する毎に、前記計算された導出キー（Ｍ’1、Ｍ’i）が異なるようにミキシングパラメータ（Ｙ０）により、シークレットキー（Ｋ０）をマスクするための第４マスキングステップ（ＥＴ０６）を有することを特徴とする請求項２〜９のいずれか１項記載の方法。
【請求項１１】
連続的に実行されるＮの導出キー計算ステップ（ＥＴ１）を含む方法であって、
ｉランキング導出キー計算ステップは、
同一ｉランキング計算ラウンド（ラウンドｉ）において、マスクされ、アップデートされた導出キー（Ｍ’i）を算出し、前に計算されたマスクされたシークレットキー（Ｋ’i-1）からアップデータされたマスクされたシークレットキー（Ｋ’i）を算出することを特徴とする請求項１０記載の方法。
但し、前記ｉランキング計算ラウンドは、特に、ステップＥＴ３とＥＴ６の間に実行される、次のステップＥＴ５とＥＴ１２を有する。
ＥＴ５：ランクｉの、アップデートされ、マスクされた導出キー（Ｍ’ｉ）と、前のステップの結果とのミキシング、
ＥＴ１２：ステップＥＴ５の結果から、ミキシングパラメータ（Ｙ０）により生成された寄与の除去。
【請求項１２】
第４マスキングステップ（ＥＴ０６）が、第１導出キー計算ステップより前に実行されることを特徴とする請求項１１記載の方法。
【請求項１３】
第４マスキングステップ（ＥＴ０６）が、各導出キー計算ステップ（ＥＴ１）より前に実行されることを特徴とする請求項１１記載の方法。
【請求項１４】
マスクされた導出キー（Ｍ’１、Ｍ’ｉ）は、マスクされたキー（Ｋ’０）から計算されるものであって、
マスクされたシークレットキー（Ｋ’０）を算出するために、第４マスキングステップ（ＥＴ０６）において、ランダムに選択したマスキングパラメータ（Ｙ０）が、第４マスキング演算子（「｜」）を使って、シークレットキー（Ｋ０）とミックスされることを特徴とする、請求項１０〜１３のいずれか１項記載の方法。
【請求項１５】
第４マスキングステップ（ＥＴ０６）において、以下の操作が実行されることを特徴とする、請求項１４記載の方法。
Ｋ’０＝Ｋ０｜Ｙ０
但しＫ’０は、マスクされたシークレットキー、
Ｋ０は、シークレットキー、
Ｙ０は，第４マスキングパラメータ、
「｜」は、第４ミキシング演算子。
【請求項１６】
第４ミキシング演算子「｜」がＸＯＲ演算子であることを特徴とする請求項１４又は１５記載の方法。
【請求項１７】
請求項１〜１６のいずれか１項に基づく暗号化計算方法を有する電子コンポーネント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シークレット又はプライベートキーを持つ安全化された暗号化計算方法に関するものである。本発明は、又、この種の方法を応用したコンポーネントに関する。更に、具体的に言えば、本発明は、力づくにより、又は、コンポーネントの電磁放射を介して、シークレット又はプライベートキーに関する情報を取得するための物理的攻撃から、暗号化法を実行して、コンポーネントを守るものである。
【背景技術】
【０００２】
本発明によるコンポーネントは、特に、各種サービス及び／又はデータに対するアクセスが厳しく管理される用途に使用される。これらコンポーネントは、通常、マイクロプロセッサーと、特にシークレットキーを有するプログラムメモリの周辺に形成されるアーキテクチャを有する。
【０００３】
このコンポーネントは、例えば、スマートカード、コントロール端末を使う、又は遠隔端末で、特にバンキング用途用に使用される。
このコンポーネントは、１つ又はそれ以上のシークレットキー暗号化又はプライベートキー暗号化法を用いて、入力データから出力データを計算する。この方法を使って、例えば、暗号化、暗号解読、認証又は、入力メッセージのサインその他、前記入力メッセージのサインの確認を行う。
【０００４】
取引の安全性を確保する為には、シークレットキー又はプライベートキー暗号化法の構築は、アルゴリズムの、入力データ及び／又は出力データの知識から、使用されるシークレットキーを決定することが、できないようにする。しかし、コンポーネントのセキュリティは、使用するシークレットキーを秘密裏に保持する能力に依存する。
【０００５】
よく使われる一方法は、ＤＥＳ（Data Encryption Standard）タイプ法である。この方法を使って、例えば、６４ビットの平分メッセージＭＥ（即ち、入力データ）と５６ビットのシークレットキーＫ0から、６４ビットでコード化され、暗号化されたメッセージＭＳ（即ち出力データ）を作成することができる。
【０００６】
ＤＥＳのメインステップを、図１に詳細に記載する。最初の順序換え（ｐｅｒｍｕｔａｔｉｏｎ）ＩＰの後、入力データの該順序換えされたビットが形成したブロックが、左側部Ｌ０と右側部Ｒ０とに分離される。
【０００７】
この後、１６ラウンドの同一操作が行われる。前記操作の各ラウンドの間、操作の前ラウンドの間に計算された中間データの、右側部（Ｒ0，・・・、Ｒ15）は、変換Ｆと呼ばれる変換の間に、導出キー（derivative key）と組合わせられる。変換Ｆの結果は、操作の前ラウンドの間に計算された中間データの、左側部（Ｌ0，・・・、Ｌ15）に加えられる（ＸＯＲ演算）。
【０００８】
第１６中間データの１６ラウンドの操作の後に、左側部Ｌ１６と右側部Ｒ１６は、集められ、最終順序換えＩＰ−１（これは、最初の順序換えＩＰの逆元である）でプロセスは完了する。
【０００９】
操作Ｌｉ（但し，ｉは１と１６の間に含まれる整数）の第ｉランキングラウンドについて、図２に詳細に記載する。キー計算ステップＥＴにおいて、前ラウンドの間に計算された中間キーＫｉ−１の５６ビットは、シフトされ（操作Ｓｉ）、新規アップデートされた中間キーＫｉを与える。次に、５６から４８ビットを、順序換え／圧縮のＰＣ操作が選択し、導出キーＭｉを与える。但しＭｉ＝ＰＣ（Ｋｉ）＝ＰＣ（Ｓｉ（Ｋｉ−１））。
【００１０】
平行して、変換Ｆが実行される。前ラウンドにおいて計算された、１つの中間データの右側部Ｒｉ−１は、拡張操作（操作Ｅ）により、４８ビットに拡張され、ＸＯＲタイプ操作により導出されたキーＭと組合わせられ、置換操作により新規３２ビットにより置換され（操作ＳＢＯＸで表される）、次に、再度順序換えされる（操作Ｐ）。
【００１１】
変換Ｆの結果は、次に、ＸＯＲ操作により、先立つラウンドで計算された中間データ（Ｌｉ―１、Ｒｉ―１）の左側部Ｌｉ―１と組合わせされる。この組合わせは、アップデートされた中間データの右側部Ｒｉを与える。中間データの左側部Ｌｉは、Ｒｉと等しい。
【００１２】
実施する際は、操作Ｆ、Ｐ、Ｅ、ＰＣ、ＳＢＯＸは、どのラウンドでも同一である。反対に、導出キーＫ１〜Ｋ16の計算の間に使用される、操作Ｓ１〜Ｓ16は、ラウンド毎に異なる。
【００１３】
ＤＥＳ法の実行時の操作Ｆ、Ｐ、Ｅ、ＰＣ、ＳＢＯＸの特徴は、全て既知である。これら特徴は、例えば、特許出願ＷＯ  ００／４６９５３、又は、“Data Encryption Standard, FIPS PUB46”（１９７７，１，１５発行）に、詳細に説明されている。
【００１４】
シークレットキー又はプライベートキーを使ったコンポーネントのセキュリティは、それが使うキーを秘密裏に維持する能力に依存している。安全にするためには、コンポーネントは、ＤＰＡ（Differential Power Analysis）タイプアナリシスを経る場合に、シークレットキーを秘密裏に保持できなければならない。
【００１５】
ＰＤＡアナリシスにおいて、コンポーネントを破壊して、統計上のアナリシスを行う。即ち、コンポーネントが残すトレースは、時間の関数である。このためには、約１０００のトレースの測定から１つのサンプルを選び，使用する。入力データＭＥ［ｉ＝１〜１０００］に対応する各トレースは、互いに異なるもので、独立している。統計的研究によれば、シークレットキーのビットの値についての１つ又それ以上の仮定が確認される。
【００１６】
ＤＥＳ暗号化法を使ったコンポーネントに関するＤＰＡタイプのアナリシスの実施例について、ＷＯ  ００／４６９５３に、特にその第３，４頁に、詳細に説明されている。
ＤＥＳタイプの暗号化法は、ＳＢＯＸ演算子の出力において、特にＤＰＡタイプの攻撃に対して弱い。更に一般的に言えば、暗号化法は、シークレットキーが入力データ又は出力データとの組合わせにおいて現われるポイントで、ＤＰＡタイプアナリシスに対して弱い。
【００１７】
このように、実際には，ＤＥＳタイプ方法は、操作の全ラウンドの、複数演算子（ＸＯＲ、Ｐ、Ｅ、ＰＣ、ＳＢＯＸ等）の全部の出力において、攻撃に対して弱い。というのは、シークレットキーは、操作の第１ラウンドの入力データと組合わせられるからである。
例えば、既知の入力データＭＥを持って、シークレットキーＫ０についての仮定をすると、操作の第１ラウンドで与えられる中間データ要素（Ｌ１、Ｒ１）の少なくとも１ビットの値を予測することが、可能である。この予測が検証され、次にシークレットキーに関する仮定が、検証される。
【００１８】
安全にするには、コンポーネントは、それがＳＰＡタイプアナリシス（Simple Power Analysis）を経る時には、シークレットキーを秘密裏に保持することができなければならない。
【００１９】
ＳＰＡ分析において、コンポーネントは、実行するとき、同一入力データＭＥを適用して、複数回、暗号化法を実行するように構成される。該実行のトレースは、時間の関数として測定される。例えば、該トレースは、コンポーネントの電力消費、又は、時間の関数として放出される電磁エネルギーを表す。測定の組は、平均化され、測定からノイズを除去し、固定入力データＭＥの回路の現実のトレースを取得する。例えば、１組の１０から１０００の同一測定によれば、測定からノイズを十分除去でき、固定入力データＭＥのコンポーネントの現実のトレースを取得できる。
【００２０】
フィルターリングの後、ＤＥＳ方の異なるステップは、コンポーネントの実際のトレースにおいて、見ることができる。：最初の順序換えＩＰ、操作の１６ラウンドと最後の順序換えＩＰ-1。
【００２１】
ＤＥＳタイプ法は、シークレットキーが、最初の形態Ｋ０又は他の形態（中間キーＫ１、・・・、Ｋ16、導出キーＭ１、・・・、Ｍ16）で、現われる点で、ＳＰＡタイプアナリシスに弱い（sensitive）。実際、ＳＰＡタイプのアナリシスにより、操作の第ｉラウンドについて、導出キーＭｉのイメージを決定することが可能である。例えば、導出キーＭｉが、ＸＯＲ操作を実行する前に、移動される（transferred）、タイムインターバルを識別することが、可能である。全ての導出キーＭ１〜Ｍ16が、シークレットキーＫ０から既知の操作で得られるのであるから、導出キーの単純なイメージについての知識は、シークレットキーＫ０についての情報を与えることになる。
【００２２】
一般に、全ての暗号化法は、多少ともＤＰＡタイプの攻撃に弱いものである。特に、予測可能な中間結果が現われる場所では、そうである。
なお、前記中間結果は、入力データ（又は入力データからの導出されたデータ）とシークレットキー又はプライベートキー（又はシークレットキー又はプライベートキーから得られるキー）、若しくは、出力データ（又は入力データから導出されるデータ）とシークレットキー（又はシークレットキーから得られるキー）の組合わせである。
この種の中間結果は、実際、入力データ及び／又は出力データ及び使用キーに関する仮定から、予測可能である、というのは、使用される暗号化法（使用する演算子、これら演算子の使用のオーダー等）が既知だからである。ＤＰＡ攻撃は、仮定を検証することにより、使用キーについての情報を与えるものである。
【００２３】
同じように、シークレットキーを使う全暗号化法は、多少ＳＰＡタイプアナリシスに対して弱い。その弱さは、特にキーが、最初の形態で、又はクリティカルステップとして氏ら得ているステップにおいて（この間に、シークレットキーは、直接に又は、既知の導出キー計算法を使って導出された形態で、使用される）、単独で現われるところでは、極めて弱い。この種のクリティカルステップは、例えば、中間ステップ、又は、導出されたキー計算ステップ（この間、キーが、シークレット又はプライベートキー又は以前に計算された中間キーからのものから、計算される）である。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
本発明の目的は、ＤＰＡタイプの物理的攻撃に対し、免疫力をつけたシークレットキー又はプライベートキーで、暗号化計算の為の安全化方法を実装することである。即ち、暗号化計算の安全化方法は、本方法の実装の時、本方法が使用する入力データがどのようなものであるにせよ、本方法を使用する数がどのようなものであるにせよ、使用するキーについての情報を与えないものである。
【００２５】
本発明の他の目的は、シークレット又はプライベートキーを持つ暗号化計算の安全化法の実装であり、ＤＰＡタイプの攻撃からシークレット又はプライベートキー保護するものである。
【００２６】
この目的をもって、本発明は、暗号化計算の保護方法に関するもので、この方法は、連続的に実行し、入力データとシークレットキーから出力を生成する、Ｎの計算ラウンドを有する。
【００２７】
本発明によると、本方法は、以下を有する。
―入力データをマスクし、使用され、計算ラウンドで生成される各中間データがマスクされる、第１マスキングステージと、
―角形Ｓなラウンドの内部で操作されるデータをマスクする第２マスキングステージ。
【００２８】
本発明は、又、ここに説明し、以下説明する方法を使った電子コンポーネントに関するものである。
【００２９】
用語「マスクされた」（又は「ミックスされた」）は、ここ又は本書の他の部分では、以下の意味に解すべきである。：二つの実行の間、特に同一入力データと同一シークレットキーを使った方法を２つ実行する間、それらが異なる値を持つ場合、本発明に従う方法において、データ、結果、オペランドが、マスクされたという。
【００３０】
このように、本発明を使うと、計算ラウンドが算出するデータは、マスクされる。なぜなら、計算ラウンド（最初のマスキングステージ）の前に入力データが、マスクされる。従って、例え、入力データとシークレットキーが同一であっても、計算ラウンドが算出するデータは、本方法の実行毎に異なる。
【００３１】
更に、本発明による方法において使用される第２マスキングステージは、計算ラウンド内部で操作されたデータのマスキングを可能にする。
このように、本発明で使われる二つのマスキングステージは、計算ラウンドの内外で、本方法を使う間操作されたデータのマスキングを可能にする。
【００３２】
本方法を使うコンポーネントの消費（ｃｏｎｓｕｍｐｔｉｏｎ）（又は電磁放射）の統計的研究は、必ず失敗する。：使用されるキーに関する情報を取得することはできない。コンポーネントの電力消費が、使用されるキーの値と無関係だからである。
【００３３】
最初のマスキングステージを実行するために、次のステップを実行することが好ましい。
―入力データをマスクするために、最初の消費ラウンド（ラウンド１）の前に実行する、第１マスキングステップＥＴ０１と、
―非マスクの出力データを算出する第Ｎ回計算ラウンド（ラウンドＮ）の後に行われる第１アンマスキングステップＥＴ１０。
【００３４】
第２マスキングステージを実行するために、本方法の第ｉランキング計算ラウンド次のステップを実行することが好ましい。
―ｉランキング計算ラウンドに先立つステップの結果をマスクするための第２マスキングステップＥＴ３、
―マスクされた非線形演算子ＳＢＯＸを使ってマスクされた結果を置換するための置換ステップＥＴ６、
―ステップＥＴ６の結果をアンマスクするための第２アンマスキングステップＥＴ０１
【００３５】
第１マスキングステップＥＴ０１の間に、第１マスキングパラメータが、入力データＭＥとミックスされて、第１計算ラウンドでマスクされた入力データを算出する。このミキシングは、第１線形ミキシング演算子を使って行われる。
【００３６】
最大のセキュリティをもつ方法を提供するために、第１マスキングパラメータが、マスキングステップの間で、本方法を実行する時に、ランダムに選択されることが好ましい。第１マスキングパラメータは、本方法を実行するＭ回のケースに対応するインターバルの時だけに、ランダムに選択することができる。この場合、同一のマスキングパラメータが、Ｍ回の実行について使われる。
【００３７】
第１マスキングステップは、このように入力データをランダムパラメータとミキシングすることにより、入力データＭＥと中間データ（入力データＭＥから取得され、計算ラウンドで使用され生成された）の間の相関を除去する。
【００３８】
本方法の終了時の第１アンマスキングステップの間に、第１マスキングパラメータにより作成された寄与（contribution）（これは第Ｎ計算ラウンドの結果であるが）は、第Ｎ回計算ラウンドの結果から減算される。アンマスキングステップは、本方法の最後で、予測した出力データを取り出すことを可能にする。具体的には、本方法が２回同一の入力データと同一のシークレットキーを使って実行する場合、出力データＭＳは、２回ともに同一となる。しかし、中間データは、異なるものである。
【００３９】
第２マスキングステージを実行するには、本方法が、第３マスキングステップＥＴ０３を有することが好ましい。これは、第１計算ラウンドの前に実行され、マスクされた非線形演算子ＳＢＯＸ’を生成し、各データＡについて、以下の関係式を検証するものである。
【００４０】
【数１】
2004533630.tif 000003
【００４１】
複数マスキングパラメータの中から少なくとも１つが、本方法の実行時に選択され、最大セキュリティをもたらす。
本発明の変形によれば、本方法の実施のＭ事例ごとに、マスキングパラメータの１つが、ランダムに選択される。
また、ミキシング演算子は線形である。一例として、ＸＯＲ演算子を、ミキシング演算子の１つとして選ぶことができる。
【００４２】
本発明による方法は、既知のキー計算法に従ってシークレットキーから導出キーを算出する導出キー計算ステップを含んでいる。本方法は、第４マスキングステップを追加し（導出キー計算ステップの前に実行される）、シークレットキーをマスクすることにより補完されるものである。結果、計算された導出キーは、本方法の実施毎に、異なるものである。
【００４３】
このように、導出キー（１つ又は複数の）及び／又は中間計算キー（１つ又は複数の）は、全てランダムパラメータの加算によりマスクされるので、例えばＳＰＡタイプの、コンポーネントの電力消費（power consumption）の分析をしても、シークレットキーに関する情報を提供できない。
【００４４】
実行モードによると、第４マスキングステップの間に、ランダムに選択されたマスキングパラメータは、第４マスキング演算子によりシークレットキーとミックスされ、マスクされたシークレットキー、マスクされた導出キー（前記マスクされたシークレットキーから計算された）を算出する。
【発明を実施するための最良の形態】
【００４５】
上記説明したとおり、ＤＥ法は、出力データをシークレットキーＫ０と入力データＭＥから計算する。ＤＥＳ法には、１６計算ラウンドがある。最初の順序換えＩＰ（図３ａ）が、これに先行し、最後の順序換えＩＰ−１（図３ｂ）（これは最初の順序換えの逆元である）がこの後に続く。各計算ラウンドは（図２）、送出キー計算ステップＥＴ１、変換ステップＦ’、ＸＯＲ演算子との組合わせステップＥＴ８を含む。
【００４６】
ＤＥＳ法は、本発明によれば、二つのマスキングステージを追加することにより、安全化される。第１のマスキングステージは、マスキングステップＥＴ０１（図３ａ）とアンマスキングステップ（図３ｂ）を有する。第２マスキングステージは、各計算ラウンドで実行され、マスキングステップＥＴ３と、マスクされる非線形演算子ＳＢＯＸ’による置換ステップＥＴ６とアンマスキングステップＥＴ９を含む。
【００４７】
図３ａ、３ｂの例において、本方法は、第４のサブステップＥＴ００〜ＥＴ０３を含む開始ステップＥＴ０を有する。開始ステップの目的は、第１マスキングステージ（ステップＥＴ０１：入力データＭＥのマスキング）を実行し、第２マスキングステージ（非線形演算子ＳＢＯＸ’による計算による）を準備することである。第２マスキングステージは、各計算ラウンドで実行される。
【００４８】
ステップＥＴ００の間に、三つのマスキングパラメータＸ１，Ｘ２、Ｘ３がランダムに選択される。それらは、例えば、本方法の実行の際に修正される。それらは、本方法を実施するＭ回の事例で、修正される。
【００４９】
ステップＥＴ０１の間に、入力の左側部と右側部が、分離され、パラメータＸによりマスクされて、マスクされた左側部Ｌ’０＝Ｌ０＆Ｘ１、と、マスクされた右側部Ｒ’０＝Ｒ０＆Ｘ１を算出する。マスキングは、第１マスキング演算子「＆」により行われる。
【００５０】
演算子「＆」は、混合に使う二変数に関して線形である。一つの実施例において、演算子「＆」は、ＸＯＲ演算子である。一般に、データＡ，Ｂ，Ｃがどのようなものであろうが、演算子「＆」は、以下の性質を有している。
【００５１】
【数２】
2004533630.tif 000004
【００５２】
演算子「＆−１」は、「＆」の逆元で、（Ａ＆Ｂ）＆−１Ａ＝Ｂ、ケースによっては、「＆−１」と「＆」は同一である。
【００５３】
ステップＥＴ０２において、変数ＶＸ１＝Ｅ（Ｘ１）、ＶＸ２＝Ｐ（Ｘ２）が計算される。既知のＤＥＳタイプ法において規定されているように、演算子Ｆ、Ｐは、それぞれ拡張、単純な順序換えである。
ステップＥＴ０３の間に、新規非線形演算子ＳＢＯＸ’が、次の関係式により計算される。
ＳＢＯＸ’＝ＦＣＴ（ＳＢＯＸ、Ｘ２、Ｘ３）
但しＳＢＯＸは、既知のＤＥＳ法で使用される非線形演算子で、Ｘ２、Ｘ３は、ランダムパラメータである。
ＦＣＴは、次の関数である。
ＳＢＯＸ’［Ａ＠Ｘ３］＝ＳＢＯＸ［Ａ］＃Ｘ２、（Ａの如何なる値に対しても）
「＠」、「＃」は、線形ミキシング演算子で、演算子「＆」と同様な性質を持つものである。
「＠」、「＃」は、互いに異なるもので、これらは、演算子「＆」とは異なってもよい。
【００５４】
操作の第１ラウンドが、それから実行される。；それは９のステップＥＴ１〜ＥＴ９にサブ分割することができる。
【００５５】
キー計算ステップＥＴ１の間に、導出キーＭ１は、シークレットキーＫ０から計算される。第１のアップデートされた導出キーＭ１は、次の関係式により算出される。
Ｍ１＝ＰＣ（Ｓ１（Ｋ０））＝ＰＣ（Ｋ１）。
Ｋ１は、第１のアップデートされた中間キーであり、その後、操作の第２ラウンドにおいて、算出される。（図４ａ、４ｂには示さない）。操作ＰＣ、Ｓ１は、それぞれ、順序換え−圧縮、ビットシフト操作である。これらは、既知のＤＥＳ法のケースで規定されている。ステップＥＴ１は、従って、既知のＤＥＳ法のケースで規定されているように、キー計算ステップに同一である。
【００５６】
次のステップＥＴ２〜ＥＴ８は、変換ステップＦ’を形成する。これは、従来技術の方法の変換Ｆ（ステップＥＴ３とＥＴ４を追加し、本発明による新規演算子ＳＢＯＸ’で演算子ＳＢＯＸを置換して、修正した）に対応するものである。
【００５７】
ステップＥＴ２の間、拡張が、データＲ’０に対して行われる。
この操作の結果Ｅ（Ｒ’０）は、次に、第２のマスキング演算子「＠」により、パラメータＸ３とミックスされる。
【００５８】
次のステップＥＴ４は、第１アンマスキングステップで、前の操作結果から、この結果（これは、マスキングパラメータＸ１により形成された）に対する寄与を取除くものである。この目的のために、以下の操作が実行される。
【００５９】
【数３】
2004533630.tif 000005
【００６０】
次のステップＥＴ５の間に、前のステップＥＴ４の結果が、ＸＯＲ操作により、アップデートされた導出キーＭ１とミックスされる。ステップＥＴ５は、次の結果を算出する。
【００６１】
【数４】
2004533630.tif 000006
【００６２】
ステップＥＴ６において、非線形操作ＳＢＯＸ’が、前の操作の結果について実行される。ステップＥＴ６は、次の結果を算出する。
【００６３】
【数５】
2004533630.tif 000007
【００６４】
これは、非線形演算子ＳＢＯＸ’の定義に基づくものである。
１ビット順序換えＰは、次にこの結果（ステップＥＴ７）に適用される。こうして、次の式を得る。
【００６５】
【数６】
2004533630.tif 000008
【００６６】
この結果は、演算子Ｐの線形性から単純に導かれる。
【００６７】
ステップＥＴ８において、順序換えＰの結果は、次に、（ＸＯＲ操作により）ステップＥＴ０１の間に計算されたデータＬ’０に加算される。ステップＥＴ８は、既知のＤＥＳ法の対応するステップに類似している。こうして、次の式が得られる。
【００６８】
【数７】
2004533630.tif 000009
【００６９】
但し、Ｒ１は、既知のＤＥＳ法のコンテキストの中で規定されているように、第１中間データ（Ｌ１、Ｒ１）の右側部である。又、上記の全ての非等号（ｉｎｅｑｕａｌｉｔｉｅｓ）は、演算子Ｐ、＆、＃の線形性という事実から導かれるものである。
【００７０】
次のステップＥＴ９は、第２のアンマスキングステップで、前の操作の結果から、マスキングパラメータＸ２により得られた結果への寄与を、取除くものである。この目的のために、以下の操作が実行される。
【００７１】
【数８】
2004533630.tif 000010
【００７２】
第１ラウンドの終わりで、アップデートされた中間データは、（Ｌ’１、Ｒ’１）に等しい。但し、Ｌ’１＝Ｒ’０＝Ｒ０＆Ｘ１＝Ｌ１＆Ｘ１、Ｒ’１＝Ｒ１＆Ｘ１。
【００７３】
このように、本発明によるＤＥＳ法を用いて、中間データ（Ｌ’１、Ｒ’１）は、操作の第１ラウンドの間に計算され、非安全である既知のＤＥＳタイプ法により算出され、演算子「＆」を使って、ランダムパラメータＸ１によりマスクされる中間データ（Ｌ１、Ｒ１）に等しい。
【００７４】
第２ラウンドが、新規アップデートされた中間データ（Ｌ’１、Ｒ’１）とアップデートされた中間キーＫ１（ステップＥＴ１の期間に計算された）を使って、実行される。
【００７５】
一般に、本方法の操作の第ｉラウンドは、ステップＥＴ１〜ＥＴ９の９ステップにサブ分割される。
【００７６】
ステップＥＴ１において、導出キーＭ１は、中間キーＫi-1から算出される。該中間キーは、前のラウンドで計算され、アップデートされる導出キーＭｉ＝ＰＣ（Ｓｉ（Ｋｉ―１））＝ＰＣ（Ｋｉ）  を算出する。Ｋｉは第１のアップデートされる中間キーで、その後、次の操作ラウンドで与えられる（図４ａ、４ｂ）。演算子ＰＣ、Ｓｉは、それぞれ、順序換え−圧縮、ビットシフト操作である。これらは、既知のＤＥＳ法のケースで規定されている。
ステップＥＴ２において、拡張は、データＲ’ｉ−１について行われる。
この拡張の結果Ｅ（Ｒ’i-1）は、第２のマスキング演算子「＠」を使って、パラメータＸ３とミキシングが行われる。
次のステップＥＴ４において、以下の操作が実行される。
【００７７】
【数９】
2004533630.tif 000011
【００７８】
ステップＥＴ５において、ステップＥＴ４の結果は、ＸＯＲ操作により、アップデートされた導出キーＭｉとミックスされる。ステップＥＴ５は、こうして次の式を得る。
【００７９】
【数１０】
2004533630.tif 000012
【００８０】
ステップＥＴ６において、非線形操作ＳＢＯＸ’が、前の操作の結果に基づいて、実行される。ステップＥＴ６は、次の結果を算出する。
【００８１】
【数１１】
2004533630.tif 000013
【００８２】
これは、非線形操作ＳＢＯＸ’の定義から導かれるものである。
１ビット順序換え操作Ｐは、この結果（ステップＥＴ７）に適用される。こうして、次式を得る。
【００８３】
【数１２】
2004533630.tif 000014
【００８４】
ステップＥＴ８において、順序換えＰの結果が、（ＸＯＲ操作を使って）データＬ’ｉ−１（前のラウンドで計算された）に加えられる。そして次式を得る。
【００８５】
【数１３】
2004533630.tif 000015
【００８６】
但し、Ｒｉは、第ｉアップデートされたデータ（Ｌｉ、Ｒｉ）の右側部である。これは、既知のＤＥＳタイプ法のコンテキストにおいて定義されているとおりである。又、上記の全ての等号は、演算子Ｐ、＆、＃の線形性という事実から導かれるものである。
【００８７】
次のステップＥＴ９は、第２アンマスキングステップで、前の操作の結果から、マスキングパラメータＸ２によって得られたこの結果に対する寄与を取除くものである。このために、以下の操作が実行される。
【００８８】
【数１４】
2004533630.tif 000016
【００８９】
第ｉラウンドの終わりに、アップデートされた中間データは、（Ｌ’ｉ、Ｒ’ｉ）と等しく、次式が成り立つ。
Ｌ’ｉ＝Ｒ’i-1＝Ｒi-1＆Ｘ１＝Ｌｉ＆Ｘ１、Ｒ’i＝Ｒｉ＆Ｘｉ．
【００９０】
このように、本発明によるＤＥＳ法を使うと、第ｉラウンドにおいて計算された中間データ（Ｌ’ｉ、Ｒ’ｉ）は、非安全の既知のＤＥＳ法により（但し、演算子「＆」を使ってランダムパラメータによりマスクされる）、上記と同一のラウンドで与えられる中間データ（Ｌｉ、Ｒｉ）に等しい。
新規中間データ（Ｌ’ｉ、Ｒ’ｉ）は、次のラウンドで算出される。
【００９１】
本方法の第１６ラウンドで、第１６中間データ（Ｌ’16、Ｒ’16）が算出される。第３と最終アンマスキングステップＥＴ１０において、パラメータＸ１の第１６データに対する寄与は、演算子＆−１により、取除かれる。：
Ｌ16＝Ｌ’16＆−１Ｘ１、Ｒ16＝Ｒ’16＆−１Ｘ１
【００９２】
最後の順序換えＩＰ−１は、ステップＥＴ１０の後、実行されるが、本発明に基づくＤＥＳ法を終了させるものである。順序換えＩＰ−１は、既知のタイプのＤＥＳ法の等価な順序換えと同一である。
【００９３】
本発明によるＤＥＳ法を使って、生成された出力は、入力データＭＥとシークレットキーＫ０が既知の方法及び本発明による方法について同一である限り、既知のＤＥＳ法が算出するものと同一である。
【００９４】
【数１５】
2004533630.tif 000017
【００９５】
Ｘ１、Ｘ２、Ｘ３は、本方法を実施する各場合において、ランダムに選択されるから、全中間結果及び中間データの値は、本方法を実施する各場合において、異なる。例え、入力データ（Ｌ０、Ｒ０）、又は、本発明の方法により使用されるシークレットキーＫ０の値がどのようなものであろうとも、異なる。と具体的には、本方法が、同一の入力データＭＥと同一のシークレットキーＫ０を使って、２回実行されるケースを含め、全ての中間結果が異なる。
【００９６】
少なくとも一つのランダムパラメータの存在により、シークレットキーＫ０と入力データＭＥの間の全ての相関は、中間結果又は中間データのレベルで抑圧される。ＤＰＡタイプの統計アナリシスによっても、シークレットキー（本発明による安全化方法により使用される）についての情報を取得することは不可能である。
【００９７】
図３ａ、３ｂの方法における変更及び／又は改良は、本発明の枠を離れることなく可能である。
例えば、本方法の複数ステップが実行される順序を変更することができる。
―複数ステップＩＰ、ＥＴ０１、ラウンド１、…ラウンドｉ、…ラウンド１６、ＥＴ１０、ＩＰ-1は、所望の方法が図１，２のものに類似である場合には、図４ａ、４ｂで示した順序で実行しなければならない。
―ステップＥＴ００は、ステップＥＴ０１より前に実行されなければならない。ステップＥＴ００は、ステップＩＰより前、又は同時に実行してもよい。
―ステップＥＴ０２は、ステップＥＴ００とステップＥＴ４（操作の第１ラウンドの）の間に実行される。；それは、ステップＩＰ、ステップＥＴ０１とステップＥＴ１又はＥＴ２の前、又は同時に実行してもよい。
―ステップＥＴ０３は、操作の第１ラウンドのステップＥＴ００とステップＥＴ６の間に実行される。；それは、ステップＥＴ０１、複数ステップＥＴ１、ＥＴ２、ＥＴ３、ＥＴ４の前又は後に実行してもよい。ステップＥＴ０１がステップＩＰの前に実行されウ場合には、対称の理由により、ステップ１０は、ステップＩＰ-1の後に実行される。反対に、ステップＥＴ０１がステップＩＰの後に実行される場合には、ステップＥＴ１０は、ステップＩＰ-1の目に実行される。
―各ラウンドｉにおいて、導出キーＭｉをステップＥＴ５の実行のために利用する為に、ステップＥＴ１は、実行されなければならない。；ステップＥＴ１は、例えば、複数ステップＥＴ２、ＥＴ３、ＥＴ４と同時に実行してもよい。
【００９８】
図３ａ、３ｂを参照して説明した例において、３つのランダムパラメータＸ１、Ｘ２、Ｘ３を使った。このやり方は、一番効率的なやり方で、全ての中間結果をマスクするものである。他の例においては、パラメータを２つだけ使うこともかのうである。即ち、パラメータＸ１、Ｘ２。この場合、ステップＥＴ０２は、Ｐ（Ｘ２）の計算に限定される。操作の全てのラウンドのステップＥＴ３、ＥＴ４が取除かれ、ステップＥＴ０３は、変更されて、新規の非線形演算子ＳＢＯＸ''を、次の式で、計算する。
ＳＢＯＸ''＝ＦＣＴ''（ＳＢＯＸ、Ｘ１、Ｘ２）
但し、ＦＣＴ’’は、次のような関数である。
ＳＢＯＸ''（Ａ＆Ｅ（Ｘ１））＝ＳＢＯＸ（Ａ）＃Ｘ２。
【００９９】
【数１６】
2004533630.tif 000018
【０１００】
同様に、図３ａ、３ｂを参照して説明してきた例において、三つのパラメータＸ１、Ｘ２、Ｘ３が、本方法を実施するごとに、ランダムに選択される。しかしながら、パラメータＸ１、Ｘ２、Ｘ３は、多少頻繁に変更することができる。例えば、操作の第ｉラウンドの実行時に、パラメータ、特にＸ２及び／又はＸ３を変更することが可能である。この場合、ステップＥＴ０２、ＥＴ０３は、変更パラメータＸ２、Ｘ３を考慮に入れて、各ラウンドで実行される。
【０１０１】
同じ考えで、Ｍ回の実行がＤＰＡタイプの攻撃を実行するのに十分でないと考えられる場合には、本方法の実施するＭのケース毎に、パラメータＸ１、Ｘ２、Ｘ３を、変更することができる。但し、Ｍは整数である。この場合、ステップＥＴ０において、ステップＥＴ０１だけが実行される。複数ステップＥＴ００、ＥＴ０２、ＥＴ０３は、本方法のＭ回の実行毎にのみ、実行される。
【０１０２】
他の主要な改良において、本方法は、ＳＰＡタイプの攻撃に対して、安全にできる。このタイプのアナリシスに対し、導出キー計算ステップＭｉは、特に弱い。従って、改良は、中間結果に加えて、導出キーをマスクすることである。図３ａ、３ｂの方法は、次の追加により（図４参照）改良される。：
―開始ステップＥＴ０において、サブステップＥＴ０５、ＥＴ０６
―本方法の操作の１６ラウンドの各ラウンドにおいてステップＥＴ１１、ＥＴ１２
説明を明瞭に簡単にするために、新規ステップＥＴ０５とＥＴ０６をつけて、本方法の第ｉラウンドだけを図４に示した。
【０１０３】
ステップＥＴ０５において、第４パラメータＹ０をランダムに選択する。ステップＥＴ０５は、例えば、ステップＥＴ００と同時に実行される。又は、複数ステップＩＰ、ＥＴ０１、ＥＴ０２、ＥＴ０３の中の１つと同時に、実行される。
マスキングステップＥＴ０６において、第４マスキングパラメータＹ０は、ステップＥＴ０５の後実行されるが、シークレットキーＫ０とミックスされ、マスクされたシークレットキーＫ’０を算出する。このミキシングは、次の関係式により行われる。：
Ｋ’０＝Ｋ０｜Ｙ０
【０１０４】
演算子「｜」は、ミックスする二変数に関して線形であるように選択される。一つの実施例では、演算子「｜」は、ＸＯＲである。演算子「｜」は、又どのタイプの線形演算子であってよい。一般に、演算子「｜」は、演算子「＆」、「＠」、「＃」のようなものと類似した性質を有する。
【０１０５】
次に、操作の第１ラウンド（図４には示さないが）が実行される。キー系ＳなステップＥＴ１は、シークレットキーＫ０からは、もはや直接実行されず、マスクされたシークレットキーＫ’０から実行される。ステップＥＴ１は、次の式によって、マスクされた導出キーＭ’１を算出する。
Ｍ’１＝ＰＣ（Ｓ１（Ｋ’０））＝ＰＣ（Ｓ１（Ｋ０｜Ｙ０））
＝ＰＣ（Ｓ１（Ｋ０））｜ＰＣ（Ｓ１（Ｙ０））
【０１０６】
最後の等号は、単に、演算子ＰＣ，Ｓ１と「｜」が線形演算子であり、特に切替（switching）又は結合（associative）タイプの性質を有する、という事実から導かれる。
【０１０７】
ＰＣ（Ｓ１（Ｋ０））＝Ｋ１であるから、これから最終的に、Ｍ’１＝Ｍ１｜ＰＣ（Ｓ１（Ｙ０））となる。但し、Ｍ１は、計算された導出キーで、図３ａ、３ｂを参照して説明されたＤＥＳ法により計算されたものである。
【０１０８】
例えば、差計算ステップＥＴ１１は、キー計算ステップＥＴ１、の前に、又は、と同時に、又は、の後に、実行される。ステップＥＴ１１は、マスクされた導出キーＭ’ｉに対しパラメータＹ０により計算される寄与Ｃｉを決定する。
【０１０９】
ステップＥＴ１１は、ステップＥＴ１と類似である。；ステップＥＴ１１は、マスキングパラメータＹ１＝Ｓ１（Ｙ０）を算出する操作Ｓｉ（この操作Ｓｉは、パラメータＹ０のビットをシフトしてアップデートされる）及び、寄与Ｃｉを計算する操作ＰＣを含む。寄与Ｃ１は、次の関係式に従って計算される。：Ｃ１＝ＰＣ（Ｓ１（Ｙ０））。最終的に、Ｍ’１＝Ｍ１｜Ｃ１が導かれる。このアップデートされたマスキングパラメータＹ１は、操作の次のラウンドで計算される。
【０１１０】
アンマスキングステップＥＴ１２は、変換ステップＦ”のサブ分割である（Ｆ”は、図４ａ、４ｂにステップＥＴ１２を追加したＤＥＳ法の変換Ｆ'に対応する）。ステップＥＴ１２は、ステップＥＴ５とステップＥＴ６の間に実行される。ステップＥＴ１２は、アップデートされたマスキングパラメータＹ１により与えられる寄与Ｃ１を取除くものである。このために、演算子「｜−１」（これは、演算子「｜」の逆元である）が使用される。ステップＥＴ１２の出力において、次式が得られる。
【０１１１】
【数１７】
2004533630.tif 000019
【０１１２】
【数１８】
2004533630.tif 000020
【０１１３】
従って、変換Ｆ’’の出力に現れる出力データは、図３ａ、３ｂの方法の変換Ｆ’の出力に現われるものと同一である。
【０１１４】
更に一般的に言えば、操作の第ｉラウンドにおいて、ステップＥＴ１は、次の式により、マスクされ、導出されたキーＭ’ｉを算出する。
【数１９】
2004533630.tif 000021
【０１１５】
但しＭｉは、図３ａ、３ｂを参照して説明したＤＥＳ法に従って計算したものである。
【０１１６】
複数演算子ＰＣが、本方法の全ラウンドに対して、同一である（同一特徴、同一パラメータ等）。反対に、ビットシフト操作Ｓｉは、操作のラウンドごとに異なる。
【０１１７】
ステップＥＴ１１は、マスクされた導出キーＭ’に対しパラメータＹi-1（又は、一般的にＹ０）により形成される寄与Ｃｉを決定する。ステップＥＴ１１は、アップデートされたパラメータＹｉ＝Ｓｉ（Ｙi-1）を算出し、次の関係式に従って、アップデータされた寄与Ｃｉを算出する。Ｃｉ＝ＰＣ（Ｓｉ（Ｙi-1））。最後に、これからＭ’１＝Ｍｉ｜Ｃｉが導かれる。アップデートされたマスキングパラメータＹｉは、操作の次のラウンドで算出される。
【０１１８】
ステップＥＴ１２が、ステップＥＴ５とステップＥＴ６の間に実行される。ステップＥＴ１２の出力で、次式が導かれる。
【０１１９】
【数２０】
2004533630.tif 000022
【０１２０】
こうして、寄与Ｃｉの除去の後で、ＳＢＯＸ’タイプの演算子の入力に現われる変数は、ＰＥ（Ｒｉ−１）＠Ｘ３＋Ｍｉと同一である。即ち、それは、図４ａ、４ｂを参照して説明したＤＥＳ法の演算子ＳＢＯＸ’の入力に現われる変数と同一である。変換ステップＦ”の出力に現われる出力データは、図３ａ、３ｂの方法変換操作Ｆ''の出力に現われるものと同一である。
【０１２１】
最後に、図４の方法によると、全中間結果は、パラメータＸ１、Ｘ２、Ｘ３（又はこれらパラメータから導出されたもの（ｆｏｒｍ）の内の少なくとも一つによりマスクされる。更に、全中間キーＫ’ｉ、全導出キーＭ’ｉは、パラメータＹ０又はＹ０から導出されたものにより、マスクされる。
【０１２２】
2004533630.tif 000023
2004533630.tif 000024
【図面の簡単な説明】
【０１２３】
【図１】ＤＥＳタイプの既知の暗号化法を説明するブロック図である。
【図２】図１の方法の詳細ステップを説明する流れ図である。
【図３ａ．３ｂ】本発明に基づいて安全化された、図１の方法についての流れ図である。
【図４】図３ａ，図３ｂの方法の改良したもののブロックダイアグラムである。
【図１】
2004533630.tif 000025
【図２】
2004533630.tif 000026
【図３ａ】
2004533630.tif 000027
【図３ｂ】
2004533630.tif 000028
【図５】
2004533630.tif 000029
【国際公開パンフレット】
2004533630.tif 000030
2004533630.tif 000031
2004533630.tif 000032
2004533630.tif 000033
2004533630.tif 000034
2004533630.tif 000035
2004533630.tif 000036
2004533630.tif 000037
2004533630.tif 000038
2004533630.tif 000039
2004533630.tif 000040
2004533630.tif 000041
2004533630.tif 000042
2004533630.tif 000043
2004533630.tif 000044
2004533630.tif 000045
2004533630.tif 000046
2004533630.tif 000047
2004533630.tif 000048
2004533630.tif 000049
2004533630.tif 000050
2004533630.tif 000051
2004533630.tif 000052
2004533630.tif 000053
2004533630.tif 000054
2004533630.tif 000055
2004533630.tif 000056
2004533630.tif 000057
2004533630.tif 000058
2004533630.tif 000059
2004533630.tif 000060
2004533630.tif 000061
2004533630.tif 000062
2004533630.tif 000063
2004533630.tif 000064
2004533630.tif 000065
2004533630.tif 000066
【手続補正書】
【提出日】平成15年4月10日(2003.4.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力キーとシークレットキーから出力データを生成するために連続的に実行されるＮ計算ラウンドを含む方法であって、
該方法は、
―計算ラウンドで使用され、生成される各中間データがマスクされるための、入力データ（ＭＥ）をマスクするための第１マスキングステージと、
―各計算ラウンド内で操作されるデータをマスクするための第２マスキングステージであって、
―第ｉランキング計算ラウンドの前のステップの結果をマスクするための第２マスキングステップＥＴ３と、
―マスクされた非線形演算子ＳＢＯＸ’を使って、前に得た、マスクされた結果の置換ステップＥＴ６と、
―ステップＥＴ６の結果のアンマスキングを行う第２アンマスキングステップＥＴ９とを、連続して実行するステージであることを特徴とする該第２マスキングステージとを、
有することを特徴とする暗号化計算の保護方法。
【請求項２】
―第１計算ラウンド（ラウンド１）の前に入力データ（ＭＥ）をマスクするために実行する第１マスキングステップ（ＥＴ０１）と、
―ステップＥＴ０１とＥＴ１０が第１マスキングステージを得規制するものであって、
マスクされない出力データ（ＭＳ）を算出するために、第Ｎ計算ラウンド（ラウンドＮ）の結果である第１アンマスキングステップ（ＥＴ１０）とを、
と有することを特徴とする方法。
【請求項３】
―第１マスキングステップにおいて、第１マスキングパラメータ（Ｘ１）が入力データ（ＭＥ）とミックスされ、第１計算ラウンドで、マスクされた入力データ（ＭＥ’；Ｌ’０，Ｒ’０）を作成し、該ミキシングは第１線形ミキシング演算子（「＆」）を使用して行い、
―第１アンマスキングステップ（ＥＴ１０）において、第１マスキングパラメータ（Ｘ１）により、第Ｎ計算ラウンドの結果に対して作成される寄与は、第Ｎ計算ラウンドの結果から除去される
ことを特徴とする請求項２記載の方法。
【請求項４】
―第１計算ラウンドの前に実行され、以下の関係を検証する非線形演算子ＳＢＯＸ’を生成するための、第３マスキングステップ（ＥＴ０３）を有する請求項２又は３記載の方法。
ＳＢＯＸ’［Ａ＠Ｘ３］＝ＳＢＯＸ［Ａ］＃Ｘ２、
但し、Ｘ２は第２マスキングパラメータ、Ｘ３は、第３マスキングパラメータであり、ＳＢＯＸは、既知の非線形演算子
「＃」は、第２ミキシング演算子で、「＠」は、第３ミキシング演算子
【請求項５】
第ｉ計算ラウンドのステップＥＴ９において、マスクされた非線形演算子ＳＢＯＸ’の結果に対し、第２マスキングパラメータ（Ｘ０）により作成される寄与が、前記マスクされた非線形演算子ＳＢＯＸ’により生成された結果から引き算することを特徴とする、請求項４記載の方法。
【請求項６】
ｉランキング計算ラウンドは、以下のステップを有し、以下の順序で実行することを特徴とする請求項４記載の方法。
―ＥＴ２：先行する計算ラウンドにより前もって計算されたマスクされた中間データの右側部（Ｒ’ｉ―１）の拡張、
―ＥＴ３：第３マスキング演算子（「＠」）を使って、第３マスキングパラメータ（Ｘ３）で先行するステップＥＴ２の結果をマスクする。
―ＥＴ４：第１マスキングパラメータを使って、先行するＥＴ３ステップの結果から寄与を除去する。
―ＥＴ５：前のステップの結果に、アップデートされた導出キー（Ｍｉ）でミキシングする。
―ＥＴ６：先行するステップＥＴ５の結果を、マスクされた非線形演算子ＳＢＯＸ’で置換し、第２マスキングパラメータ（Ｘ２）によりマスクされた結果を提供する。
―ＥＴ７：先行するステップＥＴ６の結果の順序換え。
―ＥＴ８：ＸＯＲ操作を使って、先行するＥＴ７の結果に、前に計算した中間データの左側部（Ｌ’i-1）を加算する。
―ＥＴ９：先行するステップＥＴ８の結果から、第２マスキングパラメータにより算出された寄与を除去し、中間データ（Ｌ’ｉ、Ｒ’ｉ）の右側部を算出する。但し、前記中間データの左側部（Ｌ’ｉ）は、前に計算された中間データ（Ｌ’ｉ−１、Ｒ’ｉ−１）の右側部に等しい。
【請求項７】
前記方法を実行する毎に、マスキングパラメータ（Ｘ１、Ｘ２、Ｘ３）の中から少なくとも１つをランダムに選択することを特徴とする請求項２〜６のいずれか１項記載の方法。
【請求項８】
前記方法を実行するＭ事例毎に、マスキングパラメータ（Ｘ１、Ｘ２、Ｘ３）の中から少なくとも１つをランダムに選択することを特徴とする請求項２〜６のいずれか１項記載の方法。
【請求項９】
第１ミキシング演算子（「＆」）及び／又は第２ミキシング演算子（「＃」）及び／又は第３ミキシング演算子（「＠」）がＸＯＲ演算子であることを特徴とする請求項２〜８のいずれか１項記載の方法。
【請求項１０】
既知のキー計算法によりシークレットキー（Ｋ０）からアップデートされた導出キーを算出するための、導出計算ステップＥＴ１であって、
本方法は、又、導出キー計算ステップ（ＥＴ１）の前に実行され、本方法を実行する毎に、前記計算された導出キー（Ｍ’１、Ｍ’ｉ）が異なるようにミキシングパラメータ（Ｙ０）により、シークレットキー（Ｋ０）をマスクするための第４マスキングステップ（ＥＴ０６）を有することを特徴とする請求項２〜９のいずれか１項記載の方法。
【請求項１１】
連続的に実行されるＮの導出キー計算ステップ（ＥＴ１）を含む方法であって、
ｉランキング導出キー計算ステップは、
同一ｉランキング計算ラウンド（ラウンドｉ）において、マスクされ、アップデートされた導出キー（Ｍ’ｉ）を算出し、前に計算されたマスクされたシークレットキー（Ｋ’i-1）からアップデータされたマスクされたシークレットキー（Ｋ’ｉ）を算出することを特徴とする請求項１０記載の方法。
但し、前記ｉランキング計算ラウンドは、特に、ステップＥＴ３とＥＴ６の間に実行される、次のステップＥＴ５とＥＴ１２を有する。
ＥＴ５：ランクｉの、アップデートされ、マスクされた導出キー（Ｍ’ｉ）と、前のステップの結果とのミキシング、
ＥＴ１２：ステップＥＴ５の結果から、ミキシングパラメータ（Ｙ０）により生成された寄与の除去。
【請求項１２】
第４マスキングステップ（ＥＴ０６）が、第１導出キー計算ステップより前に実行されることを特徴とする請求項１１記載の方法。
【請求項１３】
第４マスキングステップ（ＥＴ０６）が、各導出キー計算ステップ（ＥＴ１）より前に実行されることを特徴とする請求項１１記載の方法。
【請求項１４】
マスクされた導出キー（Ｍ’１、Ｍ’ｉ）は、マスクされたキー（Ｋ’０）から計算されるものであって、
マスクされたシークレットキー（Ｋ’０）を算出するために、第４マスキングステップ（ＥＴ０６）において、ランダムに選択したマスキングパラメータ（Ｙ０）が、第４マスキング演算子（「｜」）を使って、シークレットキー（Ｋ０）とミックスされることを特徴とする、請求項１０〜１３のいずれか１項記載の方法。
【請求項１５】
第４マスキングステップ（ＥＴ０６）において、以下の操作が実行されることを特徴とする、請求項１４記載の方法。
Ｋ’０＝Ｋ０｜Ｙ０
但しＫ’０は、マスクされたシークレットキー、
Ｋ０は、シークレットキー、
Ｙ０は，第４マスキングパラメータ、
「｜」は、第４ミキシング演算子。
【請求項１６】
第４ミキシング演算子「｜」がＸＯＲ演算子であることを特徴とする請求項１４又は１５記載の方法。
【請求項１７】
請求項１〜１６のいずれか１項に基づく暗号化計算方法を有する電子コンポーネント。
【国際調査報告】
2004533630.tif 000067
2004533630.tif 000068
2004533630.tif 000069
2004533630.tif 000070
2004533630.tif 000071
2004533630.tif 000072