(57)【要約】【課題】消費エネルギー量と内部処理のデータとの関連性を少なくことを目的とする。【解決手段】暗号セキュア装置１は、その内部に備える機密情報処理部のロジック部（４１、４２）によって、電力を消費して内部処理データである機密情報を処理し、抑止部（５５、５６）によって、ダミーの電力の消費を行うことで、ロジック部（４１、４２）が消費する消費電力をカモフラージュすることによりロジック部が消費する消費電力からロジック部によって処理される機密情報の漏洩を抑止する。【選択図】        図５
2004153460.tif 000002
【特許請求の範囲】
【請求項１】
機密情報を処理する機密情報処理部を備えるセキュア装置であって、
上記機密情報処理部は、エネルギーを消費して機密情報を処理するロジック部と、
ダミーのエネルギーの消費を行うことで上記ロジック部が消費する消費エネルギーの量をカモフラージュすることにより上記ロジック部が消費する消費エネルギーの量から上記ロジック部によって処理される機密情報の漏洩を抑止する抑止部とを備えたセキュア装置。
【請求項２】
上記セキュア装置は、上記機密情報処理部を複数有し、
上記複数の機密情報処理部の各機密情報処理部の少なくともいずれかに上記抑止部を備える請求項１に記載されたセキュア装置。
【請求項３】
上記セキュア装置は、上記機密情報処理部を複数有し、
上記複数の機密情報処理部の各機密情報処理部は、直列に配置され、直列に配置された両端の機密情報処理部に上記抑止部を備える請求項１に記載されたセキュア装置。
【請求項４】
上記セキュア装置は、上記機密情報処理部を複数有し、
上記複数の機密情報処理部の各機密情報処理部は、直列に配置され、上記抑止部を各々備え、
各抑止部は、前の機密情報処理部によって処理された処理結果を次の機密情報処理部の抑止部の入力情報とする請求項１に記載されたセキュア装置。
【請求項５】
上記セキュア装置は、さらに、
上記機密鍵情報を生成する機密情報生成部を有し、
上記機密情報生成部と上記機密情報処理部とは、上記抑止部を各々有し、
上記機密情報処理部は、上記機密情報生成部によって生成された機密鍵情報を使用して機密情報を処理し、
上記セキュア装置は、上記機密情報生成部と上記機密情報処理部とが各々有する各抑止部によって消費される消費エネルギー量を使用して上記機密鍵情報及び上記機密情報が外部に漏洩することを防止する請求項１に記載されたセキュア装置。
【請求項６】
上記ロジック部は、回路によって機密情報を処理し、
上記抑止部は、上記ロジック部の回路から任意のタイミングで出力される信号に対し反転した信号を出力する反転回路を備え、反転回路によって所定の情報を処理する請求項１に記載されたセキュア装置。
【請求項７】
上記ロジック部は、ループ処理を行う回路によって機密情報を処理する請求項１に記載されたセキュア装置。
【請求項８】
上記セキュア装置は、さらに、分岐回路を備え、
上記セキュア装置は、機密情報を処理する場合には分岐回路によって上記機密情報処理部に分岐し上記機密情報処理部に機密情報を処理させるとともに、機密情報を処理しない任意のタイミングにも分岐回路によって上記機密情報処理部に分岐し上記機密情報処理部にダミーの情報を処理させる請求項７に記載されたセキュア装置。
【請求項９】
上記セキュア装置は、さらに、
乱数を発生する乱数発生器を備え、
上記セキュア装置は、上記乱数発生器によって発生された乱数をダミーの情報として上記機密情報処理部にダミーの情報を処理させる請求項８に記載されたセキュア装置。
【請求項１０】
上記機密情報処理部は、さらに、
機密情報を入力する入力部を備え、
上記入力部は、インバータを有し、
上記抑止部は、上記ロジック部を構成しているアンド回路をオア回路に置き換え、オア回路をアンド回路に置き換え、ナンド回路をノア回路に置き換え、ノア回路をナンド回路に置き換え、ノット回路をノット回路のままにした上記反転回路を備え、上記入力部に入力された後上記インバータにより反転された情報を上記反転回路によって処理する請求項６に記載されたセキュア装置。
【請求項１１】
上記セキュア装置は、
上記抑止部によって処理された所定の情報を乱数として使用する請求項１に記載されたセキュア装置。
【請求項１２】
エネルギーを消費して機密情報を処理し、
ダミーのエネルギーの消費を行うことで上記機密情報の処理で消費する消費エネルギーの量をカモフラージュすることにより、上記機密情報の処理で消費する消費エネルギーの量から上記処理される機密情報の漏洩を抑止するセキュア方法。
【請求項１３】
エネルギーを消費して機密情報を処理する処理と、
ダミーのエネルギーの消費を行うことで上記機密情報の処理で消費する消費エネルギーの量をカモフラージュすることにより、上記機密情報の処理で消費する消費エネルギーの量から上記処理される機密情報の漏洩を抑止する処理とをコンピュータに実行させるセキュアプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、情報処理装置における機密性の高い暗号セキュアシステムに係わり、特に、セキュア回路の構成方法に関するものである。
【０００２】
【従来の技術】
従来例１．
例えば、特開２０００−１６５３７５に示された従来の「情報処理装置、ＩＣカード」に示された選択的転置処理の処理ルーチンを図１０に示す。
【０００３】
従来例１の選択的転置処理（Ｐ１０１）では、まず実行フラグをクリアする（Ｐ１０２）。この実行フラグは、各ビットが繰返し処理の処理単位で処理が終了しているならば“１”であり、未処理であれば“０”である。実行フラグの全てのビットが“１”であるならば（Ｐ１０３）、処理を終了する（Ｐ１１２）。そうでなければ、処理を続け乱数を取出す（Ｐ１０４）。乱数は、乱数生成装置などで生成する。
【０００４】
繰返し単位で、実行する処理を指定する実行インデックスを乱数によって決める（Ｐ１０５）。例えば、乱数の下位３ビットを取り出し、その値に対する８の剰余を実行インデックスとする。このように実行インデックスを乱数から生成すれば、処理順番をランダムにすることが出来る。
【０００５】
次に実行フラグの対応するビットを、処理済を示す“１”とする（Ｐ１０６）。
【０００６】
以上のようにすることにより、繰返し処理の処理単位が乱数によってランダムに選ばれるために、処理単位の順序が一定とならない。さらに、ランダムに処理順序が選択されるために、同じ処理が１度以上処理される場合もあり、処理時間も不定となる。
【０００７】
次に、選択された実行インデックスに従い、処理すべき正常入力データとビット反転入力データを取り出す（Ｐ１０７）。正常入力データとビット反転入力データが同じ順番で処理されるのを避けるために、乱数を取出し（Ｐ１０８）、アドレス変位を計算する（Ｐ１０９）。そのアドレス変位から呼出しアドレスを求め（Ｐ１１０）、ルーチンを呼び出す（Ｐ１１１）。
【０００８】
以上のようにすることにより、アドレス変位が乱数により決められるので、正常入力データ処理ルーチンと反転入力データ処理ルーチンの処理順序が一定とならない。さらに、ランダムに処理順序が選択されるために、同じ処理が１度以上処理される場合もあり、処理時間も不定となる。
【０００９】
また、Ｐ１０７で組になるように格納された正常入力データとビット反転入力データが取り出されるので、データ転送時のデータと消費電力の関連性を少なくすることが出来る（例えば特許文献１参照）。
【００１０】
従来例２．
図１１は例えば、ＷＯ９９／６７７６６に示された従来の“ＢＡＬＡＮＣＥＤＣＲＹＰＴＯＧＲＡＰＨＩＣ  ＣＯＭＰＵＴＡＴＩＯＮＡＬ  ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＬＥＡＫ  ＭＩＮＩＭＩＺＡＴＩＯＮ  ＩＮ  ＳＭＡＲＴＣＡＲＤＳ  ＡＮＤ  ＯＴＨＥＲ  ＣＲＹＰＴＯＳＹＳＴＥＭＳ”におけるＮＡＮＤゲートのＣＭＯＳ実装図である。図において、ＡとＢは入力端子であり、各々２ビットでＴＲＵＥ、ＦＡＬＳＥを表す。つまり、ＡはＡ１とＡ２のビットで、（Ａ１，Ａ２）＝（１，０）でＴＲＵＥを、（Ａ１，Ａ２）＝（０，１）でＦＡＬＳＥを表す。この両者のハミングウェイトは一定である。ＶＰＰは電源電圧、ＧＮＤは接地電圧を示す。Ｏは出力端子であり、Ｏ１、Ｏ２の２ビットでＮＡＮＤ出力を表す。Ｏ３からＯ８はＮＡＮＤとして使用する場合は、使用しない。
【００１１】
従来例２の動作について述べる。ＮＡＮＤの入力端子Ａ、Ｂに入力データが入力される前に、入力端子Ａ、Ｂは中立の状態にある。つまり、（Ａ１，Ａ２，Ｂ１，Ｂ２）＝（０，０，０，０）であり、図１１のサブユニットＰ２１０、Ｐ２２０、Ｐ２３０、Ｐ２４０は全て同じ状態にある。この状態のもと、ＮＡＮＤゲートに論理入力を与えた時の各サブユニットの状態変化を図１２に示す。例えば、（ＴＲＵＥ，ＴＲＵＥ）の入力を与えた場合、サブユニットＰ２１０では全てのトランジスタが、サブユニットＰ２２０ではＰ２２２、Ｐ２２４のトランジスタが、サブユニットＰ２３０ではＰ２３１、Ｐ２３３のトランジスタが状態変化を起こす。図１２によれば、どのような入力を与えても、ＮＡＮＤゲート内で状態変化を起こすトランジスタ数は変わらない。よって、入力状態に依らず、ＮＡＮＤゲート内の消費電力は一定に保たれる（例えば特許文献１参照）。
【００１２】
【特許文献１】
特開２０００−１６５３７５号公報
【特許文献２】
国際公開ＷＯ９９／６７７６６号公報
【００１３】
【発明が解決しようとする課題】
従来例１の「情報処理装置、ＩＣカード」は、乱数により処理順序を可変とし、内部処理状態の特定を困難にする特徴がある反面、１度以上処理が実行される可能性があり、処理時間が長くなると言う課題があった。
【００１４】
また、組になるように格納された正常入力データとビット反転入力データの処理順序を乱数により変更することで、正常入力データとビット反転入力データの処理状態の特定を困難にする特徴がある反面、ある特定時間においては正常入力データまたはビット反転入力データの何れかが処理されており、その処理データの消費電力情報が外部に漏れて機密情報が解読されると言う課題があった。
【００１５】
一方、従来例２の“ＢＡＬＡＮＣＥＤ  ＣＲＹＰＴＯＧＲＡＰＨＩＣ  ＣＯＭＰＵＴＡＴＩＯＮＡＬ  ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＬＥＡＫ  ＭＩＮＩＭＩＺＡＴＩＯＮ  ＩＮ  ＳＭＡＲＴＣＡＲＤＳ  ＡＮＤ  ＯＴＨＥＲ  ＣＲＹＰＴＯＳＹＳＴＥＭＳ”では、ＮＡＮＤゲートをハミングウェイトが一定となるように構成するので、入力データに依存する消費電力情報を少なくする特徴がある反面、回路構成が冗長になり消費電力が増大すると言う課題があった。
【００１６】
この発明は、外部に漏れる消費エネルギー量と機密情報との関連性を少なくし、外部に消費電力情報が漏れても、機密情報の解読が困難になるようにし、かつ、装置の冗長性が低いセキュア装置の構成及びセキュア方法を構築することを目的とする。
【００１７】
【課題を解決するための手段】
本発明のセキュア装置は、
機密情報を処理する機密情報処理部を備えるセキュア装置であって、
上記機密情報処理部は、エネルギーを消費して機密情報を処理するロジック部と、
ダミーのエネルギーの消費を行うことで上記ロジック部が消費する消費エネルギーの量をカモフラージュすることにより上記ロジック部が消費する消費エネルギーの量から上記ロジック部によって処理される機密情報の漏洩を抑止する抑止部とを備える。
【００１８】
【発明の実施の形態】
実施の形態１．
図１は実施の形態１の暗号セキュア装置１の回路構成図を示したものである。図１において、暗号セキュア装置１は、マイクロプロセッサ１０、暗号（復号）処理を高速に行う暗号処理部（暗号コプロ）１１、乱数を発生する乱数発生器１２、外部との通信を行う通信部１３、マイクロプロセッサ１０の処理プログラム等を格納するＲＯＭ１４、マイクロプロセッサ１０の作業領域を提供するＲＡＭ１５を備える。
マイクロプロセッサ１０は、暗号セキュア装置１の全体の制御を行ったり、後述する暗号処理部１１、乱数発生器１２を用いて、暗号（復号）処理を行うプロセッサである。
通信部１３は外部とのインタフェースを掌るものであり、通信に限られるものではなく、他のインタフェース、例えばＩＥＥＥ１３９４であっても良い。
なお、暗号セキュア装置１は、機密情報が外部に漏れることを防止するセキュア装置の一例である。
【００１９】
本発明では、暗号処理部１１、乱数発生器１２に消費電力が一定となる消費電力バランス設計を行うことを特徴とする。
【００２０】
本発明の詳細な説明に移る前に、一般的な暗号アルゴリズムについて簡単に述べる。図２はＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号の基本構造を模式的に表したものである。ＤＥＳ暗号は６４ビットのデータを５６ビットの鍵で、暗号化及び復号する。図２は暗号化の手順を示している。６４ビットの入力データは、はじめに初期転置させられる。初期転置は、既定の初期転置テーブルに従い、ビット単位で６４ビットの入力データを入れ換えることである。
【００２１】
その後、ラウンドと呼ばれる操作を１６回繰り返す。各ラウンドでは、以下の（１）〜（４）の処理を行う。
（１）６４ビットの入力データを、上位３２ビットと下位３２ビットに分ける。
（２）下位３２ビットと４８ビットの鍵Ｋｉ（１≦ｉ≦１６）を入力として、ｆ関数と呼ばれる処理を行い、データを攪拌する。
（３）上位３２ビットと上記ｆ関数処理後の出力３２ビットの排他的論理和を取る。
（４）下位３２ビットを上位３２ビットとして出力し、排他的論理和を取った出力３２ビットを下位３２ビットとして出力する。
【００２２】
なお、図２に示された４８ビットの鍵Ｋｉ（Ｋ１〜Ｋ１６）は５６ビットの鍵を拡大して生成されるものである。
【００２３】
最後に、最終転置と呼ばれる初期転置の逆転置を行い暗号化が終了する。ＤＥＳの詳しい記述は、チャーリー・カフマン著「ネットワークセキュリティ」（プレンティスホール社）などにある。
【００２４】
次に、ＲＳＡ暗号の概要を述べる。ＲＳＡ暗号の復号化は次の式に従って行われる。
【００２５】
【数１】
2004153460.tif 000003
【００２６】
ここで、ｃは暗号文、ｍはメッセージ、ｄとｎはある規則に従い求められた復号鍵である。実際に使用されるｄとｎは１０２４ビット以上であるので、（数式１）をそのまま計算することはなく、式を展開して（数式２）に従って計算されることが多い。
【００２７】
【数２】
2004153460.tif 000004
【００２８】
なお、上記（数式２）に記載された／＊    ＊／で含まれた分は数式の一部ではなく、数式を説明する文である。
【００２９】
ここで、｜ｄ｜はｄのビット長、ｄ［ｉ］はｄのｉビット目の値である。ＲＳＡ暗号の詳しい記述についても前述の「ネットワークセキュリティ」などに書かれている。
【００３０】
一般的な暗号アルゴリズムは以上のように組み立てられている。何れの例においても、小さな単位（ラウンド、ループ）の繰返し構造を有する演算処理を行っている。しかも、この小さい単位には機密とすべき情報が入力されているので、この演算処理において、機密情報と消費電力との間に関連性がある場合、機密情報が外部で推定される可能性がある。Ｗ．Ｒａｎｋｅ  ＆  Ｗ．  Ｅｆｆｉｎｇ，“Ｓｍａｒｔ  Ｃａｒｄ  Ｈａｎｄｂｏｏｋ”，（Ｊｏｈｎ  Ｗｉｌｅｙ  ＆
ｓｏｎｓ）において、このような危険性が示唆されている。
【００３１】
本実施の形態は、上記のような危険性に対抗するために、外部に漏れる消費電力情報と内部処理のデータ（機密情報）との関連性を少なくするものである。
【００３２】
図１において、機密情報を扱うブロックは、暗号処理部１１と乱数発生器１２であり、本実施の形態ではこの機密情報を扱うブロックに対して、消費電力バランス設計を行うことを特徴とする。消費電力バランス設計とは、回路内部で処理されているデータと外部に漏れ出る消費電力との関連性を極力小さくする設計のことを示す。以下に、その詳細を述べる。
【００３３】
図３は、暗号処理部１１が複数のサブブロックで構成されている場合、機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う例を示している。図３において、情報処理部２００は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部２１０から機密情報処理部２１４は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでのラウンドやループに相当する。情報処理部２３０も情報処理部２００と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部２４０は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。
【００３４】
本実施の形態では、上記機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う。このようにすることにより、すべてのサブブロックに対して消費電力バランス設計を行うのに比べ、消費電力の増大を抑えることが出来る。
【００３５】
次に、機密情報を扱うサブブロック（機密情報処理部（２１０、２１１、２１２、２１３、２１４）及び機密情報生成部２４０）の少なくともいずれかに対して行う消費電力バランス設計について述べる。話を簡単にするために、機密情報を扱うサブブロックが図４に示すような入力部４６、複数の基本ブロック部４、出力部４８から構成されているものとする。
基本ブロック部４は異なるロジック部４１、ロジック部４２、セレクタ４３及びフリップフロップ（ＦＦ）４４で構成される。一例として図４の基本ブロック部４を提示したが、一般の回路はこれらの要素の組合せで実現することが出来る。
【００３６】
図４に示す機密情報を扱うサブブロック機密情報処理部に対して、消費電力バランス設計を行う方法を以下に示す。消費電力バランス設計では、回路上の１ノードの状態がある時刻において定まるタイミングと同じタイミングで、前記状態の反転状態が定まる回路の１ノードを設計する。具体的には、ある時刻のゲート出力（ノード）が０であれば、消費電力バランス設計では同じ時刻にゲート出力（ノード）が１であるゲートを追加する。このようにすることで、内部処理されているデータは常に、１と０が対になって発生するため、外部に漏れる消費電力と内部処理されているデータとの関連性を抑えることが出来る。
【００３７】
図５に、図４の基本ブロック部４に対して消費電力バランス設計が行われ、追加される追加回路を抑止部（５５、５６）として示す。追加回路は以下の（１）〜（８）に示すようにして設計する。
（１）入力部４６にインバータ５０を設ける。ただし、インバータ５０は、全てのバランス基本ブロック部５の入力データに対し設けるのではなく、消費電力バランス設計を行う先頭のバランス基本ブロック部５に対してのみ行う。
（２）図４のロジック部４１及びロジック部４２に対して、以下のゲート（回路）の対応関係に従って、ロジック部４１及びロジック部４２の回路を置き換えることにより追加回路を設計する。
ＡＮＤ回路    →  ＯＲ回路
ＯＲ回路      →  ＡＮＤ回路
ＮＡＮＤ回路  →  ＮＯＲ回路
ＮＯＲ回路    →  ＮＡＮＤ回路
ＮＯＴ回路はＮＯＴ回路のままとする。
つまり、図４で使用されるＡＮＤ回路はＯＲ回路で置き換えるといった具合にロジック部４１及びロジック部４２を置き換える。
（３）セレクタ４３、フリップフロップ４４は同じ回路とする。
（４）セレクタ４３のセレクト信号は同じものとする。
（５）フリップフロップ４４のクロックは同じものとする。
（６）基本ブロック部４が複数連続する場合は、各々に対して上記（２）〜（４）の作業を行い、すべてのバランス基本ブロック部５に対して、消費電力バランス設計を行う。このようにして、消費電力バランス設計が行われた追加回路は、ロジック部４１及びロジック部４２に対し抑止部５５及び抑止部５６としてバランスロジック部５１及びバランスロジック部５２に追加される。
（７）消費電力バランス設計が行われた追加回路の出力は、図３に示す次の処理を行う機密情報処理部に対応する消費電力バランス設計が行われた追加回路に入力される。
（８）消費電力バランス設計を行う最後の機密情報処理部（図３では、機密情報処理部２１４）に対応する消費電力バランス設計が行われた追加回路の出力（最終出力）は、内部で使用する乱数等として利用することができる。
【００３８】
このように、実施の形態１に記載された発明の消費電力バランス設計では、回路上の１ノードの状態がある時刻において定まると、同じタイミングで反転状態の１ノードが定まる回路を設計する。このような消費電力バランス設計によって追加された抑止部が、ダミーのエネルギーの消費を行うことでロジック部が消費する消費エネルギーの量をカモフラージュすることにより、ロジック部が消費する消費エネルギーの量からロジック部によって処理される機密情報の漏洩を抑止することができる。すなわち、消費電力バランス設計によって内部で処理されるデータのバランスがとれ、消費電力と内部処理データの関連性を小さくする暗号セキュア装置１を構築することが出来る。
【００３９】
また、機密情報を扱う機密情報処理部に対してのみ、消費電力バランス設計を行うため、消費電力の増加を必要最小限に抑えることができる。
【００４０】
また、消費電力バランス設計におけるロジック部の置換えを、１ゲート（回路）に付き、１ゲート（回路）としたので、回路の冗長性を抑えることが出来る。
【００４１】
実施の形態２．
実施の形態１では、暗号処理部１１が複数のサブブロックで構成されている場合、機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う例を示した。
実施の形態２では、機密情報を扱う機密情報処理部が連続している場合、最初と最後の機密情報処理部に対してのみ、消費電力バランス設計を行う。
【００４２】
一般に、消費電力から機密情報を推定する場合、消費電力が既知の情報と推定する機密情報の関数で決まると仮定して、推定された機密情報の確からしさを消費電力の統計処理により求める。既知情報は、平文や最終結果である暗号文などである。機密情報を扱う機密情報処理部の機密情報が判別された場合、その機密情報処理部の出力も既知情報として扱うことが出来る。
【００４３】
図６に実施の形態２における暗号処理部１１のブロック図を示す。機密情報を扱う機密情報処理部のうち、連続して行われる機密情報処理部の最初と最後の機密情報処理部２１０、機密情報処理部２１４にだけ、消費電力バランス設計を行う。このように、消費電力バランス設計を行うことにより、その機密情報処理部で扱う機密情報を推定することが困難になり、連続する機密情報処理部が扱う機密情報の推定を行うことが出来なくなる。なお、機密情報処理部６１１から機密情報処理部６１３は消費電力バランス設計を行わないサブブロックである。
【００４４】
このように、実施の形態２では機密情報を扱うサブブロックのうち、連続して行われるサブブロックの最初と最後のサブブロックにだけ、消費電力バランス設計を行うので、一連の機密情報の推定が困難になる。
【００４５】
また、機密情報を扱うサブブロックのうち、連続して行われるサブブロックのうち、最初と最後のサブブロック以外のサブブロックに対しては消費電力バランス設計を行わないので、消費電力の増大を抑えると共に、回路の増加も抑えることが出来る。
【００４６】
実施の形態３．
実施の形態１および２は、暗号アルゴリズムを平面状に展開した回路構成における暗号セキュア装置１の構成方法を示した。
実施の形態３では、暗号アルゴリズムをループ状に展開した回路構成における暗号セキュア装置１の構成方法について述べる。
【００４７】
図７は、暗号アルゴリズムをループ状に展開した回路構成図を示している。図において、情報処理部２００は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部７０は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの１ラウンドや１ループに相当する。レジスタ７１は機密情報処理部７０の出力結果を記録する。セレクタ７２は、セレクタ信号（図示せず）に従い情報処理部２００からの信号とレジスタ７１からの信号のいずれかを選択する。情報処理部２３０も情報処理部２００と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部２４０は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部２４０は、機密情報処理部７０の演算処理に対応する機密情報を機密情報処理部７０に対して提供する。
【００４８】
このように、実施の形態３では、消費電力バランス設計を機密情報生成部２４０と機密情報処理部７０に対してのみ行う。そのため、機密情報処理部７０がループ状に展開した回路構成を持つことにより、暗号アルゴリズムを平面状に展開した回路構成に比べ、消費電力バランス設計による回路の規模を必要最小限に抑えることが出来る。
【００４９】
実施の形態４．
実施の形態３は、暗号アルゴリズムのループ構造に分岐がない例を示した。実施の形態４では、暗号アルゴリズムのループ構造に分岐がある回路構成における暗号セキュア装置１の構成方法について述べる。
【００５０】
図８は、ループ構造に分岐がある暗号アルゴリズムの回路構成例を示している。図において、情報処理部２００は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部７０は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの１ラウンドや１ループに相当する。セレクタ８０は機密情報処理部７０からの信号とセレクタ７２からの信号のいずれかをセレクタ信号（図示せず）に従い選択する。レジスタ７１はセレクタ８０の出力結果を記録する。セレクタ７２は、情報処理部２００からの信号とレジスタ７１からの信号のいずれかをセレクタ信号（図示せず）に従い選択する。情報処理部２３０も情報処理部２００と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部２４０は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部２４０は、機密情報処理部７０の演算状態に対応する機密情報を機密情報処理部７０に対して提供する。
【００５１】
このように、実施の形態４では、消費電力バランス設計を機密情報生成部２４０と機密情報処理部７０に対してのみ行い、暗号アルゴリズム上、機密情報処理部７０を使用しない分岐中でも、機密情報処理部７０を動作させる。そのため、暗号アルゴリズム上、機密情報処理部７０を使用しない分岐の情報と消費電力との関連性を低くすることが出来る。
【００５２】
実施の形態５．
実施の形態４は、暗号アルゴリズムのループ構造に分岐がある例を示した。実施の形態５では、暗号アルゴリズムのループ構造の分岐に、積極的に機密情報と無関係な情報を反映させる例について述べる。
【００５３】
図９は、ループ構造に分岐がある暗号アルゴリズムの回路に、積極的に機密情報とは無関係な情報を反映させる構成例を示している。図において、情報処理部２００は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。乱数発生器１２は消費電力バランス設計を行った乱数を発生させる機器である。セレクタ９０は、セレクタ７２の信号と乱数発生器１２の信号のいずれかをセレクタ信号（図示せず）に従い選択する。機密情報処理部７０は、原則として機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの１ラウンドや１ループに相当する。ただし、機密情報処理部７０が機密情報を処理しないタイミングであっても、機密情報処理部７０に分岐する場合がある。この場合には、乱数発生器１２によって発生した乱数をセレクタ９０が選択し、機密情報処理部７０は、乱数を入力信号として処理を行う。すなわち、機密情報処理部７０は、乱数発生器１２によって発生された乱数をダミーの情報としてにダミーの情報を処理する。
セレクタ８０は機密情報処理部７０からの信号とセレクタ７２からの信号のいずれかをセレクタ信号（図示せず）に従い選択する。レジスタ９１はセレクタ８０の出力結果を記録する。セレクタ７２は、情報処理部２００からの信号とレジスタ９１からの信号のいずれかをセレクタ信号（図示せず）に従い選択する。情報処理部２３０も情報処理部２００と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部２４０は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部２４０は、機密情報処理部７０の演算状態に対応する機密情報を機密情報処理部７０に対して提供する。
【００５４】
また、消費電力バランス設計が行われた回路の出力を乱数として扱うことを特徴とする暗号セキュア装置１について説明した。
【００５５】
このように、実施の形態５では、消費電力バランス設計を機密情報生成部２４０、機密情報処理部７０、乱数発生器１２に対してのみ行い、さらに、暗号アルゴリズム上、機密情報処理部７０を使用しない分岐中でも、機密情報処理部７０を乱数発生器１２の信号で動作させる。そのため、暗号アルゴリズム上、機密情報処理部７０を使用しない分岐の情報と消費電力との関連性を低くすることが出来る。
【００５６】
上記すべての実施の形態では、消費電力バランス設計として、回路内部で処理されているデータと外部に漏れ出る消費電力との関連性を極力小さくする設計について述べた。しかし、消費電力は、機密情報を処理する時に消費する消費エネルギーの一例であり、すべての実施の形態に記載の消費電力バランス設計は、機密情報と消費エネルギーとの関連性を極力小さくする設計として用いることができる。
【００５７】
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このように置き換えることにより、セキュア装置の発明をセキュア方法の発明の実施形態とすることができる。
また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、セキュア装置の発明をセキュアプログラムの実施の形態とすることができる。
また、セキュアプログラムを、セキュアプログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで、セキュアプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【００５８】
従って、セキュアプログラムの実施の形態は、
エネルギーを消費して機密情報を処理する処理と、
ダミーのエネルギーの消費を行うことで上記機密情報の処理で消費する消費エネルギーの量をカモフラージュすることにより、上記機密情報の処理で消費する消費エネルギーの量から上記処理される機密情報の漏洩を抑止する処理とをコンピュータに実行させるセキュアプログラムをコンピュータに実行させるためのセキュアプログラムを記録したコンピュータ読み取り可能な記録媒体、というように、セキュアプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【００５９】
上記プログラムの実施の形態及びプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
上記プログラムの実施の形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置（ＣＰＵ）に読み込まれ、中央処理装置によって、各フローチャートが実行されることになる。
また、各実施の形態のソフトウェアやプログラムは、ＲＯＭ（ＲＥＡＤ  ＯＮＬＹ  ＭＥＭＯＲＹ）に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアとファームウェアとハードウェアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
【００６０】
【発明の効果】
本発明によれば、機密情報処理部は、ダミーのエネルギーの消費を行うことでロジック部が消費する消費エネルギーの量をカモフラージュすることにより上記ロジック部が消費する消費エネルギー量から上記ロジック部によって処理される機密情報の漏洩を抑止する抑止部を備えたので、消費エネルギー量と機密情報の関連性を小さくすることが出来る。
【図面の簡単な説明】
【図１】実施の形態１の暗号セキュア装置１の回路構成図である。
【図２】ＤＥＳ暗号の基本構造を模式的に現した図である。
【図３】消費電力バランス設計を行う例を示す図である。
【図４】基本ブロック部４を提示する図である。
【図５】図４の回路に対応する消費電力バランス設計が行われ、機密情報処理部に追加される追加回路を示す図である。
【図６】実施の形態２における暗号処理部１１のブロック図である。
【図７】暗号アルゴリズムをループ状に展開した回路構成例を示す図である。
【図８】ループ構造に分岐がある暗号アルゴリズムの回路構成例を示す図である。
【図９】ループ構造に分岐がある暗号アルゴリズムの回路に、積極的に機密情報とは無関係な情報を反映させる構成例を示す図である。
【図１０】従来例を示す図である。
【図１１】従来例を示す図である。
【図１２】従来例を示す図である。
【符号の説明】
１  暗号セキュア装置、４  基本ブロック部、５  バランス基本ブロック部、１０  マイクロプロセッサ、１１  暗号処理部、１２  乱数発生器、１３  通信部、４１，４２  ロジック部、４３  セレクタ、４４  ＦＦ、４６  入力部、４８  出力部、５０  インバータ、５１  バランスロジック部、５２  バランスロジック部、５５，５６  抑止部、２００  情報処理部、２１０，２１１，２１２，２１３，２１４，６１１，６１２，６１３  機密情報処理部、２４０  機密情報生成部。
【図１】
2004153460.tif 000005
【図２】
2004153460.tif 000006
【図３】
2004153460.tif 000007
【図４】
2004153460.tif 000008
【図５】
2004153460.tif 000009
【図６】
2004153460.tif 000010
【図７】
2004153460.tif 000011
【図８】
2004153460.tif 000012
【図９】
2004153460.tif 000013
【図１０】
2004153460.tif 000014
【図１１】
2004153460.tif 000015
【図１２】
2004153460.tif 000016