(57)【要約】【課題】ＤＰＡ攻撃に対する耐性を高めることのできる、暗号処理装置および暗号処理方法を提供する。【解決手段】処理対象データを取得し、前記処理対象データにラウンド処理を施して中間データを生成する、ラウンド処理部と、乱数データを生成する乱数データ生成部と、前記中間データまたは前記乱数データを格納する記憶回路と、前記記憶回路に前記中間データと前記乱数データとのうちのどちらを格納するかを選択する選択制御部とを具備する。前記選択制御部は、前記中間データが格納された後に前記乱数データが格納されるように、前記記憶回路に格納するデータを選択する。【選択図】図３
2011169977.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データを取得し、前記処理対象データにラウンド処理を施して中間データを生成する、ラウンド処理部と、
乱数データを生成する乱数データ生成部と、
前記中間データまたは前記乱数データを格納する記憶回路と、
前記記憶回路に前記中間データと前記乱数データとのうちのどちらを格納するかを選択する選択制御部と、
を具備し、
前記選択制御部は、前記中間データが格納された後に前記乱数データが格納されるように、前記記憶回路に格納するデータを選択する
暗号処理装置。
【請求項２】
請求項１に記載された暗号処理装置であって、
前記記憶回路は複数設けられており、
前記選択制御部は、
前記複数の記憶回路のなかから、選択記憶回路を選択し、前記選択記憶回路に前記中間データを格納し、
前記選択記憶回路から前記中間データが後段へ送られた後に、前記選択記憶回路を変更し、
変更後の前記選択記憶回路として選ばれなかった変更後非選択記憶回路群に、前記乱数データを格納する
暗号処理装置。
【請求項３】
請求項２に記載された暗号処理装置であって、
前記選択記憶回路に格納された前記中間データは、前記処理対象データとして、前記ラウンド処理部に送られる
暗号処理装置。
【請求項４】
請求項２又は３に記載された暗号処理装置であって、
更に、
前記複数の記憶回路に対応して設けられた複数の記憶回路入力セレクタと、
前記複数の記憶回路と前記ラウンド処理部との間に設けられた、記憶回路出力セレクタと、
を具備し、
前記複数の記憶回路入力セレクタの各々は、前記中間データと前記乱数データとのうちのいずれか一方を選択して、対応する前記各記憶回路に向けて出力し、
前記記憶回路出力記憶回路は、前記複数の記憶回路のいずれかに格納されたデータを選択して、前記処理対象データとして前記ラウンド処理部に向けて出力し、
前記選択制御部は、
前記複数の記憶回路入力セレクタの動作を制御することにより、前記選択記憶回路に前記中間データを格納し、
前記記憶回路出力セレクタの動作を制御することにより、前記選択記憶回路から前記ラウンド処理部に前記処理対象データを送る
暗号処理装置。
【請求項５】
請求項１乃至４のいずれかに記載された暗号処理装置であって、
更に、
予め準備された秘密鍵データを取得し、前記非密鍵データに基づいて、ラウンド鍵データを生成する、ラウンド鍵生成部
を具備し、
前記ラウンド処理部は、前記ラウンド鍵データを用いて、前記処理対象データにラウンド処理を施す
暗号処理装置。
【請求項６】
請求項１乃至５のいずれかに記載された暗号処理装置であって、
前記記憶回路は、レジスタである
暗号処理装置。
【請求項７】
処理対象データを取得し、前記処理対象データにラウンド処理を施して中間データを生成するステップと、
乱数データを生成するステップと、
記憶回路に、前記中間データまたは前記乱数データを格納するステップと、
前記記憶回路に前記中間データと前記乱数データとのうちのどちらを格納するかを選択するステップと、
を具備し、
前記選択するステップは、前記中間データが格納された後に前記乱数データが格納されるように、前記記憶回路に格納するデータを選択するステップを含む
暗号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理装置及び暗号処理方法に関する。
【背景技術】
【０００２】
セキュリティの必要性が高まっている。これに伴い、大容量のデータを高速に暗号化することのできる暗号処理装置の必要性が、高まっている。大容量データに対応するために、共通鍵暗号機能を用いることが有効である。その共有鍵暗号としては、例えば、ＴＤＥＳ（Ｔｒｉｐｌｅ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、及びＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などが挙げられる。また、高速化を実現するためには、例えば、ハードウェアによって暗号処理装置を実現することが有効である。
【０００３】
共通鍵暗号機能を搭載した暗号処理装置においては、サイドチャネル攻撃の一つである電力差分解析（ＤＰＡ  ：Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）の脅威が拡大している（例えば、非特許文献１；Ｐａｕｌ  Ｋｏｃｈｅｒ、  Ｊｏｓｈｕａ  Ｊａｆｆｅ、  Ｂｅｎｊａｍｉｎ  Ｊｕｎ、  “Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｌａｔｅｄ  Ａｔｔａｃｋｓ”、  １９９８．参照）。
【０００４】
サイドチャネル攻撃では、暗号化処理時に生じるサイドチャネル情報（例えば、消費電力、電磁波、及び処理時間など）を利用して、暗号の秘密鍵が推定される。暗号処理装置においては、暗号化処理の途中で生成される中間データにより、消費電力が異なることがある。ＤＰＡでは、消費電力を計測することにより、中間データを推測し、秘密鍵が推測される。なお、サイドチャネル情報として電磁波などを用いた場合も、同様である（例えば、非特許文献２；Ｋ．  Ｇａｎｄｏｌｆｉ、  Ｃ．  Ｍｏｕｒｔｅｌ、  ａｎｄ  Ｆ．  Ｏｌｉｖｉｅｒ、  “Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ａｎａｌｙｓｉｓ：  Ｃｏｎｃｒｅｔｅ  Ｒｅｓｕｌｔｓ、”  ＣＨＥＳ  ２００１、  ＬＮＣＳ  ２１６２、  ｐｐ．２５１−２６２、  ２００１．参照）。
【０００５】
ＤＰＡの対策に関連する技術として、特許文献１（特開２０００−３０５４５３）に記載された暗号化装置が挙げられる。この暗号化装置においては、中間データ制御手段が、乱数を入力として、中間データを乱数に依存して変化させる乱数依存中間データ変更操作を中間データ変更要求の発生時点で行う点が記載されている。この暗号化装置では、暗号化処理の中間段階で必要なデータが乱数に依存して変化する。中間データ間の演算を行なっている時点の電力を測定することによって中間データの情報を引き出そうとしても、中間データの値が乱数の影響を受けているために、乱数の影響によって消費電力が変化しているのか、実際の暗号化処理に必要なデータの影響によって消費電力が変化しているのかを判断することが困難となる。そのため、ＤＡＰに対する耐性を高めることができる。
【０００６】
しかしながら、特許文献１に記載された暗号化装置では、乱数によって変化されたデータに対して暗号化処理が行われるため、処理が複雑化し、回路規模の増大してしまう。また、及び処理能力も低下してしまう。
【０００７】
一方、特許文献２（特開２００５−３１４７１）には、処理アルゴリズムを複雑化させることなく、暗号解析の困難性を高めることを課題とした、暗号処理装置が開示されている。図１は、特許文献２に記載された暗号処理装置を示す図である。図１に示されるように、この暗号処理装置は、Ｆ関数部３００、第１データ格納部３１０、及び第２データ格納部３２０を有している。この暗号処理装置においては、Ｆ関数部３００で得られた中間データ出力値は、排他論理和部３０６を介して、第１データ格納部３１０に含まれるＲレジスタ３１２およびＬレジスタ３１１にそのまま格納される。また、排他論理和部３０６の出力データの反転データが、第２データ格納部３２０に含まれるＲ’レジスタ３２２及びＬ’レジスタ３３２に格納される。この結果、レジスタ格納処理におけるハミングウェイトの和を一定に保つことができる。ハミングウェイトは、消費電力に影響を与える。ハミングウェイトの和を一定に保つことにより、消費電力からハミングウェイトを推測することが困難になり、消費電力の変化に基づき解析の困難性を高めることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−３０５４５３
【特許文献２】特開２００５−３１４７１
【非特許文献】
【０００９】
【非特許文献１】Ｐａｕｌ  Ｋｏｃｈｅｒ、  Ｊｏｓｈｕａ  Ｊａｆｆｅ、  Ｂｅｎｊａｍｉｎ  Ｊｕｎ、  “Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｌａｔｅｄ  Ａｔｔａｃｋｓ”、  １９９８．
【非特許文献２】Ｋ．  Ｇａｎｄｏｌｆｉ、  Ｃ．  Ｍｏｕｒｔｅｌ、  ａｎｄ  Ｆ．  Ｏｌｉｖｉｅｒ、  “Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ａｎａｌｙｓｉｓ：  Ｃｏｎｃｒｅｔｅ  Ｒｅｓｕｌｔｓ、”  ＣＨＥＳ  ２００１、  ＬＮＣＳ  ２１６２、  ｐｐ．２５１−２６２、  ２００１．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
暗号処理装置では、通常、入力データに対して、複数回のラウンド処理が実施され、出力データが得られる。各ラウンド処理で得られる中間データは、レジスタに格納される。レジスタに格納される中間データは、ラウンド処理が実行されるたびに、変化する。消費電力の変化量は、レジスタに格納されたデータが変化したときのハミング重み及びハミング距離に依存する。従って、消費電力の変化を計測することにより、計測結果からハミング重み又はハミング距離が推測され、その推測結果により秘密鍵が特定される可能性がある。なお、暗号処理装置がソフトウェアにより実現される場合には、ハミング重みが消費電力に影響を与え易い。一方、暗号処理装置がハードウェアにより実現される場合には、ハミング距離（データ遷移量）が消費電力に影響を与え易い。
【００１１】
既述の特許文献２に記載された暗号処理装置によれば、ハミング重みが消費電力に影響を与える主要因である場合には、ＤＰＡ耐性を有する。しかし、特許文献２には、データ遷移量に関する記載がない。特許文献２に記載された暗号処理装置においては、データ遷移量の点では、ＤＰＡ耐性がむしろ悪化していると考えられる。以下に、この点について説明する。
【００１２】
図２は、図１に記載の暗号化処理回路における、排他論理和部３０６の出力データ、ハミング重み、及びデータ遷移量の関係の一例を示す図である。図１には、排他論理和部３０６の出力データ、Ｒレジスタ３１２に格納されるデータ、Ｒ’レジスタに格納されるデータ、ハミング重み、及びデータ遷移量の関係が示されている。ハミング重みは、Ｒレジスタ、Ｒ’レジスタ、及びＲレジスタとＲ’レジスタとの和、について、示されている。データ遷移量も、同様に、Ｒレジスタ、Ｒ’レジスタ、及びＲレジスタとＲ’レジスタとの和について、示されている。なお、実際には、各データは３２ビットであるが、以下では、３２ビット中の特定の４ビットに着目して説明する。
【００１３】
図２に示されるように、時刻ｔ＝０の排他的論理和部３０６の出力データ（Ｒレジスタ３１２に格納されるデータ）が、「４’ｂ００００」であるものとする。そして、時刻ｔ＝０〜時刻ｔ４までの間において、ハミング重みが１ずつ増えるように、出力データが変化するものとする。また、時刻ｔ＝５〜時刻ｔ＝９までの間においては、データの遷移量が０から１ずつ増えるように、出力データが変化しているものとする。
【００１４】
まず、ハミング重みについて説明する。時刻ｔ＝０〜時刻ｔ＝４において、Ｒレジスタでは、ハミング重みはが、０から４まで、１ずつ増加する。これに対して、Ｒ’レジスタでは、ハミング重みが、４から０まで、１ずつ減少する。その結果、各時刻では、Ｒレジスタのハミング重みとＲ’レジスタのハミング重みの和が、常に４になる。また、ｔ＝５以降も同様に、各時刻におけるハミング重みの和は４であり、ハミング重みの和が一定であることが確認できる。
【００１５】
次いで、データ遷移量について説明する。時刻ｔ＝５〜時刻ｔ＝９において、Ｒレジスタでは、前時刻からのデータ遷移量が、０から４まで、１ずつ増加する。Ｒ’レジスタでも、同様に、データ遷移量が０から４まで、１ずつ増加する。その結果、Ｒレジスタのデータ遷移量とＲ’レジスタのデータ遷移量との和は、０から８まで、２ずつ増加している。従って、データ遷移量の変化が消費電力を変化させる場合には、消費電力からデータ遷移量が推測されてしまう可能性がある。その結果、ＤＰＡによる攻撃を許してしまう可能性がある。また、データ遷移量の和は、未対策時と比較して２倍になる。したがって、データ遷移量の観点からは、ＤＰＡ耐性がむしろ悪化しているともいえる。
【課題を解決するための手段】
【００１６】
本発明に係る暗号処理装置は、処理対象データを取得し、前記処理対象データにラウンド処理を施して中間データを生成する、ラウンド処理部と、乱数データを生成する乱数データ生成部と、前記中間データまたは前記乱数データを格納する記憶回路と、前記記憶回路に前記中間データと前記乱数データとのうちのどちらを格納するかを選択する選択制御部とを具備する。前記選択制御部は、前記中間データが格納された後に前記乱数データが格納されるように、前記記憶回路に格納するデータを選択する。
【００１７】
本発明に係る暗号処理方法は、処理対象データを取得し、前記処理対象データにラウンド処理を施して中間データを生成するステップと、乱数データを生成するステップと、記憶回路に、前記中間データまたは前記乱数データを格納するステップと、前記記憶回路に前記中間データと前記乱数データとのうちのどちらを格納するかを選択するステップとを具備する。前記選択するステップは、前記中間データが格納された後に前記乱数データが格納されるように、前記記憶回路に格納するデータを選択するステップを含む。
【発明の効果】
【００１８】
本発明によれば、ＤＰＡ攻撃に対する耐性を高めることのできる、暗号処理装置および暗号処理方法が提供される。
【図面の簡単な説明】
【００１９】
【図１】特許文献２に記載された暗号処理装置を示す図である。
【図２】出力データ、ハミング重み、及びデータ遷移量の関係の一例を示す図である。
【図３】暗号処理装置を示す構成図である。
【図４】暗号処理装置の動作方法を示すタイミングチャートである。
【図５】変形例に係る暗号処理装置を示す概略図である。
【発明を実施するための形態】
【００２０】
以下に、図面を参照しつつ、本発明の実施形態について説明する。
【００２１】
図３は、本実施形態に係る暗号処理装置１を示す構成図である。この暗号処理装置１は、入力データ（Ｉｎｐｕｔ;平文）と、秘密鍵データとに基づいて、入力データに対して暗号処理を施して暗号文を示す出力データを生成するように構成されている。この暗号処理装置１は、ハードウェアにより実現される。
【００２２】
図３に示されるように、暗号処理装置１は、セレクタ１０、レジスタ部２（記憶回路部）、レジスタ入力セレクタ(３−１、３−２)、レジスタ出力セレクタ５、ラウンド処理部４、レジスタ６、ラウンド鍵生成部７、乱数生成部８、及び選択制御部９を備えている。レジスタ部２は、複数の記憶回路として、複数のレジスタ（２−１、２−２）を備えている。
【００２３】
セレクタ１０は、入力データ（平文）と、ラウンド処理部４の出力データ（中間データ）とのうちの一方を選択し、出力するように構成されている。セレクタ１０は、開始信号Ｓｔａｒｔを取得し、開始信号Ｓｔａｒｔに基づいて、入力データと中間データとのうちのいずれかを選択する。なお、開始信号Ｓｔａｒｔは、図示しない開始信号生成回路により生成される。選択されたデータ（以下、第１データと称す）は、レジスタ入力セレクタ３−１及びレジスタ入力セレクタ３−２に、供給される。
【００２４】
乱数生成部８は、乱数データを生成する回路である。生成された乱数データは、レジスタ入力セレクタ３−１及びレジスタ入力セレクタ３−２に供給される。
【００２５】
選択制御部９は、レジスタ入力セレクタ３−１、レジスタ入力セレクタ３−２、及びセレクタ５の動作を制御する回路である。選択制御回路９は、選択制御信号を生成し、レジスタ入力セレクタ３−１、レジスタ入力セレクタ３−２、及びセレクタ５に供給する。
【００２６】
レジスタ入力セレクタ３−１は、選択制御信号に基づいて、第１データと、乱数データとのうちの一方を選択する。具体的には、レジスタ入力セレクタ３−１は、選択制御信号がハイレベル「１」である場合に第１データを選択し、選択制御信号がローレベル「０」である場合に乱数データを選択するように構成されている。そして、クロック信号ＣＬＫがハイレベルに立ち上がったタイミングで、選択したデータをレジスタ２−１に格納する。なお、クロック信号ＣＬＫは、図示しないクロック信号生成回路により生成される。
【００２７】
同様に、レジスタ入力セレクタ３−２も、選択制御信号に基づいて、第１選択データと乱数データとのうちの一方を選択する。そして、クロック信号ＣＬＫがハイレベルに立ち上がったタイミングで、選択したデータをレジスタ２−２に格納する。なお、レジスタ入力セレクタ３−１及びレジスタ入力セレクタ３−２は、一方のセレクタが第１データを選択している場合に、他方のセレクタが乱数データを選択するように、設定されている。すなわち、レジスタ入力セレクタ３−２は、選択制御信号がローレベル「０」である場合に第１データを選択し、選択制御信号がハイレベル「１」である場合に乱数データを選択するように構成されている。
【００２８】
各レジスタ２（２−１、２−２）は、第１データ又は乱数データを格納する。また、各レジスタ２は、保持しているデータを、セレクタ５に供給する。
【００２９】
セレクタ５は、選択制御信号に基づいて、複数のレジスタ２から供給された複数のデータから、第１データを選択する。そして、クロック信号ＣＬＫがハイレベルに立ち上がったタイミングで、選択した第１データを、処理対象データとしてラウンド処理部４に供給する。具体的には、セレクタ５は、選択制御信号がローレベル「０」である場合にレジスタ２−１に格納されたデータを選択し、選択制御信号がハイレベル「１」である場合にレジスタ２−２に格納されたデータを選択するように、構成されている。
【００３０】
ラウンド鍵生成部７は、予め準備された秘密鍵データを取得し、秘密鍵データに基づいて、ラウンド鍵データを生成する。ラウンド鍵データは、ラウンド処理部４に供給される。
【００３１】
ラウンド処理部４は、セレクタ５から処理対象データを取得すると、ラウンド鍵データを用いて処理対象データにラウンド処理を施す。ラウンド処理の結果、中間データが生成される。中間データは、既述のように、セレクタ１０に供給される。なお、ラウンド処理の実行回数が規定回数に達している場合には、ラウンド処理の結果得られたデータは、出力データとして、レジスタ６に格納される。具体的には、ラウンド処理の実行回数が規定回数に達した場合には、図示しない終了信号生成回路が、ハイレベルレベルの信号を終了信号ＥＮＤとしてラウンド処理部４に供給する。ラウンド処理部４は、終了信号ＥＮＤを取得した場合に、出力データをレジスタ６に格納する。
【００３２】
レジスタ６は、本暗号処理装置１の結果として、出力データを出力する。
【００３３】
続いて、本実施形態に係る暗号処理装置１の動作方法について説明する。図４は、暗号処理装置１の動作方法を示すタイミングチャートである。図４には、クロック信号［ＣＬＫ］、秘密鍵データ［Ｋｅｙ］、入力データ［Ｄ＿ｉｎ］、乱数データ［Ｒａｎｄｏｍ］、ラウンド鍵データ［Ｋｉ］、開始信号［Ｓｔａｒｔ］、選択制御信号［Ｓｅｌ］、レジスタ２−１に格納されるデータ［Ｒｅｇ＿１］、レジスタ２−２に格納されるデータ［Ｒｅｇ＿２］、ラウンド処理部４に供給されるデータ（処理対象データ）［Ｆ＿ｉｎ］、ラウンド処理部４が出力するデータ［Ｆ＿ｏｕｔ］、終了信号［Ｅｎｄ］、及び出力データ［Ｒｅｇ＿ｏ］が示されている。
【００３４】
図４に示されるように、クロック信号ＣＬＫがローレベルからハイレベルに立ち上がるタイミングが、時刻ｔ０、時刻ｔ１、時刻ｔ２、・・・時刻ｔｎとして記載されている。
【００３５】
まず、時刻ｔ０から時刻ｔ１までの動作について説明する。
【００３６】
時刻ｔ０において、暗号処理装置１が動作を開始したとする。すると、開始信号Ｓｔａｒｔとして、ハイレベルの信号が供給される。また、秘密鍵データ［Ｋｅｙ］として、秘密鍵データＫｅｙが供給される。また、入力データ［Ｄ＿ｉｎ］として、入力データＤ０が供給される。
【００３７】
開始信号Ｓｔａｒｔとしてハイレベルの信号が供給されると、セレクタ１０が、第１データとして、入力データＤ０を選択する。また、選択制御部９は、選択制御信号Ｓｅｌとして、ハイレベルの信号を供給する。これにより、レジスタ入力セレクタ３−１は第１データ（入力データＤ０）を選択し、レジスタ入力セレクタ３−２は乱数データＲ０を選択する。すなｗち、選択制御部９は、第１データを格納するレジスタ（選択レジスタ）として、レジスタ２−１を選択したことになる。なお、以下の説明において、選択レジスタとして選択されなかったレジスタ２−２は、非選択レジスタと記載される。
【００３８】
次いで、時刻ｔ１から時刻ｔ２までの動作について説明する。
【００３９】
クロック信号ＣＬＫがハイレベルに立ち上がったとき（時刻ｔ１）に、レジスタ入力セレクタ３−１は、選択した第１データ（入力データＤ０）をレジスタ２−１（選択レジスタ）に格納する。これにより、レジスタ２−１に格納されるデータＲｅｇ＿１は、入力データＤ０になる。また、レジスタ入力セレクタ３−１は、選択した乱数データＲ０を、レジスタ２−２（非選択レジスタ）に格納する。これにより、レジスタ２−２に格納されるデータＲｅｇ＿２は、乱数データＲ０になる。各レジスタ２にデータが格納された後、開始信号Ｓｔａｒｔは、ロウレベルに戻される。
【００４０】
また、ラウンド鍵生成部７は、秘密鍵データＫｅｙに基づいて、ラウンド鍵データＫ１を生成する。
【００４１】
その後、選択制御部９は、選択制御信号Ｓｅｌのレベルを反転させ、ロウレベルの信号を供給する。これにより、セレクタ５は、レジスタ２−１に格納されているデータ（第１データ＝入力データＤ０）を選択し、ラウンド処理部４へ処理対象データとして供給する。すなわち、処理対象データ［Ｆ＿ｉｎ］は、入力データＤ０になる。また、選択制御部９は、選択制御信号Ｓｅｌのレベルを反転させたことにより、選択レジスタ（第１データが格納されるレジスタ）を、レジスタ２−１からレジスタ２−２に変更したことになる。すなわち、変更後の選択レジスタは、レジスタ２−２になる。また、レジスタ２−１は、変更後の非選択レジスタになる。
【００４２】
ラウンド処理部４は、処理対象データ（入力データＤ０）を取得すると、処理対象データに対して、ラウンド処理を施し、中間データＤ１を生成する。すなわち、ラウンド処理部４が出力するデータ［Ｆ＿ｏｕｔ］は、中間データＤ１になる。
【００４３】
中間データＤ１が生成された段階では、開始信号Ｓｔａｒｔは、ロウレベルに戻されている。そのため、セレクタ１０は、第１データとして、中間データＤ１を選択する。このとき、選択制御信号Ｓｅｌがロウレベルであるため、セレクタ３−１が乱数データＲ１を選択し、セレクタ３−２が中間データＤ１を選択する。
【００４４】
次いで、時刻ｔ２以降の動作について説明する。クロック信号ＣＬＫが立ち上がったタイミング（時刻ｔ２）において、セレクタ３−１が乱数データＲ１をレジスタ２−１（変更後の非選択レジスタ）に格納する。すなわち、レジスタ２−１に格納されるデータ［Ｒｅｇ＿１］は、乱数データＲ１になる。また、セレクタ３−２は、中間データＤ１を、レジスタ２−２（変更後の選択レジスタ）に格納する。すなわち、レジスタ２−２に格納されるデータ［Ｒｅｇ＿２］は、中間データＤ１になる。
【００４５】
上述のような処理が、選択制御信号Ｓｅｌが反転されながら、規定の回数（ｎ回）繰り返される。そして、ラウンド処理部４がラウンド処理を行った回数が規定回数に達すると、終了信号Ｅｎｄとして、ハイレベルの信号が供給される。すると、クロック信号ＣＬＫがハイレベルに立ち上がったタイミング（時刻ｔｎ）において、ラウンド処理部４から出力データＤｎがレジスタ６に格納される。レジスタ６は、出力データＤｎを、暗号文として出力する。
【００４６】
上述のような動作によれば、中間データを格納する各レジスタ（２−１、２−２）では、中間データと乱数データに格納されることになる。そのため、各レジスタ（２−１、２−２）におけるデータ遷移量は、ランダムな値になる。従って、攻撃者は、消費電力などのサイドチャネル情報を取得できたとしても、乱数データに示される値を知ることが出来なければ、実際のデータ遷移量を推測することはできない。すなわち、本実施形態に係る暗号処理装置１は、ハードウェアにより実現されるものであるにもかかわらず、ＤＰＡに対する耐性を高めることができる。
【００４７】
また、本実施形態によれば、入力データ又は中間データが、処理対象データとして、ラウンド処理部４に供給される。そのため、ラウンド処理部４は、一般的な暗号アルゴリズムをそのまま使用し、ラウンド処理を実行することが可能である。処理対象データ自体が乱数などによって操作されることはないので、暗号アルゴリズムの複雑化、及び回路規模の増加を抑えることが可能である。
【００４８】
なお、本実施形態では、入力データとして平文が用いられ、出力データとして暗号文が出力される場合について説明した。ただし、但し、入力データとして暗号文を用い、出力データとして平文が出力されてもよい。
【００４９】
また、本実施形態では、図４に示されるように、乱数生成部８が、クロック信号ＣＬＫが立ち上がるタイミングで、乱数データの値を変化させている場合について説明した。但し、乱数データは、固定値であってもよい。
【００５０】
また、本実施形態では、レジスタ部２が２個のレジスタを有する場合について説明した。但し、レジスタ部２に含まれるレジスタの数は２個に限定されない。各レジスタが、中間データが格納された後に乱数データが格納されるように構成されていれば、レジスタ部２に含まれるレジスタの個数は３個以上であっても構わない。
【００５１】
また、本実施形態では、ラウンド処理部４が出力した中間データが、セレクタ１０及びレジスタ入力セレクタ３を介して、再びレジスタ部２に格納される場合について説明した。すなわち、本実施形態では、暗号処理装置１が、同一のラウンド処理部４を用いてラウンド処理が複数回繰り返される、ループ構成を有している場合について説明した。但し、暗号処理装置１として、複数の回路が直列に接続されたパイプライン構成が用いられてもよい。以下に、この点について説明する。
【００５２】
図５は、本実施形態の変形例に係る暗号処理装置１を示す概略図である。この変形例に係る暗号処理装置１は、複数の回路部分（第１回路部分１１−１、第２回路部分１１−２、・・・）を備えている。なお、セレクタ１０は省略されている。各回路部分１１は、図３に示した本実施形態に係る暗号処理装置１と同様に、レジスタ入力セレクタ３、レジスタ部２、セレクタ５、及びラウンド処理部４を備えており、その動作も図３に示した装置と同様である。初段の回路部分（第１回路部分１１−１）に対しては、入力データが、レジスタ入力セレクタ３に供給される。また、上段の回路部分１１においてラウンド処理部４により生成された中間データは、後段の回路部分１１に含まれるレジスタ入力セレクタ３に供給される。このようなパイプライン構成を採用した場合であっても、レジスタ部２に含まれる各レジスタ（２−１、２−２）には、中間データが格納されたあとに乱数データが格納されることになる。従って、各レジスタ（２−１、２−２）におけるデータ遷移量が攻撃者に推測されることが防止され、ＤＰＡ耐性を高めることが可能である。
【符号の説明】
【００５３】
１  暗号処理装置
２  レジスタ部
３  レジスタ入力セレクタ
４  ラウンド処理部
５  レジスタ出力セレクタ
６  レジスタ
７  ラウンド鍵生成部
８  乱数生成部
９  選択制御部
１０  セレクタ
１１−１  第１回路
１１−２  第２回路
３００  Ｆ関数部
３０６  排他論理和（ＸＯＲ）部
３１０  第１データ格納部
３１１  Ｌレジスタ
３１２  Ｒレジスタ
３２０  第２データ格納部
３２２  Ｒ’レジスタ
３３２  Ｌ’レジスタ
【図１】
2011169977.tif 000003
【図２】
2011169977.tif 000004
【図３】
2011169977.tif 000005
【図４】
2011169977.tif 000006
【図５】
2011169977.tif 000007