(57)【要約】      （修正有）【課題】電力解析の難易度を上げ、サイドチャネル攻撃に対する耐タンパー性を損なうことなく、消費電力を低減するための技術を提供する。【解決手段】暗号化処理装置１００において、設定された暗号化モードに応じて複数の暗号化処理部１４１〜１４４のそれぞれ若しくは１つを転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送する。暗号化処理が完了した暗号化処理部に対する電力供給を停止させる。１つを転送先とした場合、更に、複数の暗号化処理部のうち上記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送する。【選択図】図１
2013143653.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータに対して暗号化処理を行う複数の暗号化処理部の動作制御を行う情報処理装置であって、
設定された暗号化モードに応じて前記複数の暗号化処理部のそれぞれ若しくは１つを転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送する転送手段と、
暗号化処理が完了した暗号化処理部に対する電力供給を停止させる停止手段と
を備え、
前記転送手段は、
前記１つを転送先とした場合、更に、前記複数の暗号化処理部のうち前記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送する
ことを特徴とする情報処理装置。
【請求項２】
前記転送手段は、前記暗号化モードとしてＣＢＣモードが設定された場合、前記複数の暗号化処理部のうち１つの暗号化処理部を転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送し、更に、前記複数の暗号化処理部のうち前記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記転送手段は、前記１つの暗号化処理部に対して最初のブロックデータを転送すると共に、前記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記転送手段は、前記暗号化モードとしてＣＴＲモードが設定された場合、前記複数の暗号化処理部のそれぞれを転送先とし、該それぞれに対する電力供給を行うと共に、入力されたデータをブロック単位に順次、前記それぞれに転送する
ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記停止手段は、前記情報処理装置へのブロックデータの入力を停止した場合にも前記暗号化処理部に対する電力供給を停止させることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
更に、
前記停止手段が電力供給を停止させる前に、前記暗号化処理部による処理結果を外部に出力する手段を備えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
入力されたデータに対して暗号化処理を行う複数の暗号化処理部の動作制御を行う情報処理装置が行う情報処理方法であって、
前記情報処理装置の転送手段が、設定された暗号化モードに応じて前記複数の暗号化処理部のそれぞれ若しくは１つを転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送する転送工程と、
前記情報処理装置の停止手段が、暗号化処理が完了した暗号化処理部に対する電力供給を停止させる停止工程と
を備え、
前記転送工程では、
前記１つを転送先とした場合、更に、前記複数の暗号化処理部のうち前記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化技術に関するものである。
【背景技術】
【０００２】
近年、オフィスに限らず、一般家庭においてもインターネット環境が安価に利用できるようになってきた。各種デジタル機器間でデータ通信を行なう機会も増えてきており、インターネット上でデータ通信を行うことも多くなっている。そして、このようなデジタル機器間の通信においてはデータ通信の暗号化が必須であり、様々なデータ長のデータが暗号処理の対象となっている。
【０００３】
例えば、ネットワークカメラでは、大量の画像データが暗号処理されて送受信されると同時に、パスワードのような短いデータ長のデータの暗号処理を行わなければならない場合がある。これらの同時に発生し得る暗号処理要求（以下、暗号／復号処理要求の単位をジョブと呼ぶ）に対し、単に高速に処理するだけでなく、各ジョブに対してＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を損なうことなく処理されなければならない。従来の暗号処理装置は、ＱｏＳを向上させるために、複数のジョブの各々を所定のデータ長ずつ順に実行することで、複数のジョブの暗号処理を並行に処理していた。
【０００４】
特許文献１で開示されている暗号処理装置はその一例であり、Ｍ個（Ｍ≧２）の暗号処理部、Ｎ個（Ｎ≧２）のデータ保持部、データパス制御部、リソース管理部、リソース選択部から構成される。この構成における各構成要素の処理内容は下記の通りである。
【０００５】
Ｍ個の暗号処理部は、設定されたパラメータに従って暗号化処理を行う。Ｎ個のデータ保持部は、プロセッサからの暗号処理ジョブを受け付ける。データパス制御部は、Ｍ個の暗号処理部とＮ個のデータ保持部との間に介在し、Ｎ個のデータ保持部の１つに保持されたデータとパラメータをＭ個の暗号処理部の１つに転送する。リソース管理部は、各暗号処理部が処理中か否か、処理中の場合はどのデータ保持部のジョブに対する暗号処理を行っているのかを管理する。リソース選択部は、Ｎ個のデータ保持部の１つに保持されているデータ及びパラメータを順次ブロック単位に、Ｍ個のうちの１つの暗号処理部に転送し、暗号処理部で生成された暗号化データを、データ保持部に転送する。
【０００６】
上記の先行技術を用いると、複数の暗号処理をブロック単位でほとんどオーバーヘッドなく切り替えることができる。一方、それほど多くの暗号処理を行なう必要がないときには、動作させていない複数の暗号処理部の消費電力を低減させる技術として、信号処理回路に対して信号処理を行なっていない間にクロック信号の供給を停止する技術が広く知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2011-142411号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の先行技術および公知技術を用いると、多くの暗号処理要求があるときは複数の暗号処理部をブロック単位で切り替え、QoSを損なうことなく効率よく暗号処理を行うことができる。しかしながら、暗号処理要求が少ないときに動作させていない暗号処理部への電力供給を停止してしまうと、耐タンパー性が低下する可能性がある。複数の暗号処理部のうち、１つの暗号処理部のみが動作していると、動作中の暗号処理部に対応する電力のみ観測することができ、サイドチャネル攻撃を行いやすくなるからである。
【０００９】
本発明は、上記の問題に鑑みてなされたものであり、電力解析の難易度を上げ、サイドチャネル攻撃に対する耐タンパー性を損なうことなく、消費電力を低減するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の目的を達成するために、例えば、本発明の情報処理装置は、入力されたデータに対して暗号化処理を行う複数の暗号化処理部の動作制御を行う情報処理装置であって、設定された暗号化モードに応じて前記複数の暗号化処理部のそれぞれ若しくは１つを転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送する転送手段と、暗号化処理が完了した暗号化処理部に対する電力供給を停止させる停止手段とを備え、前記転送手段は、前記１つを転送先とした場合、更に、前記複数の暗号化処理部のうち前記１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送することを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、電力解析の難易度を上げ、サイドチャネル攻撃に対する耐タンパー性を損なうことなく、消費電力を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】暗号化処理装置１００の構成例を示すブロック図。
【図２】暗号処理部１４１〜１４４に対するブロックの割り当てを示す図。
【図３】暗号化処理装置１００を構成する各部の動作を示すフローチャート。
【図４】暗号処理部１４１〜１４４に対するブロックの割り当てを示す図。
【図５】暗号化処理装置１００を構成する各部の動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１４】
［第１の実施形態］
先ず、本実施形態に係る暗号化処理装置の構成例について、図１のブロック図を用いて説明する。図１に示した暗号化処理装置１００は、３個のジョブを同時に処理可能とすべく、データ保持部１１０，１２０，１３０を有している。然るに、Ｎ（Ｎは２以上の整数）個のジョブを同時に処理可能とするためには、このようなデータ保持部をＮ個有するようにすればよい。
【００１５】
プロセッサ１０１は、主記憶装置１０２に格納されているコンピュータプログラムやデータを用いて処理を実行することで、暗号化処理装置１００を構成する各部の動作制御を行う。
【００１６】
主記憶装置１０２には、プロセッサ１０１が暗号化処理装置１００を構成する各部の動作制御を行うために用いるコンピュータプログラムやデータ、平文データ、暗号文データ、暗号処理パラメータ等が格納されている。この暗号処理パラメータには、現在設定されている暗号化モード、これから行う処理が暗号化／復号化の何れであるのかを示すデータ、鍵データ、が含まれている。更に、暗号処理パラメータには、暗号化モードとしてＣＢＣモードが設定されている場合には、イニシャル・ベクタのデータが含まれているし、暗号化モードとしてＣＴＲモードが設定されている場合には、カウンタ値が含まれている。
【００１７】
プロセッサ１０１と主記憶装置１０２とはシステムバス１０３に接続されており、更にこのシステムバス１０３には、データ保持部１１０，１２０，１３０も接続されている。データ保持部１１０，１２０，１３０は何れも、ジョブ毎に暗号処理パラメータや入出力データを保持しておくためのものである。
【００１８】
ここで、データ保持部１１０，１２０，１３０は何れも同じ構成を有し且つ同じ動作を行うものであるため、ここではデータ保持部１１０を例にとり、データ保持部１１０，１２０，１３０のそれぞれの構成及び動作についてより詳細に説明する。
【００１９】
ＤＭＡＣ１１１（１２１，１３１）は、主記憶装置１０２とデータ保持部１１０（１２０，１３０）との間でデータ転送を行うためのDMAコントローラである。ＤＭＡＣ１１１（１２１，１３１）は、主記憶装置１０２から読み出したデータを、一時的に入力バッファ１１２（１２２，１３２）に格納する。
【００２０】
一方、ＤＭＡＣ１１１（１２１，１３１）を介して主記憶装置１０２に転送されるデータは、出力バッファ１１３（１２３，１３３）に一時的に格納される。然るにＤＭＡＣ１１１（１２１，１３１）は、この出力バッファ１１３（１２３，１３３）に格納されているデータを読み出して主記憶装置１０２に転送する。
【００２１】
中間値保持部１１４（１２４，１３４）は、ジョブの処理開始前に設定されるイニシャル・ベクタのデータを保持すると共に、ジョブの処理中には処理済みブロックの中間値を保持しておくためのものである。
【００２２】
カウンタ１１５（１２５，１３５）は、設定された初期値から１ブロック分処理が進むたびにカウントアップする。鍵データレジスタ１１６（１２６，１３６）は、鍵データを保持しておくためのものである。レジスタ１１７（１２７，１３７）は、暗号化処理、復号化処理の何れを行うのかを示すデータや、共通鍵暗号処理の暗号モード等をジョブ単位で設定するためのものである。
【００２３】
暗号処理部１４１〜１４４は、入力されたデータに対し、入力された暗号処理パラメータを用いて、暗号化または復号の共通鍵暗号処理を行う。本実施形態では、暗号処理部１４１〜１４４は何れも、２つの暗号化モード、即ち、ＣＢＣモード、ＣＲＴモードに対応しており、設定された暗号化モードに従って動作可能であるものとして説明する。もちろん、ほかの暗号化モードに対応するようにしてもかまわない。
【００２４】
データパス制御部１０４は、データ保持部１１０，１２０，１３０に保持されている各ジョブの暗号処理パラメータ及び入力データを暗号処理部１４１〜１４４のそれぞれ若しくは１つに転送する。更にデータパス制御部１０４は、暗号処理部１４１〜１４４から出力された出力データをデータ保持部１１０，１２０，１３０に転送する。
【００２５】
リソース管理部１０５は管理情報レジスタ１０８を内蔵しており、暗号処理部１４１〜１４４が暗号処理中か処理待ち状態か、データ保持部１１０，１２０，１３０が稼働中であるか、等の状態を示す情報を管理情報レジスタ１０８内に保持して管理している。また、管理情報レジスタ１０８は、各ジョブの暗号処理の優先度を設定する。
【００２６】
リソース選択部１０６は、各ジョブをブロック単位で暗号処理部１４１〜１４４のどれに処理させるのかを決定し、決定した先にブロック（ブロックデータ）を転送する。
【００２７】
リソース制御部１０７は、暗号処理部１４１〜１４４を動作させるための制御信号を生成して供給すると共に、クロック信号の供給を制御する。また、リソース制御部１０７は、データ保持部１１０，１２０，１３０、暗号処理部１４１〜１４４への電力供給を制御する。その際、リソース制御部１０７は、リソース管理部１０５が管理情報レジスタ１０８内で管理している情報に基づいて電力制御を行う。
【００２８】
次に、暗号化処理装置１００の動作の一例について、暗号処理部１４１〜１４４に対するブロックの割り当てを示す図２、暗号化処理装置１００を構成する各部の動作を示すフローチャートを記した図３を用いて説明する。
【００２９】
なお、図２において「ブロックx-y」は、ジョブxのｙ番目のブロック処理を行なっている状態、「電力供給停止」は、被処理データ（ブロック）や暗号処理パラメータ、クロック信号の供給だけでなく、電力の供給も停止している状態を示す。「ダミー」は、ジョブとして要求のない暗号処理を行なっている状態を示す。
【００３０】
先ず、プロセッサ１０１が、外部の装置から若しくは暗号化処理装置１００内のメモリからジョブ１を取得したとする（３０１）。ここで、このジョブ１は、ＣＢＣモードの暗号化モードで暗号化を行う対象のデータであるとする。プロセッサ１０１はこのようなジョブ１を取得すると、このジョブ１を主記憶装置１０２に格納する（３０１）。
【００３１】
次にプロセッサ１０１は、データ保持部１１０に対して、ジョブ１を暗号化するために必要な暗号処理パラメータを設定する（３０２）。より詳しくは、ジョブ１に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＢＣモード）を示すデータをレジスタ１１７内に格納する。また、プロセッサ１０１は、イニシャル・ベクタのデータを、中間値保持部１１４に設定する。また、鍵データ（暗号鍵）を鍵データレジスタ１１６に格納するのであるが、プロセッサ１０１がシステムバス１０３を介して鍵データレジスタ１１６に格納するのではなく、鍵生成部や鍵メモリ（共に不図示）から鍵データレジスタ１１６に直接転送される。
【００３２】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（３０２）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（３０２）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（３０３）。
【００３３】
データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ１の被処理データ及び暗号処理パラメータを、リソース選択部１０６が選択した暗号処理部１４１に転送する。更にリソース制御部１０７は、暗号処理部１４１を駆動するためのスタート信号及びクロック信号を暗号処理部１４１に供給すると共に、暗号処理部１４１に対して電力供給を行う。
【００３４】
このとき、暗号処理部１４１〜１４４のうち、暗号処理部１４１のみが稼動しているので、ジョブ１の暗号処理について電力観測しやすい状態となっている。このことは、鍵管理を厳重に行なっていてもサイドチャネル攻撃により鍵探索を行なわれるという脆弱性につながる可能性があることを意味する。このため、リソース制御部１０７は、ジョブ１の最初のブロック処理の間のみ、暗号処理部１４２にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給する。なお、暗号処理部１４２に加えて他の暗号処理部にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給するようにしても良い。
【００３５】
次に、プロセッサ１０１が、外部の装置から若しくは暗号化処理装置１００内のメモリからジョブ２を取得したとする（３０４）。ここで、このジョブ２は、ＣＴＲモードの暗号化モードで暗号化を行う対象のデータであるとする。プロセッサ１０１はこのようなジョブ２を取得すると、このジョブ２を主記憶装置１０２に格納する（３０４）。
【００３６】
次にプロセッサ１０１は、データ保持部１１０に対して、ジョブ２を暗号化するために必要な暗号処理パラメータを設定する（３０５）。より詳しくは、ジョブ２に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＴＲモード）を示すデータをレジスタ１１７内に格納する。また、プロセッサ１０１は、カウンタ１１５を初期化することで、カウンタ１１５によるカウンタ値を０にリセットする。また、鍵データ（暗号鍵）を鍵データレジスタ１１６に格納するのであるが、この格納の工程は、ジョブ１の時と同様である。
【００３７】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（３０５）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（３０５）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（３０６）。
【００３８】
データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ２の被処理データ及び暗号処理パラメータをブロック単位で、暗号処理部１４１〜１４４のそれぞれに対して順次転送する。この転送先をブロック単位で切り替える切り替え動作は、リソース選択部１０６が行う。更にリソース制御部１０７は、暗号処理部１４１〜１４４を駆動するためのスタート信号及びクロック信号を暗号処理部１４１〜１４４に供給すると共に、暗号処理部１４１〜１４４に対して電力供給を行う。
【００３９】
次に、プロセッサ１０１が、ジョブ２の処理中に、外部の装置から若しくは暗号化処理装置１００内のメモリからジョブ３を取得したとする（３０７）。ここで、このジョブ１は、ＣＢＣモードの暗号化モードで暗号化を行う対象のデータであるとする。プロセッサ１０１はこのようなジョブ３を取得すると、このジョブ３を主記憶装置１０２に格納する（３０７）。
【００４０】
次にプロセッサ１０１は、データ保持部１２０に対して、ジョブ３を暗号化するために必要な暗号処理パラメータを設定する（３０８）。より詳しくは、ジョブ３に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＢＣモード）を示すデータをレジスタ１２７内に格納する。また、プロセッサ１０１は、イニシャル・ベクタのデータを、中間値保持部１２４に設定する。また、鍵データ（暗号鍵）を鍵データレジスタ１２６に格納するのであるが、この格納の工程は、ジョブ１の時と同様である。
【００４１】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（３０８）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（３０８）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（３０９）。
【００４２】
ここまでデータパス制御部１０４は、ジョブ２に対する暗号化処理が並列処理可能なＣＴＲモードの暗号処理であったため、ブロック単位で暗号処理部１４１〜１４４に被処理データおよび暗号処理パラメータを順次転送し、並列処理をさせていた。ジョブ２の処理中にジョブ３の暗号処理要求がきたため、データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ３の被処理データおよび暗号処理パラメータを、リソース選択部１０６が選択した暗号処理部１４１に転送する。そしてジョブ２の処理は、ブロック単位で暗号処理部１４２〜１４４に被処理データおよび暗号パラメータを順次転送するように制御を変える。そして、ジョブ２の暗号化処理が完了すると、リソース制御部１０７は、被処理データおよび暗号処理パラメータを転送していた暗号処理部１４２〜１４４へのスタート信号及びクロック信号の供給を停止すると共に、電力供給も停止する。次に、ジョブ３の暗号化処理が完了すると、リソース制御部１０７は、被処理データおよび暗号処理パラメータを転送していた暗号処理部１４１へのスタート信号及びクロック信号の供給を停止すると共に、電力供給も停止する。
【００４３】
次に、プロセッサ１０１が、外部の装置から若しくは暗号化処理装置１００内のメモリからジョブ４を取得したとする（３１０）。ここで、このジョブ４は、ＣＢＣモードの暗号化モードで暗号化を行う対象のデータであるとする。プロセッサ１０１はこのようなジョブ４を取得すると、このジョブ４を主記憶装置１０２に格納する（３１０）。
【００４４】
次にプロセッサ１０１は、データ保持部１１０に対して、ジョブ４を暗号化するために必要な暗号処理パラメータを設定する（３１１）。より詳しくは、ジョブ４に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＢＣモード）を示すデータをレジスタ１１７内に格納する。また、プロセッサ１０１は、イニシャル・ベクタのデータを、中間値保持部１１４に設定する。また、鍵データ（暗号鍵）を鍵データレジスタ１１６に格納するのであるが、この格納の工程は、ジョブ１の時と同様である。
【００４５】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（３１１）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（３１１）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（３１２）。
【００４６】
データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ４の被処理データ及び暗号処理パラメータを、リソース選択部１０６が選択した暗号処理部１４１に転送する。更にリソース制御部１０７は、暗号処理部１４１を駆動するためのスタート信号及びクロック信号を暗号処理部１４１に供給すると共に、暗号処理部１４１に対して電力供給を行う。
【００４７】
このとき、暗号処理部１４１〜１４４のうち、暗号処理部１４１のみが稼動しているので、ジョブ４の暗号処理について電力観測しやすい状態となっている。このことは、鍵管理を厳重に行なっていてもサイドチャネル攻撃により鍵探索を行なわれるという脆弱性につながる可能性があることを意味する。このため、リソース制御部１０７は、ジョブ４の最初のブロック処理の間のみ、暗号処理部１４２にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給する。なお、暗号処理部１４２に加えて他の暗号処理部にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給するようにしても良い。
【００４８】
このように、入力されたデータに対して暗号化処理を行う複数の暗号化処理部の動作制御を行う情報処理装置としてのプロセッサ１０１は、暗号化処理装置１００を次のように動作させる。先ず、設定された暗号化モードに応じて複数の暗号化処理部のそれぞれ若しくは１つを転送先とし、該転送先への電力供給を行うと共に、入力されたデータをブロック単位に該転送先に転送し、暗号化処理が完了した暗号化処理部に対する電力供給を停止させる。この転送において、１つを転送先とした場合、更に、複数の暗号化処理部のうちこの１つ以外の１以上の暗号化処理部に対してダミーのブロックデータを転送する。
【００４９】
このように、ジョブの処理開始時に複数の暗号処理部が稼動しないときに、１ブロック分の暗号処理を擬似的に非稼動の暗号処理部で行なうことにより、ジョブの処理開始時の１ブロック目では２つの暗号処理部が動作することになる。このため、電力観測により鍵探索を行なおうとしても２つの暗号処理が混在して観測されることになり、分離は困難である。２ブロック目以降は稼動している暗号処理部は１つだけなので消費電力も１つの暗号処理部を１ブロック分動作させただけしか増加せず、消費電力低減効果はダミー動作を入れない場合とそれほど変わらない。従ってサイドチャネル攻撃に対する高い耐タンパー性を維持しながら消費電力低減がはかれる。
【００５０】
［第２の実施形態］
暗号化処理装置１００の別の動作の一例について、暗号処理部１４１〜１４４に対するブロックの割り当てを示す図４、暗号化処理装置１００を構成する各部の動作を示すフローチャートを記した図５を用いて説明する。
【００５１】
なお、図４において「ブロックx-y」は、ジョブxのｙ番目のブロック処理を行なっている状態、「電力供給停止」は、被処理データ（ブロック）や暗号処理パラメータ、クロック信号の供給だけでなく、電力の供給も停止している状態を示す。「ダミー」は、ジョブとして要求のない暗号処理を行なっている状態を示す。
【００５２】
ここで、本実施形態で用いるジョブ１のデータ長は、第１の実施形態で登場したジョブ１の２倍である。従って図４、５に示すように、このときの暗号化処理装置１００の動作は、３０１〜３０３の間では第１の実施形態と同様である。
【００５３】
先ず、プロセッサ１０１が、外部の装置から若しくは暗号化処理装置１００内のメモリからジョブ１を取得したとする（３０１）。ここで、このジョブ１は、ＣＢＣモードの暗号化モードで暗号化を行う対象のデータであるとする。プロセッサ１０１はこのようなジョブ１を取得すると、このジョブ１を主記憶装置１０２に格納する（３０１）。
【００５４】
次にプロセッサ１０１は、データ保持部１１０に対して、ジョブ１を暗号化するために必要な暗号処理パラメータを設定する（３０２）。より詳しくは、ジョブ１に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＢＣモード）を示すデータをレジスタ１１７内に格納する。また、プロセッサ１０１は、イニシャル・ベクタのデータを、中間値保持部１１４に設定する。また、鍵データ（暗号鍵）を鍵データレジスタ１１６に格納するのであるが、この格納工程は第１の実施形態と同様である。
【００５５】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（３０２）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（３０２）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（３０３）。
【００５６】
データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ１の被処理データ及び暗号処理パラメータを、リソース選択部１０６が選択した暗号処理部１４１に転送する。更にリソース制御部１０７は、暗号処理部１４１を駆動するためのスタート信号及びクロック信号を暗号処理部１４１に供給すると共に、暗号処理部１４１に対して電力供給を行う。また、リソース制御部１０７は、ジョブ１の最初のブロック処理の間のみ、暗号処理部１４２にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給する。なお、暗号処理部１４２に加えて他の暗号処理部にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給するようにしても良い。
【００５７】
次に、プロセッサ１０１は、ジョブ１の受信を中断する（５０４）。この時点で、ブロック１−１〜１−４の受信は完了しているものとする。そしてプロセッサ１０１は、データ保持部１１０、データパス制御部１０４に対してジョブ１の処理を中断するコマンドを転送する（５０５，５０６）。データパス制御部１０４は、このコマンドを暗号処理部１４１に転送し、暗号処理部１４１にジョブ１の処理を中断させる。
【００５８】
暗号処理部１４１は、ブロック１−４まで処理を行った後、データパス制御部１０４を介して、その中間値をデータ保持部１１０に転送する（５０７）。ここでは暗号処理はブロック処理であるので、ブロックの切れ目まで処理を行うものとする。
【００５９】
ジョブ１の処理が中断されたため、暗号化処理装置１００は不要な電力供給を停止し、消費電力を低減する。しかし、このときジョブ１に対する処理は完了しておらず、データ保持部１１０にはジョブ１の暗号処理パラメータおよびブロック１−１〜１−４の暗号処理を行った結果である中間値のデータが保持されている。
【００６０】
そこで、データ保持部１１０は、内部に保持しているジョブ１の暗号処理パラメータ、すなわち暗号化モード、鍵、カウンタ値および中間値を外部に転送する。中間値は通常、暗号処理されたデータそのものであるのですでに外部へ出力されていればこの転送は不必要である。
【００６１】
データ保持部からの暗号処理パラメータ、中間値データの転送は、データパス制御部１０４内部のリソース管理部１０５が直接制御してもよいし、プロセッサ１０１が制御してもよい。
【００６２】
このようにしてデータ保持部１１０から暗号処理パラメータ、中間値のデータが外部へ転送された後、データ保持部１１０，１２０，１３０、暗号処理部１４１〜１４４は全て電力供給が停止できる状態になる。然るに、リソース制御部１０７は、第１の実施形態で説明したように、データ保持部１１０，１２０，１３０、暗号処理部１４１〜１４４に対するスタート信号及びクロック信号の供給を停止すると共に、電力供給も停止する。
【００６３】
次に、プロセッサ１０１がジョブ１の続きのブロック（未受信のブロック）の受信を再開する（５０９）。リソース制御部１０７は、データ保持部１１０に対するスタート信号及びクロック信号の供給を行うと共に、電力供給も行うことで、データ保持部１１０を動作可能な状態にする（５１０）。
【００６４】
次にプロセッサ１０１は、データ保持部１１０に対して、ジョブ１を暗号化するために必要な暗号処理パラメータを設定する（５１０）。より詳しくは、ジョブ１に対して暗号化処理を行うのか復号化処理を行うのか（ここでは暗号化処理）を示すデータ、及び暗号化モード（ここではＣＢＣモード）を示すデータをレジスタ１１７内に格納する。また、プロセッサ１０１は、イニシャル・ベクタのデータとして、ブロック１−４を暗号処理した中間値を中間値保持部１１４に設定する。また、鍵データ（暗号鍵）を鍵データレジスタ１１６に格納するのであるが、この格納工程は第１の実施形態と同様である。
【００６５】
更にプロセッサ１０１は、被処理データを配置した主記憶装置１０２中のアドレス、転送長、処理結果を格納するアドレス等、主記憶装置１０２中の被処理データをデータパス制御部１０４に転送する為に必要な情報をＤＭＡＣ１１１に設定する（５１０）。そしてその後、プロセッサ１０１は、ＤＭＡＣ１１１を起動する（５１０）ので、ＤＭＡＣ１１１は、被処理データを配置したアドレスから該被処理データを読み出し、暗号処理パラメータと共に、データパス制御部１０４に転送する（５１１）。
【００６６】
データパス制御部１０４は、ＤＭＡＣ１１１によって転送されたジョブ１の被処理データ及び暗号処理パラメータを、リソース選択部１０６が選択した暗号処理部１４１に転送する。更にリソース制御部１０７は、暗号処理部１４１を駆動するためのスタート信号及びクロック信号を暗号処理部１４１に供給すると共に、暗号処理部１４１に対して電力供給を行う。また、リソース制御部１０７は、ジョブ１の処理再開後の最初のブロック処理の間のみ、暗号処理部１４２にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給する。なお、暗号処理部１４２に加えて他の暗号処理部にも電力を供給し、スタート信号、クロック信号およびダミーの被処理データ、暗号処理パラメータを供給するようにしても良い。
【００６７】
このように、ジョブ再開時に複数の暗号処理部が稼動しないときに、１ブロック分の暗号処理を擬似的に非稼動の暗号処理部で行なうことにより、ジョブ再開時の１ブロック目では２つの暗号処理部が動作することになる。このため、電力観測により鍵探索を行なおうとしても２つの暗号処理が混在して観測されることになり、分離は困難である。２ブロック目以降は稼動している暗号処理部は１つだけなので消費電力も１つの暗号処理部を１ブロック分動作させただけしか増加せず、消費電力低減効果はダミー動作を入れない場合とそれほど変わらない。従ってサイドチャネル攻撃に対する高い耐タンパー性を維持しながら消費電力低減がはかれる。
【００６８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013143653.tif 000003
【図２】
2013143653.tif 000004
【図３】
2013143653.tif 000005
【図４】
2013143653.tif 000006
【図５】
2013143653.tif 000007