(57)【要約】【課題】暗号演算処理を含む情報処理装置において、暗号の不正な解読を防止することができる技術を提供する。【解決手段】１つの暗号処理アルゴリズムに対する複数の等価な論理回路と、乱数発生器と、前記乱数発生器で生成された乱数に基づいて前記複数の等価な論理回路を切り替えるスイッチとを再構成可能回路（ＲＥＣＯＮＦ）１０７内に構成する。ＣＰＵ１０６は、ＲＯＭ１１２に格納された構成情報に基づいて再構成可能回路１０７に論理回路を構成し、暗号演算処理を行う。データの暗号演算処理を行うときには、実際に処理を行う回路がランダムに切り替わるため、構成情報が読み出されても、実際に処理を行っている回路の特定を行うことが困難であり、既知の消費電力解析、タイミング解析によっての不正な解読を防止できる。【選択図】図１
2010021624.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッシングエレメントの接続関係を切り替えることにより構成される、第１論理回路、第２論理回路及びスイッチ回路を有する再構成可能回路と、
乱数発生器とを有し、
前記スイッチ回路は、前記乱数発生器で生成された乱数に基づいて前記第１論理回路と前記第２論理回路のどちらに演算を行わせるかを切り替えることを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記乱数発生器は、前記再構成可能回路内に設けられ、前記複数のプロセッシングエレメントの接続関係を切り替えることにより構成されることを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置において、
前記乱数発生器は、ＣＰＵを介さずに前記再構成可能回路に前記乱数を伝送することを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置において、
前記第１論理回路と前記第２論理回路とは、等価な論理回路であることを特徴とする情報処理装置。
【請求項５】
請求項１記載の情報処理装置において、
前記第１論理回路及び第２論理回路は、データを入力するための第１入力と、前記乱数発生器で発生される第２入力とを有し、前記第２入力の値によらず前記第１入力の値に対して前記演算を行うことを特徴とする情報処理装置。
【請求項６】
請求項１記載の情報処理装置において、
前記演算は、暗号処理であることを特徴とする情報処理装置。
【請求項７】
請求項１記載の情報処理装置において、
前記再構成可能回路内に構成された前記第１及び第２論理回路を実現する構成情報を格納したＲＯＭと、
前記再構成可能回路の構成情報を前記ＲＯＭから読み出し、前記再構成可能回路に前記第１及び第２論理回路を構成させるＣＰＵとをさらに有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に携帯電話端末機器のように、データの処理だけでなく、外部との通信やデータの保護のために暗号処理を行う必要のある情報処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討した技術として、情報処理装置においては、たとえば以下の技術が考えられる。
【０００３】
暗号演算を高速に実行する必要性や、メモリの読み出し等の簡単な攻撃からの保護を目的として、たとえば暗号演算処理専用ハードウェアがシステムＬＳＩ内部に搭載されてきた。携帯電話端末機器などに搭載されるシステムＬＳＩでは、電子決済などのセキュリティ保護が必要な処理を行うようになってきており、今後一層堅牢なシステムが求められている。
【０００４】
また、暗号演算処理に関しては，非特許文献１で示されるような電力解析や、非特許文献２で示されるようなタイミング解析などの攻撃手法が知られている。これらの非特許文献１及び２には、従来の半導体装置が、暗号演算処理回路が半導体装置の内部に固定して配置されていることが記載されている。そして、特許文献１において、その物理的配置が特定されると、暗号演算の消費電力や処理時間が一意に決まり、鍵の特定に対する脆弱性を有している旨が記載されている。
【０００５】
ＩＣカードなどの暗号演算処理を行う半導体装置においては、この脆弱性に対する１つの解決策として、たとえば特許文献１に開示された技術がある。特許文献１には、再構成可能回路と乱数発生器を設け、同一の処理を行う複数の論理構成情報を用意し、乱数発生器で生成された乱数にしたがって論理構成情報を選択して再構成し、暗号演算処理を実行する技術が開示されている。同一の暗号演算処理を行う場合であっても消費電力波形や処理時間が異なるため、被処理データや鍵の特定が困難になる。この技術は、専用ハードウェアではなく、再構成可能回路を用い、処理する論理回路の構成をランダムに選択することから、実際に処理を行う回路を一意に特定することを困難にしている。
【特許文献１】特開２００７−４９５２４号公報
【非特許文献１】ポール・コッカー（Ｐａｕｌ  Ｋｏｃｈｅｒ），ジョシュア・ジャッフェ（Ｊｏｓｈｕａ  Ｊａｆｆｅ），ベンジャミン・ジュン（Ｂｅｎｊａｍｉｎ  Ｊｕｎ），「ディファレンシャル・パワー・アナリシス（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）」，クリプト９９（Ｃｒｙｐｔｏ'９９），１９９９年，ｐ．３８８−３９７
【非特許文献２】ポール・コッカー（Ｐａｕｌ  Ｋｏｃｈｅｒ），「タイミング・アタックス・オン・インプリメンテイションズ・オブ・ディフィ・ヘルマン・アール・エス・エー・ディー・エス・エス・アンド・アザー・システムズ（Ｔｉｍｉｎｇ  Ａｔｔａｃｋｓ  ｏｎ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎｓ  ｏｆ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ，ＲＳＡ，ＤＳＳ，ａｎｄ  Ｏｔｈｅｒ  Ｓｙｓｔｅｍｓ）」，クリプト９６（Ｃｒｙｐｔｏ'９６），１９９６年，ｐ．１０４−１１３
【非特許文献３】ワイ・ツノオ（Ｙ．Ｔｓｕｎｏｏ），イー・ツジハラ（Ｅ．Ｔｓｕｊｉｈａｒａ），ケイ・ミネマツ（Ｋ．Ｍｉｎｅｍａｔｓｕ），エッチ・ミヤウチ（Ｈ．Ｍｉｙａｕｃｈｉ），「クリプトアナリシス・オブ・ブロック・サイファーズ・インプリメンテド・オン・コンピュータズ・ウィズ・キャッシュ（Ｃｒｙｐｔａｎａｌｙｓｉｓ  ｏｆ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒｓ  Ｉｍｐｌｅｍｅｎｔｅｄ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ  ｗｉｔｈ  Ｃａｃｈｅ）」，アイ・エス・アイ・ティー・エー２００２（ＩＳＩＴＡ２００２，２００２年１０月，ｐ．７−１１
【非特許文献４】伊東，辻井，「ア・ファースト・アルゴリズム・フォー・マルティプリケイティブ・インバース・イン・ジー・エフ・ユージング・ノーマル・ベース（Ａ  Ｆａｓｔ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｍｕｌｔｉｐｌｉｃａｔｉｖｅ  Ｉｎｖｅｒｓｅ  ｉｎ  ＧＦ（２＾ｍ）  ｕｓｉｎｇ  Ｎｏｒｍａｌ  Ｂａｓｅｓ）」，インフォメイション・アンド・コンピューテイション（Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔａｔｉｏｎ），１９８８年，第７８巻，第３号，ｐ１７１−１７７
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、前記のような情報処理装置の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００７】
たとえば、前記特許文献１のようにＩＣカードなどで提案されている、複数の論理構成情報を乱数発生器から発生させた乱数によって選択して、再構成可能回路に論理回路を構成し、暗号処理を実行する前記方法を、一般のシステムＬＳＩに適用する場合、次の課題が存在する。
【０００８】
システムＬＳＩには、外部メモリに置かれたプログラムを実行可能であるものや、あるいは内部に複数のＣＰＵを有するものもある。このような複雑なシステムにおいては、たとえば設計者の意図に反して、攻撃者によって、内部メモリに格納された論理構成情報を読み出し、回路構成を解析することが可能な場合がある。
【０００９】
また、ＲＯＭに用意した複数の論理構成情報のうち、どれが選択されたかを特定できる場合がある。たとえば、ＣＰＵが一旦アクセスしたメモリ領域がキャッシュにコピーされる場合、それ以外のメモリ領域とでメモリアクセス時間に差異があることを利用した攻撃方法が非特許文献３において指摘されている。
【００１０】
この手法によれば、複数の構成情報をメモリに格納し、ランダムに選択して再構成可能回路に構成した場合でも、どの構成情報が選択されたかがソフトウェアによって観測され、実際に再構成可能回路に構成される論理回路の配置が明らかになってしまう恐れがある。
【００１１】
その場合、実際にどの論理回路がどのような配置で構成されて、データ処理が実行されたかが特定されてしまう。特定の回路で処理を行ったことが攻撃者に知られた場合には、既知の消費電力解析やタイミング解析によって被処理データの解読が可能になる可能性がある。
【００１２】
たとえば、ＡＥＳ暗号方式において、共通鍵からラウンドキーを生成するとき、共通鍵をバイトごとに分けていくつかのステップで処理する。特に、Ｓ−ＢＯＸとよばれるステップでは、鍵データのガロア体における逆元を求めた後、逆元にアファイン変換を行う。このときに、逆元演算の消費電力波形と鍵データとの間に相関があることが知られている。
【００１３】
したがって、このようなシステムＬＳＩにおいては、構成情報が読み出されてしまった場合にも、実際に処理が実行された回路の特定が困難であるような方法が必要である。
【００１４】
そこで、本発明の１つの目的は、暗号演算処理を含む情報処理装置において、暗号の不正な解読を防止することができる技術を提供することにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される実施例のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１７】
すなわち、複数のプロセッシングエレメントの接続関係を切り替えることにより構成される、第１論理回路、第２論理回路及びスイッチ回路を有する再構成可能回路と、乱数発生器とを有し、スイッチ回路は、乱数発生器で生成された乱数に基づいて第１論理回路と第２論理回路のどちらに演算を行わせるかを切り替えることを特徴とする。
【発明の効果】
【００１８】
代表的な実施例によれば、消費電力解析およびタイミング解析などによる不正な解読を防止することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００２１】
図１は、本発明の一実施の形態による情報処理装置において、携帯電話端末システムの構成例を示すブロック図である。
【００２２】
図１に示すように、本実施の形態による携帯電話端末システムは、無線通信のための信号処理を実行するベースバンドＬＳＩ（Ｂａｓｅ  Ｂａｎｄ  ＬＳＩ）１０２と、ＲＦアンプ（ＲＦ）１０３と、アンテナ１０４と、データ処理を行うアプリケーションＬＳＩ  １０１と、データが保存される外部メモリ（Ｍｅｍｏｒｙ）１０５と、これらを接続するシステムバス１１４などから構成されている。
【００２３】
アプリケーションＬＳＩ１０１は、ＣＰＵ１０６と、ＲＡＭ１１１と、ＲＯＭ１１２と、ＬＳＩ外部と接続するためのインターフェース（Ｉ／Ｆ）１１３と、再構成可能回路（ＲＥＣＯＮＦ）１０７と、再構成可能回路１０７の制御を行うコントローラ（ＣＴＲ）１０８と、再構成可能回路１０７とＣＰＵ１０６の両方からアクセス可能なレジスタ（ＲＥＧ）１０９と、割込みコントローラ（ＩＮＴ）１１０などから成る。
【００２４】
携帯電話端末システムが通信を行う際には、アプリケーションＬＳＩ１０１から出力されたデータをベースバンドＬＳＩ１０２でデジタル信号からアナログ信号に変換し、ＲＦアンプ１０３で増幅した後、アンテナ１０４からデータを発信する。
【００２５】
たとえば、電子決済データを携帯電話端末からサーバに送信する際には、事前に交換された共通鍵を用いて、共通鍵暗号方式であるＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）によりデータを暗号化してから送信を行う。
【００２６】
本実施の形態の携帯電話端末システムにおいて、電子決済データをＡＥＳ暗号化するために、アプリケーションＬＳＩ１０１内のＣＰＵ１０６は再構成可能回路１０７を用いる。
【００２７】
図２は、再構成可能回路１０７の構成例を示すブロック図である。
【００２８】
図２に示すように、再構成可能回路１０７は、たとえば、２次元状に縦ｍ行・横ｎ列に配列されたプロセッシングエレメント（ＰＥ）３０１〜３０９と、四方の隣接するＰＥどうし、ＰＥとレジスタ１０９を接続する配線から成る。なお、ｍ，ｎは自然数であり、図２では、複数のＰＥを一部省略してＰＥ３０１〜３０９のみを示している。
【００２９】
図３は、プロセッシングエレメント（ＰＥ）３０１〜３０９の各構成例を示すブロック図である。
【００３０】
図３に示すように、プロセッシングエレメント（ＰＥ）３０１〜３０９のそれぞれは、隣り合う上下左右のＰＥと接続される３２ビット幅の配線の入出力Ｎ，Ｓ，Ｗ，Ｅと、ＡＬＵ４０３と、フリップフロップ４０４と、データパスを切り替えるマルチプレクサ（ＭＵＸ）４０１，４０２，４０５と、デマルチプレクサ（ＤＭＵＸ）４０６から成る。マルチプレクサ４０１，４０２の入力、デマルチプレクサ４０６の出力Ｎ，Ｅ，Ｗ，ＳはそれぞれＰＥの入出力Ｎ，Ｅ，Ｗ，Ｓに接続されている。マルチプレクサ４０１，４０２，４０５とデマルチプレクサ４０６の制御信号を切り替えることにより、ＰＥ内のデータフローおよび隣接するＰＥとの接続関係を制御することができる。ＡＬＵ４０３の機能と、データパスを切り替えるマルチプレクサ４０１，４０２，４０５とデマルチプレクサ４０６は、図１および図２に示したコントローラ１０８によって制御されている。これにより各ＰＥ間、ＰＥとレジスタ１０９間のデータパス、ＰＥ内の機能を制御することができる。
【００３１】
構成情報とは、各ＰＥ間、ＰＥとレジスタ１０９間のデータパス、ＰＥ内の機能を決めるパラメータである。ＣＰＵ１０６は、この構成情報に基づいて、コントローラ１０８の制御レジスタを設定することにより、再構成可能回路１０７の回路を再構成することができる。
【００３２】
次に、ＣＰＵ１０６が再構成可能回路１０７を制御して、暗号演算処理を実行するフローを説明する。図４は、ＣＰＵ１０６による暗号演算処理フローを示すフローチャートである。
【００３３】
図４に示されるように、ステップＳ５０１でＣＰＵ１０６が暗号演算処理の実行を開始すると、ＲＯＭ１１２から１つの構成情報を読み出す（ステップＳ５０２）。そして、読み出した構成情報に基づいて、再構成可能回路１０７の制御を行うコントローラ１０８に設定を行い、回路を再構成する（ステップＳ５０３）。さらにＣＰＵ１０６はＲＡＭ１１１に記憶されているデータを再構成可能回路１０７のレジスタ１０９にコピーし（ステップＳ５０４）、再構成可能回路１０７に処理開始を指示する（ステップＳ５０５）。たとえば、コントローラ１０８に演算処理イネーブルビットを用意し、ＣＰＵ１０６からこのビットに“１”を書き込むことで、処理を実行するようにできる。
【００３４】
再構成可能回路１０７は、ＣＰＵ１０６からの処理開始指示により、レジスタ１０９からデータを読み込み（ステップＳ５１０）、既に暗号演算処理を行うように再構成された回路で、レジスタ１０９から読み込んだデータを暗号演算処理し（ステップＳ５１１）、暗号演算処理を行ったデータをレジスタ１０９に書き戻し（ステップＳ５１２）、ＣＰＵ１０６に割り込み要求を送信する（ステップＳ５１３）。
【００３５】
ＣＰＵ１０６は、割り込み要求を受信する（ステップＳ５０６）と、レジスタ１０９から処理の完了したデータをＲＡＭ１１１にコピーし（ステップＳ５０７）、一連の処理のフローを終了する（ステップＳ５０８）。
【００３６】
以下、実際に暗号演算処理を行う論理回路の構成と処理の一例を説明する。図５は、再構成可能回路１０７で再構成された回路構成例を示すブロック図である。図５に示す再構成可能回路１０７ａは、再構成可能回路１０７に、乱数発生器２０１と、スイッチとしてのマルチプレクサ（ＭＵＸ）２０２およびデマルチプレクサ（ＤＭＵＸ）２０３と、スイッチによって選択される等価な複数の論理回路２０４〜２０７を構成した例を示す。
【００３７】
暗号演算処理は複雑なものもあり、再構成可能回路の回路規模によってはアルゴリズム全体を１度に実行できない場合も少なくない。この場合には、アルゴリズムを分割し、部分ごとに処理を実行し、処理が完了するたびに、再構成可能回路をＣＰＵから前記の通りに再構成することで、全体の処理を実行することができる。１つの構成情報は、たとえば図５に示されるように、乱数発生器（ＲＮＤ）２０１と、４つの等価な論理回路（ＬＯＧ１〜４）２０４〜２０７と、乱数発生器２０１から発生された乱数により論理回路２０４〜２０７を選択するマルチプレクサ（ＭＵＸ）２０２とデマルチプレクサ（ＤＭＵＸ）２０３からなるスイッチとを再構成可能回路１０７ａに構成するためのパラメータである。
【００３８】
ただし、データの入力に対してデータを出力する論理回路ＡとＢが等価な回路であるとは、回路Ａの出力と回路Ｂの出力が想定される範囲の各入力に対して演算結果が等しいことである。すなわち、等価とは、ある値に対する演算結果が同じであることをいう。たとえば、等価な２つの回路は演算結果が等しければよく、演算結果が確定するタイミングは異なっていても構わない。等価な論理回路を複数有することにより、同一の演算に対しても異なる消費電力波形とすることができる。
【００３９】
なお、１つの構成情報で構成される等価な回路の個数は２つ以上の複数であればよく、図５のように４つ（ＬＯＧ１〜４）でなくても構わない。
【００４０】
このように本願発明は、プロセッシングエレメント（ＰＥ）の接続関係を切り替えることにより構成された、複数の論理回路（ＬＯＧ１〜ＬＯＧ４）及び複数の論理回路を切り替えるためのスイッチ回路としてのデマルチプレクサ（ＤＭＵＸ）及びマルチプレクサ（ＭＵＸ）とを再構成可能回路（ＲＥＣＯＮＦ）内に有し、乱数発生器（ＲＮＤ）からの乱数ＲＮＤにより、どの論理回路に演算を行わせるかをスイッチ回路を用いて切り替えることを特徴とする。
【００４１】
この特徴により、演算を行わせる際に用いる論理回路を乱数を用いてランダムに選択することが可能になるため、同一のデータを処理する際にも、消費電力波形等は同一にならず、また予測もできない。そのため、消費電力解析及びタイミング解析等による不正な解読を防止することが可能となる。この詳細については、図１３を用いて後述する。
【００４２】
ここで、本実施例の乱数発生器（ＲＮＤ）は、プロセッシングエレメント（ＰＥ）を用いて構成することができる。また、乱数発生器は、ＣＰＵを介さずに直接再構成可能回路（ＲＥＣＯＮＦ）に乱数を送付することができる。これらの特徴により本実施例は、再構成可能回路（ＲＥＣＯＮＦ）の外部に乱数発生器を配置し外部から乱数を伝送する場合と比較して、乱数を伝送する経路自体を不正に解析されることを防ぐことが可能となる。
【００４３】
次に図５および図６により、ＣＰＵ１０６から構成情報が設定された後の再構成可能回路１０７ａの処理フローを説明する。図６は、再構成された再構成可能回路１０７ａの動作例を示すタイミングチャートである。
【００４４】
再構成可能回路１０７ａの処理開始がＣＰＵ１０６のイネーブルビット（ＥＮＢ）書き込みで指示されると、再構成可能回路１０７ａ内に構成された乱数発生器２０１が乱数（ＲＮＤ）を生成し始める。図６で、ＲＮＤはたとえば４クロックサイクルごとに１つずつＨ、Ｉ、Ｊ、Ｋと乱数を出力している。この乱数がマルチプレクサ２０２、デマルチプレクサ２０３の制御信号に入力されて、複数の等価な論理回路（ＬＯＧ１〜４）２０４〜２０７が切り替わる。図６では、順に論理回路ＬＯＧ１、ＬＯＧ２、ＬＯＧ３、ＬＯＧ４が選択されている。
【００４５】
たとえば、図５の乱数発生器２０１から出力された乱数に基づいてマルチプレクサ２０２、デマルチプレクサ２０３を切り替えることにより、等価な論理回路２０４〜２０７のうちの一つの回路が選択される。
【００４６】
さらに、複数の等価な論理回路２０４〜２０７から１つが選択されたタイミングの次のクロックの立ち上がり時に、データの処理がこの選択された論理回路内で実行される。
【００４７】
たとえば、３つのデータが逐次的に実行される場合、各データごとにこのような論理回路の切り替えが行われる。３つのデータが順にＬＯＧ１、ＬＯＧ２、ＬＯＧ３の論理回路で処理され、すべてのデータの処理が完了すると、コントローラ１０８は割込み信号ＩＮＴを発信し、一連の処理を終了する。
【００４８】
データの処理が終了すると、図１のコントローラ１０８から割込みコントローラ１１０に割込み信号を発生させ、再構成可能回路の暗号演算処理を終了する。
【００４９】
次に図７を用いて、乱数発生器２０１の構成例を説明する。図７は再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示すブロック図である。図７は乱数発生器２０１の構成例を示している。
【００５０】
図７において、６０１〜６０７はそれぞれ再構成可能回路１０７ａのＰＥの１つを設定することで実現され、６０１〜６０７であらわされる演算回路は再構成可能回路上に実現される。６０１から６０６は３２ビットの算術演算ユニットＡＬＵであり、設定にしたがって各種算術演算、論理演算、ビット操作などを行うことができる。ＰＥ（ＮＯＴ）６０１はビット反転、ＰＥ（８−ｂｉｔ  ＲＯＴＬ）６０２は８ビット左回転、ＰＥ（ＴＨＲ）６０３はデータ通過、ＰＥ（ＳＴＲ  ０ｘ０００Ｆ）６０４は即値０ｘ０００Ｆのストア、ＰＥ（ＸＯＲ）６０５は排他的論理和、ＰＥ（ＡＮＤ）６０６は論理積、ＰＥ（ＦＦ）６０７はフリップフロップであり、図７のように接続される。ＰＥ（ＦＦ）６０７からは、乱数ＲＮＤが出力される。
【００５１】
図７のように構成される論理回路を詳細に記述すると、図８のようになる。
【００５２】
それぞれ、図７の６０１〜６０７が、図８の７０１〜７０７に対応している。“０”との排他的論理和と、“１”との論理積とはデータ通過と同じ動作であり、“１”との排他的論理和はインバータ、“０”との論理積はデータマスクと同じ動作である。これらを書き下すと、図９のようになる。なお、図９は再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示す回路図である。
【００５３】
したがって、図９の論理回路（７０１〜７０３，７０５〜７０７）は、図１０の論理回路（８０１〜８０６）で表される。図１０において、８０１，８０３，８０４，８０５は７０１に、８０２は７０５に、８０６は７０７に、それぞれ対応している。図９の論理回路は、図１０に示すように５個のインバータ８０１〜８０５と、１個のフリップフロップ８０６とからなるリングオシレータを８本形成する。
【００５４】
奇数個のインバータ８０１〜８０５からなるリングオシレータは最終段のインバータ８０５の出力が初段のインバータ８０１の入力に接続されており、初段入力の論理否定を最終段のインバータ８０５が出力し、これが初段入力に再び入力され、初段入力の値が論理否定される。このことにより、リングオシレータは発振することになる。
【００５５】
製造時のトランジスタ特性のばらつきや熱雑音などによって各ゲートの遅延時間に微小な変化が生じ、リングオシレータの発振周波数が変化する。これを用いて、観測者からは予測不可能な真性乱数を発生させることができる。
【００５６】
フリップフロップであるＰＥ７０７の出力の下位８ビットは、８ビット幅の乱数を発生する。
【００５７】
ＡＥＳ暗号方式は８ビットのデータをガロア体ＧＦ（２５６）の元と同一視している。なお、特に断りのない限りこれを１６進数で表示することにする。
【００５８】
ガロア体の積演算を実行する、等価な論理回路を複数有するような構成情報を用意し、ＡＥＳ暗号演算処理のＳ−ＢＯＸとよばれるステップを安全に実行する。
【００５９】
ガロア体の逆元を求める回路として、たとえば非特許文献４に記載された回路構成があり、ガロア体の元の２乗回路がその基本となる。ガロア体の積は任意の元と０ｘ０２との積演算と和の組合せで実現できる。
【００６０】
図１１および図１２に、図５で示した複数の等価な論理回路２０４〜２０７の構成例を示す。図１１および図１２は、入力データＤに対して、ガロア体の積演算の基本となる０ｘ０２×Ｄを出力する等価な論理回路である。ここで、本明細書においては、ガロア体の積演算を、記号×を用いて表す。図１１において、１００１〜１００４はそれぞれ再構成可能回路のＰＥの１つを設定することで実現され、１００１〜１００４で表わされる演算回路は再構成可能回路１０７上に実現される。同様に、図１２において、１１０１〜１１０８はそれぞれ再構成可能回路１０７のＰＥの１つを設定することで実現され、１１０１〜１１０８で表わされる演算回路は再構成可能回路１０７上に実現される。しかし、入力から出力までに通過するゲートの段数や構成が異なるため、処理時間や消費電力は異なる。
【００６１】
図１１において、ＰＥ（Ｌｅｆｔ  １−ｂｉｔ  Ｓｈｉｆｔ）１００１は１ビット左シフト、ＰＥ（ＳＴＲ  ０ｘ１１７）１００２は即値０ｘ１１７をストア、ＰＥ（ＸＯＲ）１００３は排他的論理和、ＰＥ（ＭＵＸ）１００４はＰＥ（Ｌｅｆｔ  １−ｂｉｔ  Ｓｈｉｆｔ）１００１の出力信号のビット７によって制御されるマルチプレクサをそれぞれ表している。
【００６２】
図１２において、ＰＥ（ＳＴＲ  ０ｘ５５）１１０１は即値０ｘ５５をストア、ＰＥ（Ｌｅｆｔ  １−ｂｉｔ  Ｓｈｉｆｔ）１１０２は左１ビットシフト、ＰＥ（ＳＴＲ  ０ｘ１１７）１１０３は即値０ｘ１１７をストア、ＰＥ（ＸＯＲ）１１０４は排他的論理和、ＰＥ（Ｌｅｆｔ  １−ｂｉｔ  Ｓｈｉｆｔ）１１０５は左１ビットシフト、ＰＥ（ＸＯＲ）１１０６は排他的論理和、ＰＥ（ＭＵＸ）１１０７は入力Ｄのビット７によって制御されるマルチプレクサ、ＰＥ（ＸＯＲ）１１０８は排他的論理和をそれぞれ表している。
【００６３】
たとえば、図１２のＰＥ１１０１において、即値０ｘ５５をストアする命令の代わりに、乱数発生器から発生させられた８ビットの乱数をそのまま出力することにしても、図１２の回路はＤに対してガロア体の積０ｘ０２×Ｄを実行する図１１の回路と等価な論理回路になる。このとき、この論理回路は乱数との演算をデータパスに加えた回路で、かつ図１１と等価な論理回路である。
【００６４】
このように、ＰＥ１１０１の値は、演算結果０ｘ０２×Ｄの値に影響を与えないため、ＰＥ１１０１を乱数の入力として用いることができる。従って、図１１及び１２に記載の発明は、データの入力Ｄと、乱数の入力として扱うことが可能な入力ＰＥ１１０１とを有することを特徴とする。この特徴により、同一の演算を行う際にも乱数を並行してデータパスに流すことが可能となるため、より消費電力波形等をランダムなものとすることができるため、より不正な解析を防止することが可能となる。
【００６５】
図１３に、１つの論理回路でデータを処理した場合の消費電力波形Ｗ０１〜Ｗ０４と、複数の等価な論理回路を構成し、乱数発生器から発生させられた乱数に基づいて論理回路を切り替えながらデータを処理した場合の消費電力波形Ｗ１１〜Ｗ１４を示す。同じ論理回路でデータ処理の実行を続けた場合、同一データの処理を実行する際の消費電力波形は毎回同じになると考えられる。たとえば、データＡを処理した際の波形Ｗ０１とＷ０４は同一である。
【００６６】
一方、データ処理のたびに複数の等価な論理回路をランダムに切り替えて選択し、データを処理した場合には、同じデータを処理した場合でも、実際の処理に用いられている回路が異なるため、波形は同一とは限らず、また予測もできない。たとえば、データＡを処理した際の波形Ｗ１１とＷ１４は異なる波形である。
【００６７】
これによって、再構成可能回路を再構成する際に用いられた構成情報が読み取られたとしても、消費電力波形から、処理したデータの特定を行うことが非常に困難になる。
【００６８】
したがって、本実施の形態の情報処理装置によれば、再構成可能回路の内部で乱数が発生および消滅させられているため、同一の処理を行う複数の論理回路の選択およびその選択に用いられた乱数を外部から観測することができなくなる。したがって、暗号処理に用いた再構成可能回路の構成情報が攻撃者によって読み出されて解析された場合でも、実際に処理を実行した回路がいずれであるかを判別することができず、電力解析、タイミング解析が非常に困難になり、消費電力解析およびタイミング解析による不正な解読を防止することができる。
【００６９】
また、これらを専用ハードウェアで実装する場合には、複数の論理回路を実際の回路として用意しなければならず、論理規模が非常に大きくなってしまうが、再構成可能回路を用いることにより、規模を大きくすることなく、より堅牢な暗号処理を可能にしている。
【００７０】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７１】
本発明は、半導体装置、特に暗号演算処理を行う半導体装置に有効である。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施の形態による情報処理装置において、携帯電話端末システムの構成例を示すブロック図である。
【図２】本発明の一実施の形態による情報処理装置において、再構成可能回路の構成例を示すブロック図である。
【図３】本発明の一実施の形態による情報処理装置において、プロセッシングエレメント（ＰＥ）の各構成例を示すブロック図である。
【図４】本発明の一実施の形態による情報処理装置において、ＣＰＵによる暗号演算処理フローを示すフローチャートである。
【図５】本発明の一実施の形態による情報処理装置において、再構成可能回路で再構成された回路構成例を示すブロック図である。
【図６】本発明の一実施の形態による情報処理装置において、再構成された再構成可能回路の動作例を示すタイミングチャートである。
【図７】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示すブロック図である。
【図８】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示す回路図である。
【図９】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示す回路図である。
【図１０】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示す回路図である。
【図１１】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示すブロック図である。
【図１２】本発明の一実施の形態による情報処理装置において、再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示すブロック図である。
【図１３】本発明の一実施の形態による情報処理装置において、再構成可能回路に構成情報に基づいて実現される論理回路の消費電力値の一例を示す波形図である。
【符号の説明】
【００７３】
１０１  アプリケーションＬＳＩ
１０２  ベースバンドＬＳＩ（Ｂａｓｅ  Ｂａｎｄ  ＬＳＩ）
１０３  ＲＦアンプ（ＲＦ）
１０４  アンテナ
１０５  外部メモリ（Ｍｅｍｏｒｙ）
１０６  ＣＰＵ
１０７，１０７ａ  再構成可能回路（ＲＥＣＯＮＦ）
１０８  コントローラ（ＣＴＲ）
１０９  レジスタ（ＲＥＧ）
１１０  割込みコントローラ（ＩＮＴ）
１１１  ＲＡＭ
１１２  ＲＯＭ
１１３  インターフェース（Ｉ／Ｆ）
１１４  システムバス
２０１  乱数発生器（ＲＮＤ）
２０２，４０１，４０２，４０５  マルチプレクサ（ＭＵＸ）
２０３，４０６  デマルチプレクサ（ＤＭＵＸ）
２０４〜２０７  論理回路
３０１〜３０９，６０１〜６０７，７０１〜７０７，１００１〜１００４，１１０１〜１１０８  プロセッシングエレメント（ＰＥ）
４０３  ＡＬＵ
４０４，８０６  フリップフロップ
８０１〜８０５  インバータ（ＩＮＶ）
【図１】
2010021624.tif 000003
【図２】
2010021624.tif 000004
【図３】
2010021624.tif 000005
【図４】
2010021624.tif 000006
【図５】
2010021624.tif 000007
【図６】
2010021624.tif 000008
【図７】
2010021624.tif 000009
【図８】
2010021624.tif 000010
【図９】
2010021624.tif 000011
【図１０】
2010021624.tif 000012
【図１１】
2010021624.tif 000013
【図１２】
2010021624.tif 000014
【図１３】
2010021624.tif 000015