(57)【要約】  第１の組み合わせ論理回路を有した暗号処理のための電子回路であって、この組み合わせ論理回路は、入力データに第１セットの論理演算を行って出力データを生成するように構成され、当該出力データは、入力データに対して関数関係を有する。この電子回路はさらに、同じ入力データに第２セットの論理演算を行って出力データを生成するよう構成された少なくとも第２の組み合わせ論理回路をさらに有し、当該出力データは、入力データに対して同一の関数関係を有する。第１セットの論理演算は、第２セットの論理演算とは異なり、電子回路は、入力データに論理演算を行い出力データを生成するように、少なくとも第１の組み合わせ論理回路及び第２の組み合わせ論理回路を有するセットのうちの１つの組み合わせ論理回路をダイナミックに選択するように構成されている。
2007520951.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ論理回路のセットを有した暗号処理のための電子回路であって、前記組み合わせ論理回路のセットは、入力データに第１セットの論理演算を行って出力データを生成するように構成された第１の組み合わせ論理回路を有し、当該出力データは、前記入力データに対して関数関係を有し、前記組み合わせ論理回路のセットは、当該同じ入力データに第２セットの論理演算を行って出力データを生成するよう構成された少なくとも第２の組み合わせ論理回路をさらに有し、当該出力データは、前記入力データに対して同一の関数関係を有し、
前記第１セットの論理演算は、前記第２セットの論理演算とは異なり、
当該電子回路は、前記入力データに論理演算を行い出力データを生成するように前記組み合わせ論理回路のセットのうちの１つの組み合わせ論理回路をダイナミックに選択するように構成されている、
電子回路。
【請求項２】
請求項１に記載の電子回路であって、少なくとも第１セットの組み合わせ論理回路及び第２セットの組み合わせ論理回路を有し、前記第２セットの組み合わせ論理回路の入力データとして前記第１セットの組み合わせ論理回路により生成された出力データを用いるように構成されている電子回路。
【請求項３】
請求項１に記載の電子回路であって、
・前記セットの組み合わせ論理回路のうち１つの組み合わせ論理回路を選択するための信号を発生するように構成された選択回路と、
・前記信号に応じて、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路に前記入力データを入力するように構成されたスプリッタ回路と、
・前記信号に応じて、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路から前記出力データを出力するように構成されたマージャ回路と、
をさらに有する電子回路。
【請求項４】
請求項３に記載の電子回路であって、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路を選択するために前記選択回路が前記信号を発生した時点を判定するように構成されたタイミング回路をさらに有する電子回路。
【請求項５】
暗号処理のための電子回路であって、
・入力データに論理演算を施し出力データを生成するように構成された組み合わせ論理回路と、
・前記組み合わせ論理回路により生成された出力データを記憶する記憶部と、
を有し、
符号化手段及び対応する復号手段の第１セットをさらに有し、これら手段は、それぞれ、第１出力データを前記記憶部への当該第１出力データの記憶の前に符号化し、前記第１出力データを前記記憶部からの当該第１出力データの取り込みの後に復号するように構成され、
前記第１セットの符号化手段及び対応の復号手段の稼働をダイナミックに制御するように構成されている電子回路。
【請求項６】
請求項５に記載の電子回路であって、符号化手段及び対応の復号手段の第２セットをさらに有し、これら手段は、それぞれ、第２出力データを前記記憶部への当該第２出力データの記憶の前に符号化し、前記第２出力データを前記記憶部からの当該第２出力データの取り込みの後に復号するように構成され、
前記第１出力データの符号化は、前記第２出力データの符号化とは異なり、
当該電子回路はさらに、少なくとも前記第１セットの符号化手段及び対応の復号手段と前記第２セットの符号化手段及び対応の復号手段とを有するセットのうち、少なくとも１つのセットの符号化手段及び対応の復号手段をダイナミックに選択し、当該出力データの符号化及び復号処理をなすように構成されている、
電子回路。
【請求項７】
請求項６に記載の電子回路であって、少なくとも前記第１セットの符号化手段及び対応の復号手段と前記第２セットの符号化手段及び対応の復号手段とを有するセットのうち少なくとも１つのセットの符号化手段及び対応の復号手段を当該電子回路が選択する時点を判定するように構成されたタイミング回路をさらに有する電子回路。
【請求項８】
請求項５に記載の電子回路であって、前記組み合わせ論理回路は、第１の組み合わせ論理回路と少なくとも第２の組み合わせ論理回路とを有し、
前記第１の組み合わせ論理回路は、入力データに第１セットの論理演算を施し出力データを生成するように構成され、当該出力データは、前記入力データに対する関数関係を有し、
前記第２の組み合わせ論理回路は、当該同じ入力データに第２セットの論理演算を施し出力データを生成するように構成され、当該出力データは、前記入力データに対して同一の関数関係を有し、
前記第１セットの論理演算は、前記第２セットの論理演算とは異なり、
当該電子回路は、前記入力データに論理演算を施し出力データを生成するために、少なくとも前記第１の組み合わせ論理回路と前記第２の組み合わせ論理回路とを有するセットのうち、１つの組み合わせ論理回路をダイナミックに選択するように構成されている、
電子回路。
【請求項９】
暗号データを処理する方法であって、
・入力データを処理して出力データを生成するために第１セットの論理演算を用い、その出力データが前記入力データに対して関数関係を有するようにすることを含み、
・当該同じ入力データを処理して出力データを処理するために第２セットの論理演算を用い、当該出力データが前記入力データに対して同一の関数関係を有し、前記第１セットの論理演算が前記第２セットの論理演算とは異なるようにすることと、
・前記入力データを処理するために、少なくとも前記第１セットの論理演算と前記第２セットの論理演算とを含むセットのうち１セットの論理演算をダイナミックに選択することと、
をさらに含む方法。
【請求項１０】
暗号データを処理する方法であって、
・入力データを処理し出力データを生成するための論理演算の集合を用いることと、
・記憶部に前記出力データを記憶することと、
を含み、
・前記出力データを当該出力データが前記記憶部に記憶される前に符号化することと、
・その符号化された出力データを前記記憶部から取り込んだ後に復号することと、
・前記出力データの当該符号化及び対応の復号処理をダイナミックに制御することと、
を含む方法。
【請求項１１】
請求項１又は５に記載の電子回路を有する暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理のための電子回路に関し、特に、組み合わせ論理回路のセットを有し、この組み合わせ論理回路のセットが入力データに対して論理演算の第１のセットを行い出力データを生成するように構成された第１の組み合わせ論理回路を有し、当該出力データが入力データとの関数関係を有するものに関する。
【０００２】
本発明はまた、暗号処理のための電子回路であって、組み合わせ論理回路及び記憶部を有し、当該組み合わせ論理回路が入力データに対して論理演算を行い出力データを生成するように構成され、当該記憶部が当該組み合わせ論理回路により生成された出力データを記憶するものに関する。
【０００３】
本発明はさらに、暗号データを処理する方法に関し、特に、
・入力データを処理し出力データを生成する組み合わせ論理回路の第１のセットを用い、当該出力データが当該入力データと関数関係を有するようにすること、を含むものに関する。
【０００４】
また、本発明は、暗号データを処理する方法であって、
・組み合わせ論理回路のセットを用いて入力データを処理し出力データを生成すること、
・当該出力データを記憶部に記憶すること、
を含むものに関する。
【背景技術】
【０００５】
暗号装置は、記憶時なのか、処理時なのか又は伝送時なのかにかかわらず、
非認証の情報アクセス又は当該情報の改竄に対し、そして非認証ユーザへのサービス拒否に対して情報の保護なすために用いられる。暗号装置の例には、幾つか具体例を挙げると、スマートカードや保安識別トークン、モバイルフォンセキュリティシステム、電子財布、テレビジョンスクランブル解除装置がある。電力差分解析（ＤＰＡ；Differential Power Analysis）は、暗号システムから情報を得るための確立した技術である。電力差分解析の原理は、暗号装置の電力消費を測定し、この情報を当該暗号装置において動作する論理ゲート及びソフトウェアの振る舞いに相関づけるものである。電力消費特性の大きな集合についての適切な統計学的技術を用いることによって、ユーザのプライベートキーのような秘密のパラメータを得ることができる。単純電力解析（ＳＰＡ；Simple Power Analysis）は、統計学的解析を必要としない攻撃のより単純な形態である。秘密パラメータを得るために、暗号装置の電力消費の他にもその電磁放射を測定することができる。このような秘密パラメータの使用例には、幾つか具体例を挙げると、任意のデータを暗号化又は暗号解読することや、コマンド又はリクエストを認証することがある。暗号装置が消費するエネルギーの総量は、多くの個別回路素子からの寄与の合成である。計算への入力における単一のビットが変わった場合、当該計算パスが通過する多くの論理ゲートの入力及び出力に影響を及ぼす。一般に、組み合わせ論理回路は、多数の論理演算を行う。これら論理演算には、ＡＮＤ，ＯＲ及びＮＯＴ演算が含まれ、これらは基本的な論理演算である。他の論理演算は、主なものとしてＸＯＲや、二進加算、乗算、二進減算があり、これらは全て基本的論理演算によって行うことができる。
【０００６】
“Energy-Aware Design Techniques for Differential Power Analysis Protection”，Proceedings Design Automation Conference, 2003, page 36-41, 2-6 June, 2003, Benini et al.には、必要とされる全ての機能を実現する第１の実行ユニットと、第１の実行ユニットの機能の一部だけを実行する第２の実行ユニットとを有する暗号装置が記述されている。入力データは、第１の実行ユニットか又は第２の実行ユニットにより処理される。第２の実行ユニットの機能は少ないので、その電力消費は、所定の入力値に対して第１の実行ユニットのものよりも低い。セレクタは、時間とともに暗号装置の電力消費を変えるため、入力値の観測に基づいて、所定のサイクルにおいてどの実行ユニットを稼働すべきかを判定する。
【０００７】
Irwin, J. et al., in “Instruction Stream Mutation for Non-Deterministic Processors”, Proceedings of the IEEE International Conference on Application-Specific Systems, Architectures, and Processors, 2002, page 286-295は、当該プロセッサのパイプラインにおいて当該実行ユニット直前に配されたいわゆる変異ユニット（mutation unit）を有する非決定論的なプロセッサを記述している。したがってこのユニットは、各指令につき、それを当該実行ユニットへ発する前に、専用テーブルに記憶された物理的レジスタの値の有効状態に関する情報を用いて検査しかつ動作することができる。この情報を用いて、当該変異ユニットは、どのレジスタが有益な値を含んでいるか、どのレジスタが上書きされうる値を含んでいるかを検証することができる。変異ユニットにより行われる１つの動作は、同一性指令のコンセプトを用いて、指令を変えてその意味を同じものとしつつそのレジスタ使用法及びマッピングを異ならせることである。このコンセプトにおいては、指令が元の指令に付加され、指令のシーケンスが当該元の指令と同じ意味を持つものの異なる電力消費を呈するようにされる。所定の指令の同一性が利用可能である限り、プロセッサは、実行ユニットにその同一性シーケンス又は元の指令を転送することをランダムに決定することができる。
【０００８】
暗号処理をなす従来の電子回路の不利なところは、入力データの値及び実行される指令の双方に独立して時間とともに回路の電力消費を変化させることができない点である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、入力データの値とは独立して同一の入力データを処理するときに時間とともに電力消費のレベルを変えることができる暗号処理のための電子回路を提供することである。さらに本発明の目的は、付加的な指令を指令セットに加える必要なく同一の入力データを処理するときに時間とともに電力消費のレベルを変えることができる暗号処理のための電子回路を提供することである。
【課題を解決するための手段】
【００１０】
この目的は、本発明による電子回路により達成され、この電子回路は、前記組み合わせ論理回路のセットは、入力データに第１セットの論理演算を行って出力データを生成するように構成された第１の組み合わせ論理回路を有し、当該出力データは、前記入力データに対して関数関係を有し、前記組み合わせ論理回路のセットは、当該同じ入力データに第２セットの論理演算を行って出力データを生成するよう構成された少なくとも第２の組み合わせ論理回路をさらに有し、当該出力データは、前記入力データに対して同一の関数関係を有し、前記第１セットの論理演算は、前記第２セットの論理演算とは異なり、当該電子回路は、前記入力データに論理演算を行い出力データを生成するように前記組み合わせ論理回路のセットのうちの１つの組み合わせ論理回路をダイナミックに選択するように構成されている、ことを特徴としている。なお、論理演算なる用語は、最も低い物理レベルでは算術演算も論理ゲートすなわちトランジスタにより行われるので、算術演算も含むものである。入力データは、異なるセットの論理演算を用いることによって同じ機能的な振る舞いを行う少なくとも２つの組み合わせ論理回路のいずれかによって処理される。データの処理の間に当該組み合わせ論理回路の一方と他方とを切り換えることにより、測定された電力消費特性から情報を得るのは非常に難しくなるが、これは同一の入力データを処理するときでも、異なる組み合わせ論理回路につき当該特性が異なることによるものである。このようにして、電力解析攻撃に対する電子回路の保護のレベルは劇的に向上する。論理回路自体は異なるセットの論理演算を行うので、指令セットアーキテクチャの変更を必要としない。
【００１１】
本発明の実施例は、少なくとも第１セットの組み合わせ論理回路及び第２セットの組み合わせ論理回路を有し、前記第２セットの組み合わせ論理回路の入力データとして前記第１セットの組み合わせ論理回路により生成された出力データを用いるように構成されていることを特徴としている。この実施例の利点は、所定の組み合わせ論理回路については与えられた入力データに対し異なる電力消費特性の数がかなり増大する点であり、これは当該論理回路を幾つかの階層に分割することによるものであり、各層の電力消費特性を他の層とは独立して変化させることができる。
【００１２】
本発明の実施例は、当該電子回路が、・前記セットの組み合わせ論理回路のうち１つの組み合わせ論理回路を選択するための信号を発生するように構成された選択回路と、・前記信号に応じて、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路に前記入力データを入力するように構成されたスプリッタ回路と、・前記信号に応じて、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路から前記出力データを出力するように構成されたマージャ回路と、をさらに有することを特徴としている。当該選択回路、当該スプリッタ回路及び当該マージャ回路を用いることによって、論理回路の１つを通過する入力データのフローをダイナミックに選ぶことが比較的に容易となる。
【００１３】
本発明の実施例は、前記セットの組み合わせ論理回路のうちの１つの組み合わせ論理回路を選択するために前記選択回路が前記信号を発生した時点を判定するように構成されたタイミング回路をさらに有することを特徴としている。この実施例の利点は、局部的にも全体的にもクロック動作するシステムにおいて容易に用いることができる点である。
【００１４】
本発明によれば、請求項５の要旨によっても上記目的を達成することができる。当該記憶部における記憶の前にデータを符号化することにより、こうしたデータを符号化しないことに比べたときに、異なる電力消費特性をもたらす。符号化された出力値が記憶される場合、この値は、当該記憶部から得られるときに復号される。すなわち電子回路の機能的振る舞いが変更されない。当該記憶部における記憶の前に出力データを符号化することと符号化しないこととで切り換えることにより、測定される電力消費特性から情報を得ることが極めて難しくなる。何故なら、こうした特性は、当該記憶部にデータを記憶するときに、同一のデータを記憶する場合であっても異なるからである。
【００１５】
本発明の実施例は、当該電子回路が、符号化手段及び対応の復号手段の第２セットをさらに有し、これら手段は、それぞれ、第２出力データを前記記憶部への当該第２出力データの記憶の前に符号化し、前記第２出力データを前記記憶部からの当該第２出力データの取り込みの後に復号するように構成され、前記第１出力データの符号化は、前記第２出力データの符号化とは異なり、当該電子回路はさらに、少なくとも前記第１セットの符号化手段及び対応の復号手段と前記第２セットの符号化手段及び対応の復号手段とを有するセットのうち、少なくとも１つのセットの符号化手段及び対応の復号手段をダイナミックに選択し、当該出力データの符号化及び復号処理をなすように構成されていることを特徴としている。符号化及び復号手段のより多くのセットを追加することによって、同一の出力データを記憶するための異なる電力消費特性の数が増え、電力消費特性に関する情報を用いることによって電子回路からの情報の取得に対する保護のレベルが向上する。
【００１６】
本発明の実施例は、当該電子回路が、少なくとも前記第１セットの符号化手段及び対応の復号手段と前記第２セットの符号化手段及び対応の復号手段とを有するセットのうち少なくとも１つのセットの符号化手段及び対応の復号手段を当該電子回路が選択する時点を判定するように構成されたタイミング回路をさらに有することを特徴としている。この実施例の利点は、局部的にも全体的にもクロック動作されたシステムに容易に用いることができる点である。
【００１７】
本発明の実施例は、前記組み合わせ論理回路は、第１の組み合わせ論理回路と少なくとも第２の組み合わせ論理回路とを有し、前記第１の組み合わせ論理回路は、入力データに第１セットの論理演算を施し出力データを生成するように構成され、当該出力データは、前記入力データに対する関数関係を有し、前記第２の組み合わせ論理回路は、当該同じ入力データに第２セットの論理演算を施し出力データを生成するように構成され、当該出力データは、前記入力データに対して同一の関数関係を有し、前記第１セットの論理演算は、前記第２セットの論理演算とは異なり、当該電子回路は、前記入力データに論理演算を施し出力データを生成するために、少なくとも前記第１の組み合わせ論理回路と前記第２の組み合わせ論理回路とを有するセットのうち、１つの組み合わせ論理回路をダイナミックに選択するように構成されている、ことを特徴としている。この実施例の利点は、少なくとも２つの組み合わせ論理回路のいずれか１つにより、また記憶部への記憶の前にランダムに出力データを符号化することにより、どちらも当該電子回路の機能的振る舞いを変えることなく、入力データを処理することによってなされる電力解析攻撃に対する保護を組み合わせる、という点である。この結果、電力解析攻撃に対する保護の水準が劇的に向上する。
【００１８】
本発明の他の態様によれば、データ処理方法は、
・入力データを処理して出力データを生成するために第１セットの論理演算を用い、その出力データが前記入力データに対して関数関係を有するようにすることを含み、
・当該同じ入力データを処理して出力データを処理するために第２セットの論理演算を用い、当該出力データが前記入力データに対して同一の関数関係を有し、前記第１セットの論理演算が前記第２セットの論理演算とは異なるようにすることと、
・前記入力データを処理するために、少なくとも前記第１セットの論理演算と前記第２セットの論理演算とを含むセットのうち１セットの論理演算をダイナミックに選択することと、
をさらに含むことを特徴としている。
【００１９】
データの処理の間に論理演算の当該２つのセットの一方と他方とで切り換えることによって、測定される電力消費特性から情報を得ることが非常に難しくなる。これはこうした特性が異なるセットにつき同一の入力データを処理するときでも異なる一方で、当該電子回路の機能的振る舞いは変わらないからである。
【００２０】
本発明によれば、請求項１０の要旨によっても上記目的を達成することもできる。記憶部に記憶する前に出力データを符号化することと符号化しないこととで切り換えることにより、測定される電力消費特性から情報を得ることが非常に難しくなる。これは、こうした特性は、記憶部にデータを記憶する場合、同一データを記憶するときでも異なるものとなる一方で、電子回路の機能的振る舞いは変わらないからである。
【００２１】
本発明による電子回路を有する暗号装置は、請求項１１に規定されている。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明による電子回路を示しており、これは、組み合わせ論理回路１０１，１０３及び１０５のセットと、スプリッタ回路１０７と、マージャ回路１０９と選択回路１１１とを有している。この電子回路はまた、より多くの組み合わせ論理回路及び／又は組み合わせ論理回路により生成されたデータを記憶する記憶素子を有することができる。スプリッタ回路１０７は、ＡＮＤゲート１１３，１１５及び１１７を有する。マージャ回路１０９は、ＡＮＤゲート１１９，１２１及び１２３及びＯＲゲート１２５を有する。選択回路１１１は、組み合わせ論理回路の数と等しい３つのレジスタを有するシフトレジスタ１２７を有する。組み合わせ論理回路１０１，１０３及び１０５は、入力データ１２９に対して論理演算を行い、出力データ１３１を生成する。入力データ１２９は、例えば当該電子回路の他の組み合わせ論理回路により当該電子回路自体によって生成されたデータとすることも、当該電子回路の外部から受信したデータとすることもできる。出力データ１３１は、当該電子回路自体例えば当該電子回路の他の論理回路への出力とすることも当該電子回路の外部への出力とすることもできる。組み合わせ論理回路１０１〜１０５の各々により実現される論理演算は、同じ機能的振る舞いとなる。すなわち、入力データ１２９が組み合わせ論理回路１０１又は１０３又は１０５により処理されるかどうかにかかわらず、出力データ１３１は、入力データ１２９に対して同じ関数関係を有する。動作時には、シフトレジスタ１２７は、そのレジスタの１つにおいて１のビット値を例えば図１に示されるような第１レジスタに保持し、ゼロのビット値を他の２つのレジスタに保持する。クロック信号１３３を受信すると、シフトレジスタ１２７のレジスタに記憶されたビット値は１ポジションだけシフトし、ここで最後のレジスタに記憶されたビット値が、図１の矢印に示されるように、最初のレジスタにシフトされる。クロック信号１３３は、例えば図１には示されていないクロック発生器によって発生される。シフトレジスタ１２７の第１レジスタが１に等しいビット値を保持し、他の２つのレジスタが図３に示されるようにゼロに等しいビット値を保持している場合、ＡＮＤゲート１１７の第１ポートもＡＮＤゲート１２３の第１ポートも１に等しいビット値を受信するとともに、ＡＮＤゲート１１３，１１５，１１９及び１２１の第１ポートは、ゼロに等しいビット値を受信する。入力値１２９、例えば３２ビット値は、ＡＮＤゲート１１３〜１１７の第２の入力ポートに入れられる。この結果、組み合わせ論理回路１０５は入力データ１２９に等しいデータを受信する一方、組み合わせ論理回路１０１及び１０３はゼロに等しいデータを受信する。すなわち、全てのビット値がゼロに等しくなる。組み合わせ論理回路１０５は、入力データ１２９を処理し、出力データを生成するとともに、組み合わせ論理回路１０１〜１０３は、それらの入力データがゼロに等しいので論理演算を行わない。ＡＮＤゲート１２３は、組み合わせ論理回路１０５により生成されたデータをＯＲゲート１２５に出力するのに対し、ＡＮＤゲート１１９及び１２１は、ゼロに等しいビット値をＯＲゲート１２５に出力する。ＯＲゲート１２５は、組み合わせ論理回路１０５により生成されたデータを出力データ１３１として出力する。クロック信号１３３を用い１ポジション分シフトレジスタ１２７において１に等しいビット値をシフトすることによって、組み合わせ論理回路１０３は、入力データ１２９を処理し出力データ１３１を生成するように選択され、別の時期に１に等しいビット値をシフトすることによって組み合わせ論理回路１０１が選択される。また別の時期において１に等しいビット値をシフトすることにより、組み合わせ論理回路１０５が再び選ばれる。この結果、時間とともに３つの組み合わせ論理回路１０１〜１０５の異なる１つが入力データ１２９を処理し出力データ１３１を生成する。
【００２３】
組み合わせ論理回路１０１〜１０５は各々、出力データ１３１と入力データ１２９との間の関数関係が同一となるような異なるセットの論理演算を行う。出力データ１３１と入力データ１２９との関数関係は、入力データ１２９についての数学的関数ｆによって特徴づけることができる。但し、同じ関数関係が、入力データ１２９に対しもう１つの数学的関数ｇによっても達成可能である。より正式には、可能な入力データ１２９の集合Ｐに対して次式が成立する。
2007520951.tif 000003
例えば、関数
2007520951.tif 000004
及び
2007520951.tif 000005
は、入力パラメータａ及びｂと出力パラメータとの同じ関数関係を導く。関数ｆは、入力パラメータａ及びｂに対して論理演算ＡＮＤを行い、関数ｇは、入力パラメータａ及びｂに対して３つの論理演算ＮＯＴと論理演算ＯＲ、すなわち異なるセットの論理演算を行う。他の例としては、ｆ（ａ，ｂ，ｃ）＝（ａ＋ｃ）＊ｃ及びｇ（ａ，ｂ，ｃ）＝（ａ＊ｃ）＋（ｂ＊ｃ）がある。関数ｆは、１つの論理演算ＡＤＤと１つの論理演算ＭＵＬＴＩＰＬＹを入力パラメータａ及びｂに対して行うが、関数ｇは、入力パラメータａ及びｂに対して１つの論理演算ＡＤＤ及び２つの論理演算ＭＵＬＴＩＰＬＹ、すなわち異なるセットの論理演算を行う。当該異なるセットの論理演算により同じ機能的振る舞いが行われ、これにより、それぞれ関数ｆ及びｇの異なる物理的実現がなされることとなる。図２は、関数
2007520951.tif 000006
及び
2007520951.tif 000007
の物理的実現例を、それぞれ組み合わせ論理回路２０１及び２０３として示している。関数ｆは、ＡＮＤゲートを用いて行われるのに対し、関数ｇは、３つのＮＯＴゲート及びＯＲゲートを用いて行われる。当業者には理解されることとなるように、同一の入力パラメータａ及びｂを処理するときに、時間に対する電力消費のレベルは、組み合わせ論理回路２０３と比較して組み合わせ論理回路２０１については異なる。なお、幾つかの論理演算は、事実上論理演算自体のセット（集合）であり、対応するセットのゲートにより実現される。例えば、ＡＮＤ演算は、ＮＡＮＤゲートにより実現されるＮＡＮＤ演算とＮＯＴゲートにより実現されるＮＯＴ演算の組み合わせに相当する。他の例には、ＡＤＤ演算があり、これは、対応するゲートにより実現される２つのＸＯＲ，２つのＡＮＤ及び１つのＯＲの演算からなるのが普通である。但し、ＡＤＤ演算の異なる実現形態も可能である。すなわち、論理演算と対応する論理ゲートとの異なるセットを用いたものである。したがって、入力パラメータａ及びｂに対してＡＤＤ演算を行う関数ｆ（ａ，ｂ）＝ａ＋ｂの場合には、２つの組み合わせ論理回路は、当該ＡＤＤ演算を行うための論理演算の異なるセットを用いることにより関数ｆを実現することができ、これにより同じ関数ｆの異なる物理的実現を導き、もって同一入力データを処理するときに時間に対して異なるレベルの電力消費をもたらすこととなる。入力データの処理の間に組み合わせ論理回路１０１〜１０５を切り換えることによって、測定される電力消費特性から情報を得ることが難しくなる。これは、こうした特性は、同一入力データを処理するときでも、当該異なる組み合わせ論理回路について異なるからである。このようにして、電力解析攻撃に対する電子回路の保護のレベルが向上する。例えば、組み合わせ論理回路１０１〜１０５のセットを、秘密を維持すべき情報の取り扱いを行う暗号システムの機能的振る舞いの該当部分を実現するために用いることができる。
【００２４】
代替実施例において、異なる組み合わせ論理回路により用いられる論理演算のセットは、同一のものとすることができるが、異なるトポロジーすなわち相互接続構造を有した形となる。同一セットの論理演算を用いる一方で異なるトポロジーを有する組み合わせ論理回路の場合には、同一入力値の処理は異なる電力消費特性も導くこととなる。他の代替実施例では、異なる組み合わせ論理回路が論理演算の異なるセットも異なるトポロジーも両方用いるようにしてもよい。
【００２５】
他の代替実施例において、組み合わせ論理回路のセットは、異なる数の組み合わせ論理回路を有する。多数の組み合わせ論理回路が適用される場合、与えられた入力データに対し電力消費特性に豊富なバリエーションが得られ、電力解析攻撃に対する保護のレベルがさらに向上する。このように、保護レベルは当該条件に適合させられるようにすることができる。他の代替実施例においては、論理回路１０１〜１０５のうちの１つを選択するために異なる選択回路が用いられ、例えば１に等しい１ビットとゼロに等しい残りのビットとを有する各クロック信号１３３において多数ビット値を発生するランダムビット発生器とし、第１のビットが第１の組み合わせ論理回路を選択するために用いられ、第２ビットが第２の組み合わせ論理回路を選択するために用いられる、…という形とすることができる。
【００２６】
図３は、本発明による他の電子回路を示しており、組み合わせ論理回路の３つのセット３０１，３０３及び３０５と、スプリッタ回路３０７，３０９及び３１１と、マージャ回路３１３，３１５及び３１７とを有する。この電子回路はまた、より多くの組み合わせ論理回路及び／又は組み合わせ論理回路により生成されたデータを記憶する記憶素子を有するようにしてもよい。第１のセット３０１は、組み合わせ論理回路３１９及び３２１を有し、第２セット３０３は、組み合わせ論理回路３２３及び３２５を有し、第３セット３０５は、組み合わせ論理回路３２７及び３２９を有する。組み合わせ論理回路３０１〜３０５の３つのセットは、入力データ３３１に対して論理演算を行い、出力データ３３３を生成する。スプリッタ回路の機能は、当該スプリッタ回路に接続される２つの組み合わせ論理回路のうちの１つにデータを入力することであり、マージャ回路の機能は、当該マージャ回路に接続される組み合わせ論理回路のうちの１つからデータを出力することである。スプリッタ回路の可能な実現形態は、ＡＮＤゲートのマスクであって、スプリッタ回路１０７により実現されるように、専ら、選択される組み合わせ論理回路に対応するＡＮＤゲートを通じて入力データを伝搬するものを有することであり、当該マージャ回路の可能な実現形態は、マージャ回路１０９により実現されるように、専ら、選択される組み合わせ論理回路に対応するＡＮＤゲートを通じて結果のデータを伝搬するＡＮＤゲートのマスクを有することである。組み合わせ論理回路３１９及び３２１は、同じ機能的振る舞いを呈する。すなわち、それらの出力データは、それらの入力データに対して同じ関数関係を有するが、それらは、入力データ３３１を処理し出力データを生成するような相互に異なるセットの論理演算を用いるものであり、かかる出力データは、組み合わせ論理回路のセット３０３の入力データとして用いられる。組み合わせ論理回路３２３及び３２５は、同じ機能的振る舞いを実現するが、それらの入力データを処理し、組み合わせ論理回路のセット３０５の入力データとして用いられる出力データを生成するための相互に異なるセットの論理演算を用いる。組み合わせ論理回路３２７及び３２９は、同じ機能的振る舞いを実現するが、それらの入力データを処理し、出力データ３３３を生成するための相互に異なるセットの論理演算を用いる。選択回路は、図３には示されていないが、スプリッタ回路３０７〜３１１を介して、それらの対応する入力データを処理するよう組み合わせ論理回路３０１〜３０５の各セットの２つの組み合わせ論理回路のうちの１つを選択する。選択回路の可能な実現形態は、例えば「０００」，「００１」，「０１０」，「０１１」，「１００」などの各クロック信号におけるその値を増大させる３ビットカウンタである。第１のビットは第１のセット３０１の組み合わせ論理回路の１つを選択するのに用いられ、第２のビットは、第２のセットの組み合わせ論理回路の１つを選択するのに用いられ、第３のビットは、第３のセットの組み合わせ論理回路の１つを選択するのに用いられる。各々が２つの組み合わせ論理回路を有する３つのセットがあるので、全部で８つの異なる組み合わせの組み合わせ論理回路が入力データ３１１を処理し出力データ３３３を生成するために形成可能であり、これにより、同一入力データ３３１を処理するときでも８つの異なる電力消費特性を得ることとなる。したがって、入力データ３３１を処理して出力データ３３３とするために用いられる組み合わせ論理回路の単一のセットを、入力データ３３１を処理して出力データ３３３とする組み合わせ論理回路の複数のセットに分割することにより、測定される電力消費特性から情報を得ることが極めて困難となる。
【００２７】
代替実施例においては、各セットの組み合わせ論理回路は、異なる数の組み合わせ論理回路を有する形としてもよく、この形に加え又は代えて、所定の組み合わせ論理回路を異なる数のセットの組み合わせ論理回路に分割することもできる。１セットの組み合わせ論理回路の数を増やすことによって、或いは所定の組み合わせ論理回路に対する組み合わせ論理回路のセット数を増やすことによって、所定の入力データに対して電力消費特性のより豊富なバリエーションを得ることができる。
【００２８】
図４は、本発明による代替可能な他の電子回路の実施例を示しており、クロック信号４２３の制御に基づいてデータ例えば３２ビット値を記憶する記憶素子４０１と、エンコーダ４０３及び対応のデコーダ４０９の第１セットと、エンコーダ４０７及び対応のデコーダ４０９の第２セットと、ＮＯＴゲート４１１と、ＡＮＤゲート４１３及び４１７と、ＮＯＴゲートを表す白丸により示されるような第１入力ポートに反転入力を備えたＡＮＤゲート４１５及び４１９とを有する。この電子回路はまた、クロック信号４２３の制御に基づいてビット値を記憶するレジスタ４２１を有する。この電子回路はさらに、記憶素子４０１に記憶されるようにデータ４２５を生成する図示せぬ組み合わせ論理回路を有する。また、この電子回路は、より多くの組み合わせ論理回路及び／又は組み合わせ論理回路により生成されたデータを記憶する記憶素子を有するようにしてもよい。データ４２５は、記憶素子４０１に記憶され、例えば、電子回路の外部においてさらなる処理又は出力をするために用いられる。記憶素子４０１は、ラッチとすることができる。すなわち、クロック信号４２３が第１の値を有するときに入力からのデータ要素を出力に送り、クロック信号４２３が第２の値を有するときに出力データを保持する既知の回路とすることができる。或いは、フリップフロップのような異なる回路が適用可能であり、これにより、クロック信号４２３のエッジにおいてデータが保持される。エンコーダ４０３及び対応のデコーダ４０５とエンコーダ４０７及び対応のデコーダ４０９は、それぞれ符号化関数ｅと復号関数ｄとを行い、全ての可能なデータＰが記憶素子４０１に記憶されるように
2007520951.tif 000008
とされる。但し、エンコーダ４０３により実現される符号化関数は、エンコーダ４０７により実現されるものとは異なるので、デコーダ４０５によって実現される復号関数は、デコーダ４０９によって実現されるものとは異なる。簡単な符号化関数の例には、ビットのローテーション又はビット値の反転がある。動作において、クロック信号４２３に応じて、ゼロに等しいビット値又は１に等しいビット値は交番し、或いは代替実施例ではランダムにレジスタ４２１に記憶される。図４に示されるように、１に等しいビット値がレジスタ４２１に記憶される場合、ＮＯＴゲート４１１を介して、１に等しい値がＡＮＤゲート４１５の第１入力ポートに供給され、ゼロに等しい値がＡＮＤゲート４１９の第１入力ポートに供給される。１に等しい値は、ＡＮＤゲート４１７の第１入力ポートに供給され、ゼロに等しい値はＮＯＴゲート４１１を介してＡＮＤゲート４１３の第１入力ポートに供給される。ＡＮＤゲート４１３及びＮＡＮＤゲート４１５の第２入力ポートには、データ４２５に等しいデータ値が供給される。この結果、エンコーダ４０７は、入力データとしてデータ４２５を受信するとともに、エンコーダ４０３は、ゼロに等しいデータ値を受信する。すなわち、ゼロに等しい全てのビット値は、入力とされる。エンコーダ４０７は、当該受信データを符号化し、エンコーダ４０３は、その入力データがゼロに等しいので何ら動作しない。マルチプレクサ４２７は、レジスタ４２１に記憶されたビット値の制御に基づいて、符号化されたデータを受信するようにエンコーダ４０７の出力を選択し、これら符号化されたデータは、記憶素子４０１に記憶される。次のクロック信号４２３により、ゼロに等しいビット値がレジスタ４２１に記憶される。エンコーダ４０３は、データ４２５を受信し、これらデータを符号化しその符号化されたデータが記憶素子４０１に記憶される。前のクロックサイクルで当該記憶素子に記憶された符号化データは、記憶素子から取り込まれデコーダ４０９によって受信される。これは、ＡＮＤゲート４１９がその第１の入力ポートにおいて１に等しい値を有しＡＮＤゲート４１７がその第１の入力ポートにおいてゼロに等しい値を有しているからである。デコーダ４０９は、符号化されたデータを復号し、それら復号されたデータは、レジスタ４２１に記憶されたビット値の制御に基づいてマルチプレクサ４２９を介して出力データ４３１として出力されるが、デコーダ４０５は何ら動作しない。これら出力データ４３１は、前のクロックサイクルの間において記憶素子４０１に記憶されたデータ４２５に等しい。何故なら、これらデータは、エンコーダ４０７によって符号化され対応のデコーダ４０９により復号されたものであるからである。したがって、エンコーダ４０３により符号化されその後に記憶素子４０１に記憶されるデータ４２５は、常にデコーダ４０５により復号される。この結果、記憶素子４０１に記憶されたデータの符号化及び復号処理は、電子回路の機能的振る舞いを変えることがない。但し、それぞれエンコーダ４０３及び４０７により実現される異なる２つの符号化関数を用いることによって、記憶素子４０１における同一データ４２５の記憶は、データ４２５のこうした符号化された値が異なるので、異なる電力消費特性を導くことになる。データの記憶における、それぞれエンコーダ４０３及び４０７により実現される２つの符号化体系の切り換えによって、測定される電力消費特性から情報を得ることが非常に難しくなる。何故なら、こうした特性は、記憶素子にデータに記憶する場合、同一データを記憶するときでも異なるからである。
【００２９】
代替実施例においては、３つ又はこれより多くのセットのエンコーダ及び対応のデコーダが記憶素子と組み合わせられ、各エンコーダが独自の符号化関数を有し、この結果、記憶素子４０１に記憶されるべき同一データの電力消費特性の豊富なバリエーションをもたらすことになる。他の代替実施例において、データ４２５は、符号化を行うことなく、或いは記憶の後に当該記憶素子からの取得後のデータの復号処理が続く前にデータの符号化を行った後に、記憶素子４０１に記憶される。他の代替実施例において、記憶素子４０１は、データ４２５よりもワイドなすなわちビット数の多い符号化データ値を記憶するように構成され、これにより適切な符号化及び復号関数を選択するのにより自由度の高いものとすることができる。例えば、当該エンコーダは、３２ビットデータ値を４８ビットデータ値にマッピングし、これが記憶素子４０１に記憶され、当該デコーダは、符号化された４８ビット値を３２ビットの復号された値にマッピングする。
【００３０】
図５は、本発明によるもう１つの代替可能な電子回路を示しており、クロック信号５０５の制御の下、データ例えば３２ビット値を記憶するための２つの記憶素子５０１及び５０３を有する。この電子回路はさらに、エンコーダ５０７〜５１３と対応のデコーダ５１５〜５２１のそれぞれの４つのセットの他に、エンコーダ５２３〜５２９と対応のデコーダ５３１〜５３７のそれぞれのもう４つのセットを有する。電子回路はまた、論理回路５３９〜５４１と、スプリッタ回路５４３〜５５１と、マージャ回路５５３〜５６１と、選択回路５６３〜５６７とを有する。スプリッタ回路は、それらの入力ポートからのデータをそれらの出力ポートの１つにデータを送るとともに、マージャ回路は、それらの入力ポートの１つにおいてデータを受信しそれらの出力ポートにそのデータを出力する。スプリッタ回路５４７、マージャ５５７及び選択回路５６５の可能な実現形態は、図１に示される。スプリッタ回路５４３〜５４５及び５４９〜５５１並びにマージャ回路５５３〜５５５及び５５９〜５６１の可能な実現形態は、対応の選択回路５６３及び５６７の制御に基づいてマルチプレクサを用いることによる。電子回路はまた、より多くの論理回路及び／又は論理回路により生成されたデータを記憶するための記憶素子を有するものとしてもよい。論理回路５３９〜５４１は、入力データ５６９に対して論理演算を行い出力データ５７１を生成する。論理回路５３９及び５４１は、同じ機能的振る舞いを実現する。すなわち、それら出力データはそれらの入力データに対して同じ関数関係を有するが、入力データ５６９を処理し出力データ５７１を生成するために論理演算の異なるセットを用いる。各エンコーダ及び対応のデコーダは、それぞれ、符号化関数ｅ及び復号関数ｄを実現し、全ての可能なデータＰがそれぞれ記憶素子５０１及び５０３に記憶されるものとされ
2007520951.tif 000009
が成立する。但し、エンコーダ５０７〜５１３により実現される符号化関数は、相互に異なり、エンコーダ５２３〜５２９により実現される符号化関数も相互に異なる。動作において、選択回路５６３は、スプリッタ回路５４３及びマージャ回路５５３を介してエンコーダ５０７〜５１３のうちの１つを選択し、記憶素子５０１への記憶の前に入力データ５６９を符号化する。それぞれスプリッタ回路５４５及びマージャ回路５５５を介して選択回路５６３により選択されるデコーダ５１５〜５２１のうちの対応のデコーダは、その後にこれらデータを復号する。選択回路５６５は、組み合わせ論理回路５３９〜５４１のうちの１つを選択して、記憶素子５０１から得たデータに対して論理演算を行い、出力データは、選択回路５６７により選択されるエンコーダ５２３〜５２９のうちの１つによって符号化される。その符号化されたデータは、記憶素子５０３に記憶され、その後に選択回路５６７により選択されたデコーダ５３１〜５３７のうちの対応のデコーダにより復号され出力データ５７１として出力される。選択回路５６３〜５６７は、互いに独立して動作するので、入力データ５６９の符号化／復号、入力データ５６９の処理及び出力データ５７１の符号化／復号の３２個の異なる組み合わせが可能であり、相互に異なる多くの電力消費特性を導くことになる。したがって、複数の組み合わせ論理回路のうちの１つにより入力データを処理することと記憶素子への記憶の前にデータ符号化することとの組み合わせによって、電力解析攻撃に対して保護レベルが格段に向上する。
【００３１】
なお、上記実施例は、本発明を限定するというよりも例証するものであり、当業者ならば、添付の請求項の範囲から逸脱することなく多くの代替実施例を構成することができる。請求項において、括弧内に付される参照符号は、当該請求項を限定するものと解釈してはならない。「有する」なる用語は、請求項に挙げられたもの以外の要素又はステップの存在を排除するものではない。要素の単数表現は、当該要素が複数存在することを排除するものではない。本発明は、幾つかの別個の要素を有するハードウェアによって、また適切にプログラムされたコンピュータによって実現することができる。幾つかの手段を列挙する装置の請求項では、これら手段の幾つかを同一のアイテムのハードウェアによって具現化することができる。或る方策又は手段が相互に異なる従属請求項に挙げられているという事実は、これら方策又は手段の組み合わせを効果的に用いることができないということを表すものではない。
【図面の簡単な説明】
【００３２】
【図１】本発明による電子回路を示す図。
【図２】同じ機能的振る舞いを行う２つの組み合わせ論理回路を示す図。
【図３】本発明による他の電子回路を示す図。
【図４】本発明による代替の他の電子回路を示す図。
【図５】本発明によるもう１つの代替の他の電子回路を示す図。
【図１】
2007520951.tif 000010
【図２】
2007520951.tif 000011
【図３】
2007520951.tif 000012
【図４】
2007520951.tif 000013
【図５】
2007520951.tif 000014
【国際調査報告】
2007520951.tif 000015
2007520951.tif 000016
2007520951.tif 000017
2007520951.tif 000018