(57)【要約】【課題】消費電力解析などによりセキュリティ情報が推定されるのを困難にすることが可能なデータ処理装置を提供すること。【解決手段】ＣＰＵ１は、コプロセッサ４に与える入力値をメモリ２の領域に設定する前に、メモリ２の領域に乱数発生器３が発生した乱数を設定する。したがって、演算処理に移行する前後においてメモリ２の値が固定されておらず、状態の変化を消費電力解析などの統計処理で抽出することができなくなり、セキュリティ情報の推定を困難にすることが可能となる。【選択図】図１
2010277327.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによる指示によって演算処理を行なうコプロセッサと、
メモリと、
乱数を発生する乱数発生手段とを含み、
前記プロセッサが前記コプロセッサを使用する前に、該コプロセッサが使用する前記メモリの領域に前記乱数発生手段が発生した乱数が設定される、データ処理装置。
【請求項２】
前記プロセッサは、前記コプロセッサに与える入力値を前記メモリの領域に設定する前に、当該メモリの領域に前記乱数発生手段が発生した乱数を設定する、請求項１記載のデータ処理装置。
【請求項３】
前記プロセッサは、前記コプロセッサに与える入力値を前記メモリの領域に設定する前に、前記コプロセッサに対して当該メモリの領域に前記乱数発生手段が発生した乱数を設定するよう指示する、請求項１記載のデータ処理装置。
【請求項４】
前記コプロセッサは、演算処理を実行する演算手段と、
前記メモリの領域に設定された入力値と前記演算手段による演算結果とを選択的に出力する選択手段とを含み、
前記プロセッサから演算処理の指示がある場合には、前記選択手段が前記入力値を選択して前記演算手段に与え、前記プロセッサから演算処理の指示がない場合には、前記選択手段が前記演算結果を選択して前記演算手段に与える、請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
プロセッサと、
前記プロセッサによる指示によって演算処理を行なうコプロセッサと、
メモリと、
外部から数値を入力する入力手段とを含み、
前記プロセッサが前記コプロセッサを使用する前に、該コプロセッサが使用する前記メモリの領域に前記入力手段によって入力された演算の度に変化する数値が設定される、データ処理装置。
【請求項６】
前記プロセッサは、前記コプロセッサに与える入力値を前記メモリの領域に設定する前に、当該メモリの領域に前記入力手段によって入力された演算の度に変化する数値を設定する、請求項５記載のデータ処理装置。
【請求項７】
前記プロセッサは、前記コプロセッサに与える入力値を前記メモリの領域に設定する前に、前記コプロセッサに対して当該メモリの領域に前記入力手段によって入力された演算の度に変化する数値を設定するよう指示する、請求項５記載のデータ処理装置。
【請求項８】
前記コプロセッサは、演算処理を実行する演算手段と、
前記メモリの領域に設定された入力値と前記演算手段による演算結果とを選択的に出力する選択手段とを含み、
前記プロセッサから演算処理の指示がある場合には、前記選択手段が前記入力値を選択して前記演算手段に与え、前記プロセッサから演算処理の指示がない場合には、前記選択手段が前記演算結果を選択して前記演算手段に与える、請求項５〜７のいずれかに記載のデータ処理装置。
【請求項９】
プロセッサと、
前記プロセッサによる指示によって演算処理を行なうコプロセッサと、
メモリとを含み、
前記コプロセッサは、演算処理を実行する演算手段と、
前記メモリの領域に設定された入力値と前記演算手段による演算結果とを選択的に出力する選択手段とを含み、
前記プロセッサから演算処理の指示がある場合には、前記選択手段が前記入力値を選択して前記演算手段に与え、前記プロセッサから演算処理の指示がない場合には、前記選択手段が前記演算結果を選択して前記演算手段に与える、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ保護機能を有するデータ処理装置に関し、特に、消費電力解析などによってセキュリティ情報が推定されるのを困難にすることが可能なデータ処理装置に関する。
【背景技術】
【０００２】
近年、セキュリティ保護機能を有するセキュリティチップなどのデータ処理装置の開発が進んでいる。このようなデータ処理装置においては、暗号鍵などのセキュリティ情報を用いた暗号化や暗号文の復号を行なうために使用されるコプロセッサが搭載されることが多い。ここで、ＣＰＵ（Central Processing Unit）がコプロセッサに演算処理を行なわせるときの手順を簡単に説明する。
【０００３】
まず、ＣＰＵは、コプロセッサが使用するメモリ領域のうち、入力値を格納する第１のメモリ領域に数値を設定する。そして、ＣＰＵがコプロセッサに対して演算開始を指示する。
【０００４】
コプロセッサは、第１のメモリ領域に格納された数値を読み出して演算を行ない、演算途中のデータを格納する第２のメモリ領域にアクセスしながら演算処理を実行する。そして、コプロセッサは演算処理が終了すると、ＣＰＵに対して演算結果をメモリに格納したことを通知して、処理を終了する。
【０００５】
このような演算フローを用いることにより、ＣＰＵの演算能力不足をコプロセッサが補い、演算処理の向上を図ることができる。
【０００６】
一方、近年、消費電力解析の研究開発が進んでいる。データ処理装置が上述のような演算フローを実行しているときに消費電力の変化を観測し、消費電力解析を用いることにより、演算に使用されるセキュリティ情報を推測可能であることが知られている。これに関連する技術として、下記の特許文献１〜２に開示された発明がある。
【０００７】
特許文献１は、ＩＣカード用チップでの処理のデータとＩＣカード用チップの消費電流との関連性を減らすことを目的とする。ＩＣカード用チップの処理順序をランダムに入れ替えたり、無駄なダミー処理を追加したりすることにより、処理データとＩＣカード用チップの消費電流との関連性を減らす。これによって、ＩＣカード用チップでの処理のデータとＩＣカード用チップの消費電流との関連性を減らすことを可能とする。
【０００８】
特許文献２は、高いセキュリティを持つカ−ド部材などの耐タンパ−情報処理装置を提供することを目的とする。ＩＣカード用チップで消費される電流値と、処理されているデータの関連性を減らすための方法として、処理するデータを撹乱用データで変形し、データの処理を変形したデータで処理し、処理後に撹乱用データを用いて逆変換し、正しい処理結果を求める。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１６５３７５号公報
【特許文献２】特開２００２−２４７０２５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように、消費電力の変化を観測して消費電力解析を用いることにより、演算に使用されるセキュリティ情報を推測することが可能である。そのため、消費電力解析によってセキュリティ情報を推測できないようにする処理が必要となる。
【００１１】
特許文献１に開示された発明は、処理順序をランダムに入れ替えたり、無駄なダミー処理を追加したりすることにより、処理データとＩＣカード用チップの消費電流との関連性を減らすものである。しかしながら、処理が複雑になってしまったり、ダミー処理の追加によって処理時間が長くなったり、短くなったりする場合がある。
【００１２】
また、特許文献２に開示された発明は、処理するデータを撹乱用データで変形し、データの処理を変形したデータで処理し、処理後に撹乱用データを用いて逆変換し、正しい処理結果を求めるものであるが、処理時間が長くなってしまう。
【００１３】
本発明は、上記問題点を解決するためになされたものであり、その目的は、消費電力解析などによりセキュリティ情報が推定されるのを困難にすることが可能なデータ処理装置を提供することである。
【課題を解決するための手段】
【００１４】
本発明の一実施例によれば、セキュリティ保護機能を有するデータ処理装置が提供される。データ処理装置は、ＣＰＵと、ＣＰＵによる指示によって演算処理を行なうコプロセッサと、メモリと、乱数を発生する乱数発生器とを含み、ＣＰＵがコプロセッサを使用する前に、ＣＰＵが、コプロセッサが使用するメモリの領域に乱数発生器が発生した乱数を設定する。
【００１５】
本発明の別の実施例によれば、セキュリティ保護機能を有するデータ処理装置が提供される。データ処理装置は、ＣＰＵと、ＣＰＵによる指示によって演算処理を行なうコプロセッサと、メモリと、外部から数値を入力するＩ／Ｏとを含み、ＣＰＵがコプロセッサを使用する前に、ＣＰＵが、コプロセッサが使用するメモリの領域にＩ／Ｏによって入力された演算の度に変化する数値を設定する。
【００１６】
本発明のさらに別の実施例によれば、セキュリティ保護機能を有するデータ処理装置が提供される。データ処理装置は、ＣＰＵと、ＣＰＵによる指示によって演算処理を行なうコプロセッサと、メモリとを含む。コプロセッサは、演算処理を実行する演算部と、メモリの領域に設定された入力値と演算部による演算結果とを選択的に出力する選択器とを含み、ＣＰＵから演算処理の指示がある場合には、選択器が入力値を選択して演算部に与え、ＣＰＵから演算処理の指示がない場合には、選択器が演算結果を選択して演算部に与える。
【発明の効果】
【００１７】
本発明の一実施例によれば、ＣＰＵがコプロセッサを使用する前に、ＣＰＵが、コプロセッサが使用するメモリの領域に乱数発生器が発生した乱数を設定するので、消費電力解析などによりセキュリティ情報が推定されるのを困難にすることが可能となる。
【００１８】
本発明の別の実施例によれば、ＣＰＵがコプロセッサを使用する前に、ＣＰＵが、コプロセッサが使用するメモリの領域にＩ／Ｏによって入力された演算の度に変化する数値を設定するので、消費電力解析などによりセキュリティ情報が推定されるのを困難にすることが可能となる。
【００１９】
本発明のさらに別の実施例によれば、ＣＰＵから演算処理の指示がある場合には、選択器が入力値を選択して演算器に与え、ＣＰＵから演算処理の指示がない場合には、選択器が演算結果を選択して演算器に与えるので、演算タイミングの特定が困難となり、消費電力解析などによりセキュリティ情報が推定されるのを困難にすることが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。
【図２】ＣＰＵ１がコプロセッサ４を使用して演算処理を行なう場合の一般的な処理手順を説明するためのフローチャートである。
【図３】データ処理装置が図２に示す演算フローを実行したときの消費電力解析結果の一例を示す図である。
【図４】本発明の第１の実施の形態におけるデータ処理装置の処理手順を説明するためのフローチャートである。
【図５】メモリ領域の初期値として乱数を設定した場合の効果を説明するための図である。
【図６】本発明の第１の実施の形態におけるデータ処理装置が演算処理を行なうときの消費電力解析結果の一例を示す図である。
【図７】本発明の第２の実施の形態におけるデータ処理装置の処理手順を説明するためのフローチャートである。
【図８】本発明の第３の実施の形態におけるコプロセッサ４の内部構成を示すブロック図である。
【図９】本発明の第３の実施の形態におけるコプロセッサ４の処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるデータ処理装置の概略構成を示すブロック図である。このデータ処理装置は、セキュリティチップなどを構成し、データ処理装置の全体的な制御を行なうＣＰＵ１と、メモリ２と、乱数発生器３と、コプロセッサ４と、Ｉ／Ｏ（Input/Output）５とがバス６を介して接続される。
【００２２】
メモリ２は、ＣＰＵ１が実行するプログラムを格納する領域、コプロセッサ４に設定する入力値を格納する領域、コプロセッサ４が演算途中のデータを格納する領域などの領域を有している。
【００２３】
乱数発生器３は、ＣＰＵ１からの指示に応じて乱数を発生する部分であり、ハードウェアによって実現されてもよいし、ＣＰＵ１がプログラムを実行することによりソフトウェア的に乱数を発生させるようにしてもよい。
【００２４】
コプロセッサ４は、ＣＰＵ１の演算能力の不足を補うためのものであり、ＣＰＵ１からの演算開始指示を受け、メモリ２にアクセスしながら演算処理を実行する。また、Ｉ／Ｏ５は、データ処理装置外部との通信を行なう。
【００２５】
図２は、ＣＰＵ１がコプロセッサ４を使用して演算処理を行なう場合の一般的な処理手順を説明するためのフローチャートである。まず、ＣＰＵ１は、メモリ２にコプロセッサ４に与える入力値を設定し（Ｓ１００）、コプロセッサ４に対して演算処理の開始を指示する（Ｓ１０１）。
【００２６】
コプロセッサ４は、ＣＰＵ１から演算処理の開始指示を受けると、メモリ２に格納された入力値を読み出して演算を行ない、メモリ２に演算途中のデータを書き込んだり、メモリ２から演算途中のデータを読み出したりしながら演算処理を実行する（Ｓ１０２）。そして、コプロセッサ４は、演算結果をメモリ２に格納する（Ｓ１０３）。
【００２７】
コプロセッサ４は、演算処理が終了すると、ＣＰＵ１に対して演算処理が終了したことを通知する（Ｓ１０４）。
【００２８】
最後に、ＣＰＵ１は、コプロセッサ４から演算処理の終了通知を受けると、メモリ２から演算結果を読み出して（Ｓ１０５）、処理を終了する。
【００２９】
図３は、データ処理装置が図２に示す演算フローを実行したときの消費電力解析結果の一例を示す図である。消費電力解析においては、推定の確からしさを解析波形の偏りで判定する。たとえば、図３において、楕円で囲んだ部分の解析波形が乱れており、解析波形の偏りが見られる。この結果から、セキュリティ情報が推定可能であると判断される。
【００３０】
ここで、解析波形とは、セキュリティ情報を複数仮定して複数の状態で演算処理を実行し、ある時刻の複数の状態をパラメータとしたときの状態間の消費電力の差分波形を指している。図３においては、８種類の解析波形が示されている。なお、図３の下部は、消費電力波形を示している。
【００３１】
図４は、本発明の第１の実施の形態におけるデータ処理装置の処理手順を説明するためのフローチャートである。まず、ＣＰＵ１は、乱数発生器３に乱数を発生させ、コプロセッサ４が使用する予定の領域にその乱数を設定する（Ｓ１１０）。このとき、メモリ領域ごとに異なる乱数を設定するようにしてもよいし、メモリ領域すべてに同じ乱数を設定するようにしてもよい。
【００３２】
メモリ領域ごとに異なる乱数を設定した場合、メモリ領域の初期値がメモリ領域ごとに異なることになるため、メモリ領域すべてに同じ乱数を設定するよりも広い空間をカバーでき、より効果的にセキュリティ情報の推定を困難化することができる。
【００３３】
次に、ＣＰＵ１は、メモリ２にコプロセッサ４に与える入力値を設定し（Ｓ１１１）、コプロセッサ４に対して演算処理の開始を指示する（Ｓ１１２）。
【００３４】
コプロセッサ４は、ＣＰＵ１から演算処理の開始指示を受けると、メモリ２に格納された入力値を読み出して演算を行ない、メモリ２に演算途中のデータを書き込んだり、メモリ２から演算途中のデータを読み出したりしながら演算処理を実行する（Ｓ１１３）。そして、コプロセッサ４は、演算結果をメモリ２に格納する（Ｓ１１４）。
【００３５】
コプロセッサ４は、演算処理が終了すると、ＣＰＵ１に対して演算処理が終了したことを通知する（Ｓ１１５）。
【００３６】
最後に、ＣＰＵ１は、コプロセッサ４から演算処理の終了通知を受けると、メモリ２から演算結果を読み出して（Ｓ１１６）、処理を終了する。
【００３７】
図５は、メモリ領域の初期値として乱数を設定した場合の効果を説明するための図である。なお、図５（ａ）〜図５（ｄ）においては、時刻ｔ０でメモリに入力値が設定されるものとする。
【００３８】
図５（ａ）は、メモリ領域に乱数が設定されていない状態で、メモリに入力値が設定される場合のデータの１信号の消費電力トレースを示している。時刻ｔ０以前においては信号レベルが“０”に固定されているか、“１”に固定されているかのいずれかである。時刻ｔ０以降は入力値に応じて“０”か“１”のいずれかになる。
【００３９】
図５（ｂ）は、メモリ領域に乱数が設定されていない状態で、メモリに入力値を複数回変えて設定したときの多数信号の消費電力の平均波形を示している。時刻ｔ０以前においては信号レベルが“０”に固定されているか、“１”に固定されているため、その平均波形のレベルも“０”か“１”のいずれかである。時刻ｔ０以降は入力値に応じて“０”か“１”のいずれかになるため、その平均波形は０．５近辺となる。
【００４０】
図５（ｃ）は、メモリ領域に乱数が設定されている状態で、メモリに入力値が設定される場合のデータの１信号の消費電力トレースを示している。時刻ｔ０以前においてはメモリ領域に乱数が設定されているため、信号レベルが“０”か“１”のいずれか、すなわち信号レベルが固定されていない。時刻ｔ０以降においても入力値に応じて“０”か“１”のいずれかになる。
【００４１】
図５（ｄ）は、メモリ領域に乱数が設定されている状態で、メモリに入力値を複数回変えて設定したときの多数信号の消費電力の平均波形を示している。時刻ｔ０以前および時刻ｔ０以降のいずれにおいても、信号レベルが“０”になるか“１”になるかは確率によって決まる。したがって、その平均波形は時刻ｔ０以前および時刻ｔ０以降のいずれにおいても０．５近辺となる。その結果、時刻ｔ０を特定することができなくなり、セキュリティ情報を推定することが困難となる。
【００４２】
図６は、本発明の第１の実施の形態におけるデータ処理装置が演算処理を行なうときの消費電力解析結果の一例を示す図である。図６（ａ）は、メモリ領域に乱数が設定されていない状態で、演算処理を行なったときの消費電力解析結果を示している。図６（ａ）においては、楕円で囲んだ部分の解析波形が乱れており、解析波形の偏りが見られる。この結果から、セキュリティ情報が推定可能であると判断される。
【００４３】
一方、図６（ｂ）は、本発明の第１の実施の形態におけるデータ処理装置によって乱数を設定した状態で、演算処理を行なったときの消費電力解析結果を示している。図６（ｂ）においては、楕円で囲んだ部分の解析波形が乱れておらず、偏りも観測することができないため、セキュリティ情報の推定が困難となっている。
【００４４】
以上の説明においては、ＣＰＵ１が、コプロセッサ４が使用する予定であるメモリ領域に乱数を設定することとしたが、ＣＰＵ１がコプロセッサ４に対して“乱数設定”コマンドを発行して、コプロセッサ４自身が使用する予定のメモリ領域やレジスタに、乱数発生器３が発生した乱数を設定するようにしてもよい。この場合、ＣＰＵ１はコプロセッサ４が使用するメモリ領域に予め設定される情報を処理する必要がないため、コプロセッサ４の使用手順を汎用的なプログラムで実現することが可能となる。
【００４５】
以上説明したように、本実施の形態におけるデータ処理装置によれば、コプロセッサ４が使用する予定のメモリ領域に乱数を設定してから演算処理を行なうようにしたので、演算処理に移行する前後においてメモリの値が固定されておらず、状態の変化を消費電力解析などの統計処理で抽出することができなくなり、セキュリティ情報の推定を困難にすることが可能となった。
【００４６】
また、コプロセッサ４が使用する予定のメモリ領域に乱数を設定してから演算処理を行なうようにしただけであるので、演算処理時間を延長せずに、状態の変化を消費電力解析などの統計処理で抽出することができなくなり、セキュリティ情報の推定を困難にすることが可能となった。
【００４７】
（第２の実施の形態）
本発明の第２の実施の形態におけるデータ処理装置の構成は、図１に示す第１の実施の形態におけるデータ処理装置の概略構成と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００４８】
図７は、本発明の第２の実施の形態におけるデータ処理装置の処理手順を説明するためのフローチャートである。まず、ＣＰＵ１は、Ｉ／Ｏ５を介して演算の度に変化する数値を入力し、コプロセッサ４が使用する予定のメモリ領域に設定する（Ｓ１２０）。このとき、メモリ領域ごとに異なる数値を設定するようにしてもよいし、メモリ領域すべてに同じ数値を設定するようにしてもよい。
【００４９】
メモリ領域ごとに異なる数値を設定した場合、メモリ領域の初期値がメモリ領域ごとに異なることになるため、メモリ領域すべてに同じ数値を設定するよりも広い空間をカバーでき、より効果的にセキュリティ情報の推定を困難化することができる。
【００５０】
次に、ＣＰＵ１は、メモリ２にコプロセッサ４に与える入力値を設定し（Ｓ１２１）、コプロセッサ４に対して演算処理の開始を指示する（Ｓ１２２）。
【００５１】
コプロセッサ４は、ＣＰＵ１から演算処理の開始指示を受けると、メモリ２に格納された入力値を読み出して演算を行ない、メモリ２に演算途中のデータを書き込んだり、メモリ２から演算途中のデータを読み出したりしながら演算処理を実行する（Ｓ１２３）。そして、コプロセッサ４は、演算結果をメモリ２に格納する（Ｓ１２４）。
【００５２】
コプロセッサ４は、演算処理が終了すると、ＣＰＵ１に対して演算処理が終了したことを通知する（Ｓ１２５）。
【００５３】
最後に、ＣＰＵ１は、コプロセッサ４から演算処理の終了通知を受けると、メモリ２から演算結果を読み出して（Ｓ１２６）、処理を終了する。
【００５４】
以上の説明においては、ＣＰＵ１が、コプロセッサ４が使用する予定であるメモリ領域に、Ｉ／Ｏ５を介して入力した演算の度に変化する数値を設定することとしたが、ＣＰＵ１がコプロセッサ４に対して“Ｉ／Ｏ値設定”コマンドを発行して、コプロセッサ４自身が使用する予定のメモリ領域やレジスタに、Ｉ／Ｏ５を介して入力した演算の度に変化する数値を設定するようにしてもよい。この場合、ＣＰＵ１はコプロセッサ４が使用するメモリ領域に予め設定される情報を処理する必要がないため、コプロセッサ４の使用手順を汎用的なプログラムで実現することが可能となる。
【００５５】
また、コプロセッサ４が使用する予定であるメモリ領域に、Ｉ／Ｏ５を介して入力した演算の度に変化する数値を設定することとしたが、時々刻々変化する数値を設定するようにしてもよい。演算の度に変化する数値としては、演算の実行回数、演算が実行された時間、演算が実行されるときのメモリ２のチェックサム値、ハッシュ値などを挙げることができる。また、時々刻々変化する数値としては、チップの浮遊容量、電源投入時のメモリの状態値、時計の値などを挙げることができる。さらに、これらの値の組み合せによって、演算の度に変化する数値を生成するようにしてもよい。
【００５６】
以上説明したように、本実施の形態におけるデータ処理装置によれば、コプロセッサ４が使用する予定のメモリ領域に、Ｉ／Ｏ５を介して入力した演算の度に変化する数値を設定してから演算処理を行うようにしたので、演算処理に移行する前後においてメモリの値が固定されておらず、状態の変化を消費電力解析などの統計処理で抽出することができなくなり、セキュリティ情報の推定を困難にすることが可能となった。
【００５７】
また、コプロセッサ４が使用する予定のメモリ領域に、Ｉ／Ｏ５を介して入力した演算の度に変化する数値を設定してから演算処理を行うようにしただけであるので、演算処理時間を延長せずに、状態の変化を消費電力解析などの統計処理で抽出することができなくなり、セキュリティ情報の推定を困難にすることが可能となった。
【００５８】
（第３の実施の形態）
本発明の第３の実施の形態におけるデータ処理装置は、図１に示す第１の実施の形態におけるデータ処理装置の概略構成と比較して、コプロセッサ４の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００５９】
図８は、本発明の第３の実施の形態におけるコプロセッサ４の内部構成を示すブロック図である。このコプロセッサ４は、演算部４１と、入力レジスタ４２と、出力レジスタ４３と、選択器４４と、制御部４５とを含む。
【００６０】
制御部４５は、ＣＰＵ１との間の通信機能を有しており、ＣＰＵ１からの指示を受けてコプロセッサ４全体の制御を行なって演算処理を実行する。制御部４５は、演算処理が終了すると、通信機能を用いてＣＰＵ１に演算が終了したことを通知する。
【００６１】
選択部４４は、制御部４５からの制御によって、メモリ２からの入力値Ａおよび演算部４１による演算結果のいずれかを選択的に入力レジスタ４２に出力する。入力レジスタ４２は、選択部４４から出力された値を保持する。
【００６２】
演算部４１は、制御部４５からの制御によって、入力レジスタ４２に保持される値に対して演算処理を実行し、演算結果を出力レジスタ４３および選択部４４に出力する。出力レジスタ４３は、演算結果Ｂをメモリ２に出力する。
【００６３】
図９は、本発明の第３の実施の形態におけるコプロセッサ４の処理手順を説明するためのフローチャートである。まず、ＣＰＵ１から演算開始指示があると、制御部４５は、選択器４４がメモリ２からのコプロセッサ入力値Ａを選択するように、選択器４４に信号を出力する（Ｓ２００）。そして、入力レジスタ４２にコプロセッサ入力値Ａが設定される（Ｓ２０１）。
【００６４】
次に、演算部４１が入力レジスタ４２に設定された入力値Ａに対して演算処理を実行し（Ｓ２０２）、出力レジスタ４３に演算結果が格納される（Ｓ２０３）。そして、制御部４５は、出力レジスタ４３に格納される演算結果Ｂをメモリ２に格納するよう制御を行ない（Ｓ２０４）、ＣＰＵ１に対して演算完了信号を出力する（Ｓ２０５）。
【００６５】
次に、制御部４５は、選択器４４が演算部４１からの演算出力を選択するように、選択器４４に信号を出力する（Ｓ２０６）。そして、入力レジスタ４２に演算部４１からの演算出力が設定される（Ｓ２０７）。
【００６６】
次に、演算部４１が入力レジスタ４２に設定された演算出力に対して演算処理を実行する（Ｓ２０８）。そして、制御部４５は、ＣＰＵ１から次の演算開始の指示が発行されたか否かを判定する（Ｓ２０９）。
【００６７】
次の演算開始の指示が発行された場合には（Ｓ２０９，Ｙｅｓ）、ステップＳ２００に戻って以降の処理を繰り返す。また、次の演算開始の指示が発行されていない場合には（Ｓ２０９，Ｎｏ）、ステップＳ２０６に戻って入力レジスタ４２に設定された演算出力に対する演算処理を行なう。
【００６８】
このように、ＣＰＵ１から演算開始の指示がある場合には、コプロセッサ入力値Ａに基づく演算が行なわれ、ＣＰＵ１から演算開始の指示がない場合には、入力レジスタ４２に格納された演算出力に基づく演算が行なわれることになる。そのため、コプロセッサ４は、データ処理装置に電源供給があるときは演算を繰り返し行なうことになり、セキュリティ情報の演算を行なうタイミングを特定することが困難となる。
【００６９】
以上説明したように、本実施の形態におけるデータ処理装置によれば、コプロセッサ４内の演算部４１が、コプロセッサ入力値Ａに基づく演算と、演算出力に基づく演算とを連続して行なうように制御され、演算結果Ｂがメモリ２に格納されるようにしたので、演算タイミングの特定が困難となり、消費電力解析などの統計処理の前提となる演算タイミングを合わせることが困難となる。すなわち、消費電力解析などの統計処理によってセキュリティ情報を推定することが困難となった。
【００７０】
また、コプロセッサ４内の演算部４１が、コプロセッサ入力値Ａに基づく演算と、演算出力に基づく演算とを連続して行なうように制御され、演算結果Ｂがメモリ２に格納されるようにしたので、演算時間に影響を与えることがなく、消費電力解析などの統計処理の前提となる演算タイミングを合わせることが困難となった。
【００７１】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７２】
１  ＣＰＵ、２  メモリ、３  乱数発生器、４  コプロセッサ、５  Ｉ／Ｏ、６  バス、４１  演算部、４２  入力レジスタ、４３  出力レジスタ、４４  選択器、４５  制御部。
【図１】
2010277327.tif 000003
【図２】
2010277327.tif 000004
【図３】
2010277327.tif 000005
【図４】
2010277327.tif 000006
【図５】
2010277327.tif 000007
【図６】
2010277327.tif 000008
【図７】
2010277327.tif 000009
【図８】
2010277327.tif 000010
【図９】
2010277327.tif 000011