(57)【要約】【課題】少なくともモジュラ演算（３）を使用する計算をランダム量（ｒ）により暗号化する方法を提供する。【解決手段】第１のモジュロ（ｎ）に前記ランダム量を乗算し、該乗算の結果（ｍ）を演算のモジュロとしてとり、該演算の結果のモジュラ減少を前記第１モジュロ（ｎ）にもとづいて実行する。【選択図】図２
2004531762.tif 000002
【特許請求の範囲】
【請求項１】
少なくともひとつのモジュラ演算（３）をふくむ計算を、ランダム値（ｒ）により、スクランブルする方法において、
第１モジュロ（ｎ）に前記ランダム値を乗算し、
この乗算の結果（ｍ）を演算のモジュロとしてとり、
該演算の結果のモジュラ減少を前記第１モジュロ（ｎ）にもとづいて実行する、方法。
【請求項２】
前記演算（３）は、少なくともひとつの入力データ（Ａ）と少なくともひとつの秘密データ（ｓ）をふくむ、請求項１記載の方法。
【請求項３】
前記入力データ（Ａ）は本方法を実施する電子回路に入力するデータである、請求項２記載の方法。
【請求項４】
前記秘密データ（ｓ）は本方法を実施する電子回路にふくまれている、請求項２又は３のひとつに記載の方法。
【請求項５】
請求項１−４のひとつに記載の方法を実施するための手段を有する、集積回路により実施され計算をスクランブルする回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、侵害者の試みに対し、電子回路（例えばスマートカード）などの認証又は識別の処理に使用される秘密キー又はデータ（バイナリー語）の保護に関する。本発明は特に秘密データを考慮する計算のスクランブルに関する。「スクランブル」は素子の動作により導入される観察可能な物理特徴（消費電力、熱、電磁放射等）の修飾を指す。
【背景技術】
【０００２】
本発明の応用の例は、個人又は秘密データを使用するディジタル処理回路の単純な電力解析（ＳＰＡ）又は差動電力解析（ＤＰＡ）による攻撃に対する対策に関する。電力解析によるこのような攻撃は侵害者が利用可能な攻撃で、ディジタルキー又はそのようなものを発見することを試みる。この攻撃は、回路の電力消費とチップにより処理され秘密値をふくむディジタルデータの使用との間の直接又は統計的依存性を評価する。実際、処理回路によるアルゴリズム処理において、回路の消費電力と処理データの間には依存性が存在する。侵入者は回路に入力されるデータつまり可視可能でアルゴリズムで使用可能なデータを使用して、アルゴリズムの実行による電力消費を調べて、回路に存在する秘密データを決定する。
【０００３】
差動電力解析による攻撃をより困難にするために、一般に、可視データを処理されるデータとは独立にすることが試みられている。「可視データ」はアルゴリズム処理回路に入力され、この回路からとり出されるバイナリー語を指す。回路の電力消費に影響する実際の計算は修飾された又はスクランブルされたデータに対して行われる。
【０００４】
一般に、入力データを計算のためのスクランブルデータに変換するためにランダム値が使用される。
【０００５】
図１は従来の方法のフローチャートで、入力されるデータＡを処理してモジュロ演算によるアルゴリズムを計算してチップを認証するものである。図１でデータＡの入力はブロック１（ＩＮ）であらわされる。データＡは次にランダム値ｒを使用してデータＡ’に変換される（ブロック２）。この変換は例えばオペランドＡとｒに算術動作を適用して行われる。データＡ’は認証関数の計算に提供される（ブロック３）。この計算はＢ’＝ｆ（Ａ’）  ｍｏｄｕｌｏ  ｎを実行することから成り、ここで関数ｆはモジュロ演算動作をあらわす。この関数のモジュロｎのサイズ（ビット数）は処理回路に提供されるビット数によりあらかじめ定められる。実際、演算が実行されるビット数は、この演算で使用されるモジュロと、オペランドと結果の最大サイズに従ってサイズが決定される。
【０００６】
秘密データｓをふくむアルゴリズムの処理への本発明の特別な応用では、このデータはチップにふくまれ（例えば永久保存）、計算動作（ブロック３）のアルゴリズムに提供される。侵入者は電力消費を解析してこの秘密データを検出しようと試みる。データＡをＡ’にスクランブルしないと、入力データＡとモジュロ関数のモジュロｎを侵入者が知っているので、侵入は容易である。
【０００７】
モジュロ演算関数の現在の例は次の公式によるモジュロ指数である。
Ｂ’＝Ａ’ｓ  ｍｏｄｕｌｏ  ｎ
【０００８】
計算アルゴリズムの実行により結果Ｂ’が得られると、この結果は逆変換されてデータＢが復元され（ブロック４）、回路出力に提供される（ブロック５）。ランダム量ｒはステップ２と４の間で保存され（ブロック６，ＭＥＭ）、アルゴリズムの結果に適用される逆変換で再度使用される。
【０００９】
アルゴリズムオペランドを実行する従来のスクランブル方法の欠点は、アルゴリズムの単なる実行に関連して追加の計算パワーを必要とすることにある。特に、ＢのＢ’への変換は関数の実際の計算と同じ数の資源（メモリー、計算時間等）を必要とする。
【００１０】
従来の方法の別の欠点は、ランダム値ｒの保存が回路のパワー消費の検査による攻撃に対する対抗プロセスを弱くすることにある。
【００１１】
さらに、このランダム値を保存しなければならないということは余分なスペースをとる特別な回路を必要とする。
【００１２】
EP-A-1006492はモジュロ演算を実行する計算方法を開示し、ランダム値は方法の最後で使用される。従ってランダム値を保存しなければならない。
【００１３】
WO-A-9852319もランダム値を使用する計算方法を開示する。この値は演算のモジュロで使用され、従ってやはり保存しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は少なくともひとつのモジュロ演算をふくむ計算をスクランブルする新規な解決を提供することを目的とし、従来に比べて少ない計算資源を使用し、全計算期間にわたってスクランブルにふくまれるランダム値の保存を避けるものである。
【課題を解決するための手段】
【００１５】
上記目的及び他の目的を達成するために、本発明は第１モジュロに前記ランダム値を乗算し、この乗算の結果を演算のモジュロとしてとり、該演算の結果のモジュラ減少を前記第１モジュロにもとづいて実行する、少なくともひとつのモジュラ演算をふくむ計算を、ランダム値により、スクランブルする方法を提供する。
【００１６】
本発明の実施例によると、前記演算は、少なくともひとつの入力データと少なくともひとつの秘密データをふくむ。
【００１７】
本発明の実施例によると、前記秘密データは本方法を実施する電子回路にふくまれている。
【００１８】
本発明の実施例によると、前記入力データは本方法を実施する電子回路に入力するデータである。
【００１９】
本発明は、さらに、上記方法を実施するための処理回路を提供する。
【発明を実施するための最良の形態】
【００２０】
異なる図で同じ素子は同じ参照符号で示される。明瞭化のために本発明の理解に必要なスクランブルと計算方法のステップのみが図示され記述される。特に、データに影響する処理は詳述せず、本発明の目的ではない。本発明は実行される処理の下流及び上流にかかわらず適用される。
【００２１】
図２は本発明による方法の実施例を図１と比較して単純化されたフローチャートで示す。
【００２２】
本発明の特徴は外部から入力されるオペランドＡ（ブロック１，ＩＮ）をもはやスクランブルせず、代わりに、実行されるモジュラ演算動作のモジュロをスクランブルする。
【００２３】
従って、本発明によると、モジュロ−ｎのモジュラ関数に対して、ランダム整数ｒが各計算毎にとりだされ、このランダム数はモジュロｎに乗算される（ブロック２’）。これは、数ｍを提供し、本発明によると、この値が認証計算（ブロック３）のモジュロとして使用される。従って、この計算はオペランドＡと変更されたモジュロｍを直接ふくむ。ふくまれる動作は、従来の場合に関して、変更されない。しかし、認証アルゴリズムのモジュロに影響することにより、対応する値、及び従って回路の電力消費は影響される。従って、計算をスクランブルする目的は達成される。
【００２４】
結果Ｂ’＝ｆ（Ａ）  ｍｏｄｕｌｏ  ｍは、従来の場合（図１のブロック４）のように逆変換されなければならない。
【００２５】
しかし、本発明によると、この逆変換（図２のブロック４’）は特に簡単である。実際、モジュラ動作で使われるモジュロｍはｎの倍数（ｍ＝ｒ・ｎ）であるので（Ｂ’  ｍｏｄ  ｎ）を減少(reduce)又は約分して結果Ｂを回路出力（ブロック５，ＯＵＴ）に提供することで十分である。
【００２６】
本発明の利点は、モジュラ減少とモジュロの乗算動作はわずかな計算しか発生しないことにある。
【００２７】
本発明の他の利点は逆変換のためにランダム値ｒを保存する必要がないことである。従って、ランダム値ｒは数ｍが計算されると（ブロック２’）、消去することができる。計算にふくまれる秘密データｓの侵害はより困難になる。
【００２８】
本発明によるスクランブル又はマスクは簡単に実行することができる。計算は単に最大モジュロの計算を考慮したビット数をとることで、処理回路の数を決定することができる。
【００２９】
例えば、１０２４ビットを越えるモジュロ演算を実行する従来の処理回路に対して、処理される数に６４ビットを加えることができる。６４ビットはふくまれるランダム数ｒの大きさである。
【００３０】
モジュラ指数に対する本発明の特別の応用では、本発明は、従来のオペランド処理に関して計算を大きく簡単化できる利点がある。実際、モジュラ指数は、指数のビットと同じ多数のモジュラスクエアと、指数の状態が１のビットと同じ多数の積の演算から成る周知のスクエア乗算技術により実行される。
【００３１】
もちろん、本発明は当業者に容易な種々の変更、修飾、改良が可能である。特に、数ｎとｒに対して任意の大きさを選択することができる。モジュロの大きさとランダム値の大きさの間での妥協が選択される。実際には、モジュロの大きさは外部の条件（技術標準等）によりしばしば決定される。従って回路により処理されるビットの数はわずかに増加する（ランダム値に対して選択される大きさに従って）。
【００３２】
さらに、本発明は一般に任意のモジュラ関数（例えば加算、減算、乗算、モジュラ反転等）に応用することができ、計算される関数の数及び入出力データの数にかかわらず、その実施は上述の機能的記述にもとづいて当業者の能力の範囲内である。例えば、いわゆるＥＬＧＡＨＡＬと本発明が適用されモジュラ演算をふくむアルゴリズムの例に対し“Handbook of Applied Cryptography” by A.J. Menezes, P.C. van Oorschot, and S.A. Vanstone, published in 1997, CRC Press LLC (pages 297, 454 to 459 and 484)を参照することができる。
【００３３】
最後に、本発明による計算の実施とスクランブル方法のための処理回路の形成は、上述の機能的記述にもとづいて当業者の能力の範囲内である。本発明の実施のためには、マイクロコントローラで実施されるソフトウェアであれ、配線された論理状態機械によるハードウェアによる実施であれ、通常の手段のみを必要とする。ビットの形成に関して記述した数値の例は、計算手段が受入れ可能ならば、他の規準に移すことができる。
【図面の簡単な説明】
【００３４】
【図１】従来の技術による、スクランブルされた外部データをふくむ計算方法の実施のフローチャートである。
【図２】本発明によるスクランブル方法の実施例のフローチャートである。
【国際公開パンフレット】
2004531762.tif 000003
2004531762.tif 000004
2004531762.tif 000005
2004531762.tif 000006
2004531762.tif 000007
2004531762.tif 000008
2004531762.tif 000009
2004531762.tif 000010
2004531762.tif 000011
2004531762.tif 000012
2004531762.tif 000013
【国際調査報告】
2004531762.tif 000014
2004531762.tif 000015
2004531762.tif 000016
2004531762.tif 000017