"暗号回路による暗号アルゴリズムの実行中に使用される秘密データDi、Kの検出を目的とする攻撃からの前記暗号回路の保護方法であって、データDiへの少なくとも一つの暗号演算Oiの適用22を含み、前記データは、少なくとも一つの群構造を有し、且つ少なくとも一つの二項演算E、×Eが提供される第1の数学的構造Eに属し、前記保護方法は、前記データDiに、前記暗号演算Oiを適用する22前に、前記二項演算E、×Eと両立する少なくとも一つの可逆の第1の準同型写像Miを適用し20、前記暗号演算Oiを適用した後に、前記第1の準同型写像Miの逆写像である少なくとも一つの第2の準同型写像Mi1を適用する24ことを含む、前記暗号演算を保護するためのステップOPiを含むことを特徴とする保護方法。前記暗号演算Oiは、前記第1の準同型写像Miの結果MiDiに適用されることを特徴とする、請求項1に記載の保護方法。前記第2の準同型写像Mi1は、前記暗号演算Oiの結果OiMiDiに適用されることを特徴とする、請求項1又は2に記載の保護方法。前記第2の準同型写像Mi1は、少なくとも二つの暗号演算Oiを前記第1の準同型写像Miの結果MiDiに適用した後に適用されることを特徴とする、請求項1又は2に記載の保護方法。前記暗号アルゴリズムは、少なくとも二つの暗号演算Oiを前記データDiに適用することを含み、少なくとも一つの可逆の準同型写像Miが、前記少なくとも二つの暗号演算Oiの前に適用されることを特徴とする、請求項1~4の何れか一項に記載の保護方法。少なくとも二つの異なる準同型写像が前記データDiに適用されることを特徴とする、請求項5に記載の保護方法。前記準同型写像は、前記第1の数学的構造Eの前記少なくとも一つの二項演算E、×Eとは異なる少なくとも一つの二項演算F、×Fが提供される、前記第1の数学的構造Eとは異なる第2の数学的構造Fへの前記第1の数学的構造Eの適用であることを特徴とする、請求項1~6の何れか一項に記載の保護方法。前記準同型写像Miは、準同型の暗号化であることを特徴とする、請求項1~7の何れか一項に記載の保護方法。前記暗号演算Oiは、当該演算の入力変数の関数として、前記演算Oiの結果を示す相互関係の写像T1、T2、Tiを用いて適用されることを特徴とする、請求項1~8の何れか一項に記載の保護方法。前記準同型写像Mi及び前記暗号演算Oiは、前記準同型写像の入力変数の関数として、少なくとも前記準同型写像及び前記演算Oiの合成の結果を示す単一の相互関係の写像T1を用いて適用されることを特徴とする、請求項9に記載の保護方法。暗号回路による暗号アルゴリズムの実行中に使用される秘密データDi、Kの検出を目的とする攻撃に対する前記暗号回路の保護装置1であって、データDiへの少なくとも一つの暗号演算Oiの適用部を備え、前記データは、少なくとも一つの群構造を有し、且つ少なくとも一つの二項演算E、×Eが提供される第1の数学的構造Eに属し、前記保護装置は、前記データDiに、前記暗号演算Oiを適用する22前に、前記二項演算E、×Eと両立する少なくとも一つの可逆の第1の準同型写像Miを適用し、且つ前記暗号演算Oiを適用した後に、前記第1の準同型写像Miの逆写像である少なくとも一つの第2の準同型写像Mi1を適用する手段を備えることを特徴とする保護装置。図1は、本発明の第1の実施形態に従った保護装置1を示す。保護装置1は、プロセッサ3及びメモリ5を備え、例えばセキュリティ鍵又はデータ等のデータを交換できるように接続される。メモリ5は、データを格納することができ、保護メモリ空間7を含み、特に、セキュリティ鍵及び/又は少なくとも一時的に暗号化され、又は復号されるデータを安全に格納することができる。プロセッサ3は、暗号アルゴリズムの適用部9と、そのアルゴリズムの適用を保護するための手段11を備える。その適用部9は、例えば保護されるべきデータに対する暗号化又は保護されたデータに対する復号等の暗号アルゴリズムを適用することができる。そのため、マイクロプロセッサ3は、メッセージに暗号アルゴリズムを適用することができ、敵による鍵及び/又はデータの検出を防ぐように、そのアルゴリズムを保護するための方法を実施する。図2は、セキュリティ鍵を含む、暗号保護を必要とするデータについての、暗号アルゴリズムの実行中に、図1に示すような保護装置1により実施される、本発明の一実施形態に従った保護方法の基本的なステップを示す。以下、この暗号アルゴリズムは暗号化であるものとするが、図2~5を参照して記述される保護方法は、復号演算又は任意の他のタイプの暗号保護のアルゴリズムに同様に適用することができる。この暗号アルゴリズムの実行は、暗号演算とも呼ばれる複数の数学的演算Oiの実施を含む。数学的演算Oiは、初期データに適用され、その後、その各演算の後に得られるデータに連続的に適用される。以下の記述において、D0は初期データを表し、Diは演算Oiの後に得られるデータを表し、Dnは暗号アルゴリズムの終了時に得られるデータを表す。Kと表されるセキュリティ鍵による演算Oiは、例えば加法、減法、乗法及び除法等の基本的な演算、例えば累乗法もしくは多項式評価等の、これらの基本的な演算から得られる任意の演算、又は例えば排他的論理和XORもしくは論理積関数のAND等の二項演算の中から選択される。これらの各演算Oiは、起こり得る攻撃から本発明の方法により保護される。そのため、より概略的には、データD0の暗号化は、複数の被保護数学的演算OPiの実施を含む。その数学的演算OPiの結果は演算Oiの結果と同一であるが、演算Oiは例えばDチャネル攻撃等の攻撃から保護される。図3に、各被保護演算OPi中に実行されるステップが詳細に示される。各数学的演算の保護、及びより広く、暗号アルゴリズム全体の保護は、有利には各演算の前に、そのデータへ第1の群写像、又は可逆であり且つランダムに選択される準同型写像を適用することと、有利には各演算の後に、第1の準同型写像の逆写像の準同型写像を適用することとに基づく。そのため、被保護演算OPiの実施は、初期データD0又は被保護演算OPi1から生じるデータDi1に、Miと表される第1の準同型写像を適用するためのステップ20を含む。その後、ステップ22の間に、鍵Kによる演算Oiが、ステップ20の終了時に得られた結果MiDi1に適用される。最後に、ステップ24の間に、第1の準同型写像Miの逆写像である、Mi1と表される第2の準同型写像が演算Oiの結果に適用される。群は、一般に加法ではEと表され、又は乗法では×Eと表される少なくとも一つの二項演算が提供される元の集合Eとして定義される代数的構造である。その群の全ての元は、その二項規則についての逆元を有する。さらに、その集合は、その規則が加法で表されるときは0Eと表され、その規則が乗法で表されるときは1Eと表される中立元を含む。集合が、一般にE及び×Eと表される二つの二項規則をそれぞれ有し、E,Eが群であるような場合、その集合は環である。さらに、零元を除く全ての元が、乗法規則により可逆である場合、その環Eは体である。二つの群Eと群F、あるいは等しい群の間の群写像は、それらの群の規則と両立する適用φとして、すなわち次のように定義される。ここで、E及びFは、それぞれ群E及び群Fの二項規則を意味し、0E及び0Fは、それらの中立元を意味する。さらに、写像φが全単射である場合、写像φは可逆である。そのため、φ1でその逆写像を表すと、集合Eの任意の元xに対して、である。さらに、群写像が、二つの環Eと環Fの間で定義される適用φを含み、且つその環の規則と両立する場合、すなわち次のような場合、その群写像は、環写像である。従って、環写像は、例えば加法及び乗法等の通常の演算の全てを保持するが、例えば累乗法もしくは多項式による合成、又はそれらの逆演算その可逆の元の減法もしくは逆元等の、通常の演算から得られる演算も保持する。以下の記述及び請求項において、一般用語準同型写像は、少なくとも一つの群構造を有する集合Eの、集合Fあるいは同一の集合への任意の適用を意味する。この適用はそれらの集合に係る少なくとも一つの二項規則を保護する。当然、この名称は、群写像の属性に加えて加法の属性を有する任意の写像、特に環写像、代数の写像又は体写像も含む。例えば、代数の写像は、二つの二項演算に加えていわゆる外部規則externallaw、例えば問題となっている代数とは実体bodyの異なる元との乗算を守る。上述したように、データDが、加法及び乗法が提供される環Eの元であり、ステップ20の間にデータDiに適用される写像Miが、前述で定義されたような可逆の写像、例えば自己準同型写像であり、その逆写像が、ステップ24の間に適用される写像Mi1であるとみなされる場合、ステップ24の終了時に得られるデータDi1は以下の等式を満たす。実際に、演算Oiは、環Eの基本的な演算又は環Eの基本的な演算から得られる演算であるので、この演算Oiは写像Mi及び写像Mi1により保護される。特に、写像Miは環Eの加法規則及び乗法規則を保護するので、それら二つの規則から得られる演算の全てが保護され、ひいては全ての演算Oiも保護される。その結果として、ステップ24の終了時に得られるデータDiは、演算Oiを単にデータDi1に適用することにより得られるデータと同一となる。しかしながら、適用される環写像のランダム性によって、入力変数のビットはランダムに変化する。従って、被保護演算OPiの電気及び/又は熱及び/又は電磁気のエネルギーの特徴並びにその実行期間はランダムとなり、演算Oiのそれらと異なり、エネルギー消費もしくは放出又は実行時間の任意の解析を役立たなくさせる。従って、各数学的演算Oiの前にデータDi1に写像を適用し、その演算の後にその逆写像を適用することによって、暗号化されるべきデータに連続的に適用される演算Oiのエネルギーの特徴を隠し、それ故に、その暗号アルゴリズムの最終結果Dn、すなわち暗号化データを変えることなく、例えばサイドチャネル攻撃等の攻撃からそのデータの暗号化を保護することが可能となる。様々な被保護演算OPi中に用いられる写像Mi及びその逆写像Mi1は、相互に異なり、ランダムに選択されるのが有利である。それにより、写像Miのエネルギーの特徴は解析することができない。さらに、暗号アルゴリズムのエネルギーの特徴が実行毎に異なって、その特徴についての任意の統計的な分析を防ぐように、使用される写像Miは暗号アルゴリズムの実行毎に変更されるのが有利である。その場合、例えば予め定められた写像のデータベースから写像をランダムに取り出すことにより、又はアルゴリズムの実行中に新たな写像を決定することにより、任意の写像Miが演算Oiの実行前にランダムに選択される。写像Miは、例えばにより、指数p>0に係る環Eについて定義されるフロベニウス写像、又はそのフロベニウス写像から定義される任意の写像である。その場合、環Eは、例えばGFpkで表される、次数k≧2に係るガロア体の拡大extensionである。GFpで表されるガロア体は、全てのモジュロpの整数により定義され、特にZ/pZpは素数で表される。かかる体において、xp=xである。あるいは、環写像Miは、準同型の暗号化、すなわち写像と同一の属性を有し、且つ鍵Ksによる暗号化の演算とすることができる。これらの準同型の暗号化は、理想的な束を用いる完全準同型暗号化GentryCSTOC2009169178に明示されるように、完全に準同型の暗号化であるのが有利である。かかる写像は、体写像と実質的に同一の代数の属性を有し、そのため環写像とみなすことができる。特に、かかる写像は、開始時の集合、環又は体の構造、並びに特に加法規則XOR及び乗法規則ANDを完全に保護し、可逆である。そのため、暗号アルゴリズムの間に実行される演算Oiが二項演算、例えばXOR演算、AND演算又はそれらから生じる演算であるとき、かかる写像を使用することができる。さらに、他のタイプの演算例えば、加法及び/又は乗法を保護する準同型の暗号化も使用してよい。また、準同型の暗号化には、鍵Ks以下、補助鍵と称するに依存するという有利な点がある。暗号アルゴリズムの終了時に得られる暗号化データはその鍵に依存しないからである。従って、準同型の暗号化は、関数CDi、Ksと書くことができ、又は固定鍵を持ち、前述した準同型の属性を有する関数fDiと書くことができる。その結果として、同一の準同型の暗号化関数Cは、鍵Ksのみを変更することにより、10300のオーダーの非常に多数の異なる可逆の写像fを生成することができる。実際には、1040のオーダーの複数の異なる鍵で十分なことが示される。そのため、全ての被保護演算OPiについて、同一の暗号化Cを選択し、さらに各演算の前にその暗号化のための鍵Ksをランダムに選択することにより、暗号アルゴリズムの一連の演算を保護するために使用される写像Mi及びそれらの逆写像をランダムに選択することができる。あるいは、写像Miは、加法規則及び乗法規則を保護するのではなく、単にそれらの規則のうちの一つのみを保護する準同型の暗号化としてもよい。これは、例えば乗法のみを保護するRSARivestShamirAdleman暗号化を含んでもよい。また、かかる写像Miは、演算Oiが、例えば加法のみ又は乗法のみの、単一のタイプの基本的な演算のみを使用するときに用いてもよい。しかしながら、上述した実施形態に限定されないことが理解されるべきである。特に、図4に説明される他の実施形態に従って、逆写像Mi1は、演算Oiの後すぐには適用されず、数個の連続した演算Oi、Oi1の後に適用される。そのため、図4に説明される実施形態において、被保護演算OPiの一つは、データDi1への準同型写像Miの適用と、続いて演算Oiの適用とを含む。その被保護演算OPi自体の後すぐに、演算Oi1の適用が続き、その後、逆写像Mi1が続く。そのため、写像MiによるデータDiの像に演算Oi1が適用される。さらに、攻撃に対するより強い耐性を提供するように、各演算Oiの前にデータに数個の写像を適用し、その後、各演算Oiの後に逆写像を連続的に適用してもよい。さらに、使用される写像は、自己準同型写像である必要はなく、第1の環Eの第2の環Fへの適用としてもよい。その第2の環Fの加法規則及び乗法規則は、第1の環Eの加法規則及び乗法規則と異なるのが有利である。かかる写像には、データDiの代数空間Eとは異なる代数空間Fにおける、演算Oiの互換に係る有利な点がある。かかる写像は、暗号アルゴリズムの保護をさらに強くする。実際にこの実施形態では、攻撃者は、演算が実行される数学的な集合にアクセスすることができず、さらに計算に係るエネルギーの信号についての詳細な統計値を用いることができない。ある特定の実施形態に従って、演算Oi並びに/又は写像Mi及び写像Mi1は、計算によってなされず、入力変数例えばデータDiの値から計算することなく演算の結果にアクセスすることを可能とする、相関関係の写像によってなされる。そのため、図5は、この実施形態に従った暗号アルゴリズムの実行中になされる二つの一連の被保護演算を説明する。第1の被保護演算OP1の間、プロセッサ3は、計算をすることなく、被保護メモリ7に格納された、演算に対応する相関関係の写像T1にアクセスすることにより、データD0に写像M1及び演算O1を適用する。そのため、この演算OP1の間、プロセッサ3は、写像M1と演算O1を結合することによって入力データD1の像を求める。その後、続く被保護ステップOP2の間、プロセッサは、ステップOP1から生じたデータM1D1に逆写像M11を適用し、その後に、被保護メモリ7に格納された、演算に対応する単一の相関関係の写像T2を用いて、写像M2及び演算O2を続ける。続くステップOPiは同じ原理に従って実行される。しかしながら、演算O1Onのみを適用することにより得られる暗号化データと同じ暗号化データがn個のステップOP1、OP2、OPnの終了時に得られるように、最後のステップOPnの間に、そのデータに逆写像Mn1が適用される。写像Mi及びMi1は、第1の環Eの、第1の環Eとは異なる第2の環Fへの適用であり、データDi1の代数空間Eとは異なる代数空間への演算Oiの互換であるのが有利である。かかる互換により、攻撃者となり得る者が演算OPiの入力データと出力データの間の一次関係を決定し、実行される演算Oiをそこから推定するのを妨げる結果がもたらされる。そのため、かかる相関関係の写像の使用は、特に、段階的になされる計算を攻撃者が監視する可能性がある場合に暗号アルゴリズムを保護するのに有利であり、従って、本発明に従った保護方法は、ホワイトボックスの暗号システムのセキュリティを改善することを可能とする。暗号アルゴリズムが数個の数学的演算Oiを含む場合、数学的演算Oiの全てについて可逆の写像を適用することにより保護する必要がないことに留意すべきである。"