(57)【特許請求の範囲】
【請求項１】
ランダムクロック発生器であって、
一連の規則的かつ規則的間隔のパルスで構成されるマスタクロック信号（ＭＣｌｋ）を受信するクロック信号入力と、
マスタクロック信号および整数Ｎを受信し、Ｍ個のクロックパルスごとにＮ個のパルスの列に対応する出力信号を提供し、Ｍが１よりも大きい整数であり、Ｎが１よりも大きくかつＭ以下の整数である、クロック信号低減回路（１０１）とを備え、
マスタクロック信号のＰ個のパルスごとに新しい数Ｎをクロック信号低減回路に提供し、Ｎおよび／またはＰが無作為に生成される、数発生器（１０２、１０３）も含むことを特徴とする、ランダムクロック発生器。
【請求項２】
ＰがＭに等しく、Ｎが無作為に生成される、請求項１に記載の発生器。
【請求項３】
数発生器（１０２）が、非線形シフトレジスタ（６０３）と乱数発生器（ＮＧ、６０１、６０２）とを含み、この乱数発生器が非線形シフトレジスタを周期的にリセットするのに使用される、請求項１に記載の発生器。
【請求項４】
Ｎが最小値（Ｎｍｉｎ）と最大値（ＮＭａｘ）との間である、請求項１に記載の発生器。
【請求項５】
数Ｎが、Ｎの平均値（Ｃ）と、この平均値に加算されるかもしくは場合によってはこの平均値から減算されるランダム補正値（Ｒ０−２）とを受信する加算器（５０１）または加算器／減算器の出力として得られる、請求項４に記載の発生器。
【請求項６】
ランダム補正値が非線形シフトレジスタによって提供される、請求項３および５に記載の発生器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダムクロック信号発生器に関する。この種の発生器は、外部デバイスとの同期が回避されるべきであるクロックプロセッサに使用される。
【背景技術】
【０００２】
通信および電子取引における特定の安全レベルを保証するために、暗号化された情報の交換が使用される場合がある。使用される鍵の秘匿性を保証するためには、セキュアエレメント（ＳＥ）として一般に知られている、安全な集積回路を使用するのが一般的である。ＳＥは、一般に、チップカード、ＵＳＢキー、もしくは他の安全な可搬型デバイスの形で使用されるか、または更には、コンピュータもしくは携帯電話などのより大型のデバイスに統合される。
【０００３】
これらのＳＥは、それらが収容している情報の秘匿性を保存するために、多数のセキュリティエレメントを有する。この目的のため、機密情報を抽出するのに使用されることがある攻撃が特定される場合があり、各種の攻撃を阻止する対抗策がＳＥに統合される場合がある。様々な攻撃の中でも特に、どのアルゴリズムが現在動作中であるかを決定するために、回路が消費している電流またはその電磁放射を探ることが一般的である。それに加えて、クロック信号に同期することによって、どのようにアルゴリズムが反応するかを知り、結果として得られるシグネチャーに基づいて特定の値を推論する、障害を導入することが可能になる。知られている対抗策の中でも特に、１つの選択肢は、測定される信号の分析を複雑にするために、擬似ランダムまたはランダムタイプの構成要素を使用するクロック信号発生器を使用して、クロック信号を非同期化するというものである。
【０００４】
擬似ランダム発生器によって、クロック信号を部分的にマスキングすることができる。しかしながら、擬似ランダム発生器は反復性のままであり、したがって、特定の期間後には予測可能である。
【０００５】
純粋にランダムなクロック発生器の主な欠点は予測可能性が低すぎることであり、したがって、求められる用途にとってクロックが低速すぎる場合がある。
【０００６】
現在、ランダムクロック信号を提供するのに理想的な発生器は存在しない。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明は、一連の規則的かつ規則的間隔のパルスで構成されるマスタクロック信号を受信するクロック入力信号と、マスタクロック信号および整数Ｎを受信し、Ｍ個のクロックパルスごとにＮ個のパルスの列に対応する出力信号を提供し、Ｍは１よりも大きい整数であり、Ｎは１よりも大きくかつＭ以下の整数である、クロック信号低減回路とを備える、ランダムクロック発生器を提案する。それに加えて、数発生器が、マスタクロック信号のＰ個のパルスごとに新しい数Ｎをクロック信号低減回路に提供し、Ｎおよび／またはＰは無作為に生成される。
【０００８】
したがって、回路設計者によって定義された値Ｍ、Ｎ、およびＰにしたがって、ランダムクロック発生器によって提供されるパルスの「周波数」を制御することが可能である。
【０００９】
好ましい一実施形態によれば、ＰはＭに等しくてもよく、Ｎは無作為に生成されてもよい。Ｎは最小値と最大値の間であってもよい。数Ｎは、Ｎの平均値と、この平均値に加算されるかもしくは場合によってはそこから減算されるランダム補正値とを受信する、加算器または加算器／減算器の出力として得られてもよい。数発生器は、非線形シフトレジスタと乱数発生器とを含み、この乱数発生器は非線形シフトレジスタを周期的にリセットするのに使用される。そこで、ランダム補正値は非線形シフトレジスタによって提供されてもよい。
【００１０】
以下の説明によって、本発明の実現例をより良く理解することができ、またこの説明は、添付書類にて提供される図面を参照する。
【図面の簡単な説明】
【００１１】
【図１】本発明の好ましい一実施形態を示す図である。
【図２】本発明で使用される周波数低減器（ｆｒｅｑｕｅｎｃｙ  ｒｅｄｕｃｅｒ）の一実施形態を示す図である。
【図３】本発明で使用されてもよいルックアップテーブルの一例を示す図である。
【図４】周波数低減回路から得られるパルス列を示す図である。
【図５】制御された値の範囲内における乱数の発生器の好ましい一実施形態を示す図である。
【図６】乱数発生器の一例を示す図である。
【発明を実施するための形態】
【００１２】
図１のクロック発生器回路は、本発明の好ましい一実施形態に相当する。好ましい実施形態によれば、このクロック発生器は、平均周波数を保証しながら、クロック低減モードおよびランダムクロック発生器モードで動作する。このクロック発生器回路は、好ましくは、そのクロッキングがマスキングされるべきプロセッサと同じチップに統合される。好ましい例では、マスタクロック信号ＭＣｌｋを使用し、それを変換クロック信号ＳＣｌｋへと変換することが選択された。変換クロック信号ＳＣｌｋによってクロッキングを更にマスキングするためには、マスタクロックＭＣｌｋおよび変換クロック信号ＳＣｌｋを集積回路に対して同時に使用することが可能であり、更にはそれが推奨されるため、この選択が行われた。このように、マスタクロック信号ＭＣｌｋの生成は表されないが、当業者には知られている任意のタイプの発振器回路によって得られることができる。一例として、この同じ集積回路に対してリング発振器が導入されることが適切であろう。
【００１３】
図１のクロック発生器回路は、主に、クロック低減回路１０１および数発生器１０２で構成される。クロック低減回路１０１は、マスタクロック信号ＭＣｌｋを受信し、変換クロック信号ＳＣｌｋを提供する。クロック低減回路１０１の原理は、Ｍ個のクロックサイクルにわたってＮ個のクロックパルスのみを通過させるというものであり、Ｎは１とＭの間であって、数Ｎはクロック低減回路入力１０１に提供される。数発生器１０２は、乱数Ｎを提供し、それがクロック低減回路１０１を構成する役割を果たす。好ましい例では、構成は、分周器回路１０３を使用してＭ個のクロックサイクルごとに実施され、クロック低減回路１０１の検証入力ＶａｌＮからＭ個のクロックサイクルごとに数Ｎを検証する。乱数Ｎは、選択信号Ｓｅｌを使用してランダム動作モードまたは非ランダム動作モードを選択できるようにするマルチプレクサ１０４を使用して、数発生器１０２によってクロック低減回路１０１に提供される。したがって、マルチプレクサ１０４は、別の回路によって提供されてもよい設定数Ｃまたは乱数のどちらかを提供することができる。
【００１４】
当業者には理解されるように、マルチプレクサ１０４は本発明には必須ではなく、単に本発明の実現を制御する手段を提供する役割を果たす。数発生器１０２の出力をクロック低減回路１０１の入力に直接接続することによって、マルチプレクサ１０４を除去することは十分に可能である。その結果、回路は常にランダムモードで機能するようになる。
【００１５】
分周器回路１０３は、数Ｎを変更する順序を単純にするのに使用される。実際に、ランダムな特徴は、かなり頻繁に別の数と置き換えることによる数Ｎの変更とリンクされるので、電流の観察によって変換クロック信号ＳＣｌｋを簡単に予測または特定することは不可能である。Ｍサイクルごとに数を変更するという選択は、Ｍ個からＮ個のパルスのみを保持することをその出力によって提案する、クロック低減回路１０１の使用を最適にすることに基づく。
【００１６】
代替例として、Ｐサイクル（ＰはＭと異なる）ごとにＮの値を周期的に変更することが可能であるが、これではクロック低減回路１０１の使用が最適にならない。この数の変更は無作為に実施することもできる。この場合、ランダム発生器はＰサイクル（Ｐは乱数）ごとに１パルスを提供し、第２の発生器が無作為にまたは予測可能にＮを提供する。値Ｎは、クロック低減回路１０１に無作為にロードされる。当業者であれば、図１に示されるような好ましい実施形態を使用するのがより単純であることを理解するであろう。
【００１７】
本発明の動作をより良く説明するために、本発明の主要要素の動作を詳述する必要がある。図２は、例えば、ルックアップテーブル２０１およびシフトレジスタ２０２の周りに設計される、クロック低減回路１０１の例示の実施形態を示している。ルックアップテーブルは数Ｎを受信する入力バスを備え、検証入力ＶａｌＮにより、Ｍ個の出力Ｎ０からＮＭ−１にわたって、数Ｎに対応するアドレスで記憶された状態値を提供するために、バスの値Ｎをサンプリングすることが可能になる。ルックアップテーブルのＭ個の出力Ｎ０からＮＭ−１は、シフトレジスタ２０２の並列入力に接続され、検証入力ＶａｌＮはシフトレジスタの動作モードを選択する。シフトレジスタはマスタクロック信号ＭＣｌｋと同期される。検証入力ＶａｌＮ信号がアクティブのとき、ルックアップテーブル２０１のＭ個の出力Ｎ０からＮＭ−１にわたって提供された値はシフトレジスタ２０２に転送される。検証入力ＶａｌＮ信号が非アクティブのとき、レジスタはそのコンテンツを１ラッチ分右にシフトし、レジスタ２０２の最後のラッチの出力がレジスタ２０２の最初のラッチの入力にフィードバックされる。ＡＮＤポート２０３は、シフトレジスタ２０２の最後のラッチの出力およびマスタクロック信号ＭＣｌｋを受信する。ＡＮＤポート２０３の出力は変換クロック信号ＳＣｌｋを提供する。
【００１８】
図３は、Ｍの値が１６の場合のルックアップテーブル２０１のコンテンツの一例である。４ビットのエンコードされた値Ｎは０から１５の間であるが、ここでは、値０は値１６に相当し、そこから５番目の最上位ビットが除去されている。クロック低減回路の動作を例証するため、図４は、Ｍが常に１６に等しい場合のＮの各値に対する変換クロック信号を示している。当業者であれば、パルスの除去によってクロック信号を制御することは、上述のクロック信号の周波数を変更することと同じであることを理解するであろう。
【００１９】
Ｎの値をＭサイクルごとに無作為に変更することは、図４で表されているパルスのラインの連続順を無作為に変更することと同じである。したがって、変換クロックＳＣｌｋによって部分的に同期された回路の消費電流測定値は、予測が不可能であるランダム間隔での消費の低下を記録するであろう。これらの電流低下はアルゴリズムの分析を妨害するので、試行されるスパイ動作に晒されるアルゴリズムを分析することがより困難である。それに加えて、次のパルスの存在または不在が予測不能であるという性質により、動作中にレジスタの値を変更しようとするあらゆる試みが非常に困難になる。
【００２０】
かかる回路によって、値Ｎが１からＭの間であってもよい場合、変換クロック信号ＳＣｌｋのアクティブパルスの数は、マスタクロック信号ＭＣｌｋのパルス数と比較して、最大でＭによって除算される。処理速度は明らかに減少するが、その最大値は制御可能である。
【００２１】
増加するＭがそれに比例して処理速度を低減するというリスクを考慮して、好ましいモードは、Ｍの値よりも小さい値の範囲内でＮの値を変動させることから成る。例えば、Ｎが最大でもＭ／２からＭの間でのみ変動する場合、処理速度は、最大処理速度と比較して２で除算される。それにより、Ｍの値を増加させることによって、性能を損なうことなく、クロックの無作為性のエントロピーを増加させることが可能になる。どちらかと言えば単純な実施形態は、最上位ビットを１で保持しながら、値Ｎの最下位ビットのみを無作為に変動することから成る。
【００２２】
好ましい一実施形態によれば、エントロピーおよびクロッキング速度の制御を可能にしておくために、パルスの数が制御されてもよい。この目的のため、また好ましい一例として、図５の数発生器回路１０２が提案される。数発生器１０２は、加算器５０１と、ランダム発生器５０２と、整形回路５０３とを備える。Ｍ＝１６を保持して、加算器５０１は、整形回路５０３によって提供される設定値Ｃおよび乱数を受信する４ビット加算器である。ランダム発生器５０２は、３ビットの乱数を整形回路に提供する。加算器５０１の出力は４ビット数Ｎを提供する。例えば、整形回路５０３は、乱数を設定値Ｃに加算するかまたはそこから減算することを可能にするために、３ビットのエンコードされた乱数を４ビットの符号付き整数へと変換するルックアップテーブルである。整形回路５０３の入力における乱数のサンプリングは、クロック低減回路１０１の入力における値Ｎのサンプリングと同じクロッキング周波数で実施しなければならない。分周器回路５０４。一例として、当業者であれば、Ｎは４ビットでエンコードされており、また３を設定値Ｃに加算するかまたは４を設定値Ｃから減算することが可能なので、４＜Ｃ＜Ｍ−３とする必要があることを理解するであろう。
【００２３】
かかる回路によって値Ｎのかなり正確な制御が可能になり、したがって、Ｎの平均値、ならびにＮの最小値Ｎｍｉｎおよび最大値ＮＭａｘを制御することが可能である。最小クロッキング速度を保証するためには、単にＮｍｉｎ／Ｍ比を可能な最大値に設定すればよい。このＮｍｉｎ／Ｍ比を１／２以上に保持しようとすることが好ましい。それに加えて、ＮＭａｘ−Ｎｍｉｎの差によって、無作為性のエントロピーを制御することが可能になり、差ＮＭａｘ−Ｎｍｉｎが大きいほどエントロピーが大きくなる。当業者であれば、自身の要件に合わせてＮ、Ｎｍｉｎ、ＮＭａｘ、およびＭの値を選択するであろう。
【００２４】
一例として、乱数発生器５０２が図６に示されている。ノイズ発生器ＮＧは、予測が困難なアナログ信号をトリガ回路６０１に提供する。トリガ回路６０１は、例えば、アナログ信号の値に基づいて０または１の値の論理信号を提供する、シュミットトリガである。論理信号はランダムな期間後に状態を変化させる。したがって、マスタクロック信号ＭＣｌｋの各先端エッジ時において、論理信号の値は０または１のどちらかであり、これは予測することができない。
【００２５】
シフトレジスタ６０２は、上述の論理信号を直列化入力で受信するので、レジスタ６０２は０または１で無作為に満たされる。シフトレジスタのコンテンツは、マスタクロックＭＣｌｋの各サイクルで変化する、ランダム論理数を形成する。第１の実施形態によれば、乱数発生器は上述したものに限定されてもよい。
【００２６】
しかしながら、前の回路の欠点は、論理信号が特定の期間にわたって０または１の値を連続して提供する場合があることである。その結果、一連の乱数が交換されることになる。２つの同一の乱数が出力において連続することを回避するため、例えばＱサイクルごとにレジスタ６０２のコンテンツが入れ換えられる、非線形シフトレジスタ６０３を追加することが好ましい。したがって、トリガ回路６０１が反復の多い一連のビットを提供した場合、これが非線形シフトレジスタ６０３によって変更されることになる。ランダムワードを回復するためには、レジスタＲ０、Ｒ１、およびＲ２の並列出力において必要なビット数が抽出される。ワードＲ０−２はランダム発生器５０２の出力ワードに相当する。
【００２７】
当業者であれば、都合が良い時に、特定のセキュリティレベルを要する回路で、またプロセッサの有効出力をマスキングしたいものに対して、上述のまたは提案した変形例の１つにしたがって記載した発生器を使用してもよい。一例として、マルチプロセッサ回路の場合、各プロセッサのクロッキングを可能な限りマスキングするのに、いくつかの発生器が使用されてもよい。
【図１】
0006776346.tif 000002
【図２】
0006776346.tif 000003
【図３】
0006776346.tif 000004
【図４】
0006776346.tif 000005
【図５】
0006776346.tif 000006
【図６】
0006776346.tif 000007