(57)【特許請求の範囲】
【請求項１】
演算回路から連続して出力される出力信号を入力し、入力した出力信号を遅延させ、遅延後の出力信号を遅延信号として出力する遅延部と、
前記演算回路から出力信号を入力するとともに、前記演算回路からの出力信号の入力に並行して前記遅延部から遅延信号を入力し、同じタイミングで入力した出力信号と遅延信号との間で信号値を比較し、比較した出力信号と遅延信号の信号値が一致していることを通知する一致信号及び比較した出力信号と遅延信号の信号値が不一致であることを通知する不一致信号のいずれかを比較結果信号として出力する比較部と、
クロック信号を入力するとともに、クロック信号の入力に並行して前記比較部から比較結果信号を入力し、クロックの立ち上がりタイミング及びクロックの立ち下がりタイミングの少なくともいずれかである判別タイミングが到来する度に、判別タイミングにおいて並行して入力した比較結果信号が一致信号及び不一致信号のいずれであるかを判別する判別部と、
前記演算回路から出力信号を入力するとともに、前記判別部が判別タイミングにおいて一致信号を入力している場合は、前記演算回路からの出力信号を出力し、前記判別部が判別タイミングにおいて不一致信号を入力した後は、前記演算回路からの出力信号に代えて特定の固定値を出力する出力部とを有することを特徴とする信号処理装置。
【請求項２】
前記遅延部は、
同じ信号値が維持されている確定状態の出力信号と信号値が一定していない不確定状態の出力信号とを前記演算回路から入力し、
前記比較部が前記演算回路から確定状態の出力信号を入力している間に確定状態の出力信号の遅延信号を並行して入力できる遅延量にて、前記演算回路からの出力信号を遅延させ、
前記比較部は、
前記演算回路からの確定状態の出力信号の入力に並行して前記遅延部から確定状態の出力信号の遅延信号を入力しているときは、前記演算回路からの確定状態の出力信号の信号値と前記遅延部からの確定状態の出力信号の遅延信号の信号値とが一致し、前記比較結果信号として一致信号を出力することを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記判別部は、
正常なクロック周期に従った正常クロックの判別タイミングにおいて、
前記演算回路からの確定状態の出力信号の入力に並行して前記遅延部から確定状態の出力信号の遅延信号を入力した結果、前記比較部が出力した一致信号を入力し、
正常なクロック周期から外れた不正クロックの判別タイミングにおいて、
前記演算回路からの確定状態の出力信号又は不確定状態の出力信号の入力に並行して前記遅延部から不確定状態の出力信号の遅延信号を入力した結果、前記比較部が出力した不一致信号、及び、前記演算回路からの不確定状態の出力信号の入力に並行して前記遅延部から確定状態の出力信号の遅延信号を入力した結果、前記比較部が出力した不一致信号のいずれかを入力し、
前記出力部は、
前記判別部が入力するクロック信号において正常クロックが維持されている結果、前記判別部が判別タイミングにおいて一致信号を入力している間は、前記演算回路からの出力信号を出力し、
前記判別部が入力するクロック信号に異常が発生した結果、前記判別部が判別タイミングにおいて不一致信号を入力した後は、前記固定値を出力することを特徴とする請求項２に記載の信号処理装置。
【請求項４】
前記出力部は、
前記判別部が判別タイミングにおいて不一致信号を入力した後は、前記演算回路が演算を完了するまで、前記固定値の出力を継続することを特徴とする請求項３に記載の信号処理装置。
【請求項５】
前記信号処理装置は、更に、
前記判別部における状態を通知する状態信号を前記出力部に出力する状態通知部であって、
前記判別部が入力するクロック信号において正常クロックが維持されている結果、前記判別部が判別タイミングにおいて一致信号を入力している間は、正常状態を通知する状態信号を前記出力部に出力し、
前記判別部が入力するクロック信号に異常が発生した結果、前記判別部が判別タイミングにおいて不一致信号を入力した場合に、異常状態を通知する状態信号を前記出力部に出力し、前記演算回路が演算を完了するまで、前記異常状態を通知する状態信号の出力を保持する状態通知部を有し、
前記出力部は、
前記状態通知部から前記正常状態を通知する状態信号を入力している間は、前記演算回路からの出力信号を出力し、
前記状態通知部から前記異常状態を通知する状態信号を入力している間は、前記固定値を出力することを特徴とする請求項４に記載の信号処理装置。
【請求項６】
前記比較部は、
前記演算回路と前記遅延部に接続され、前記演算回路から複数ビットの出力信号を入力するとともに、前記演算回路からの出力信号の入力に並行して前記遅延部から複数ビットの遅延信号を入力し、同じタイミングで入力した複数ビットの出力信号と複数ビットの遅延信号との間で信号値を比較し、比較した出力信号と遅延信号の信号値が全てのビットで一致している場合に一致信号を出力し、比較した出力信号と遅延信号の信号値が１ビットでも不一致である場合に不一致信号を出力するＸＯＲ（ｅＸｃｌｕｓｉｖｅ  ＯＲ）素子であり、
前記判別部は、
前記ＸＯＲ素子に接続され、前記クロック信号の入力に並行して前記ＸＯＲ素子から比較結果信号を入力し、判別タイミングにおいて並行して入力した比較結果信号が不一致信号である場合に有効信号を出力する第１のフリップフロップであり、
前記状態通知部は、
前記第１のフリップフロップに接続され、前記第１のフリップフロップから有効信号を入力するまでは前記正常状態を通知する状態信号として有効信号を出力し続け、前記第１のフリップフロップから有効信号を入力した後は前記異常状態を通知する状態信号として無効信号を出力し続ける第２のフリップフロップであり、
前記出力部は、
前記演算回路と前記第２のフリップフロップに接続され、前記演算回路から複数ビットの出力信号を入力し、前記第２のフリップフロップから状態信号を入力し、前記第２のフリップフロップからの状態信号が有効信号であれば、前記演算回路からの複数ビットの出力信号を出力し、前記第２のフリップフロップからの状態信号が無効信号であれば、前記第２のフリップフロップからの無効信号を前記固定値として出力するＡＮＤ素子と、
前記ＡＮＤ素子に接続され、前記クロック信号に同期して、前記演算回路からの出力信号又は前記無効信号を出力する第３のフリップフロップとであることを特徴とする請求項５に記載の信号処理装置。
【請求項７】
前記演算回路における演算の種類によって前記出力信号において確定状態が持続する時間が異なり、
前記遅延部は、
前記出力信号において確定状態が持続する時間のうち最短の時間から、前記第３のフリップフロップのセットアップ時間とホールド時間とを減じた時間の遅延量にて、前記演算回路からの出力信号を遅延させることを特徴とする請求項６に記載の信号処理装置。
【請求項８】
前記遅延部と前記比較部と前記出力部は、
データと秘密データとを組み合わせて演算する演算回路からの出力信号を入力することを特徴とする請求項１に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置に関する。
【背景技術】
【０００２】
本発明に関連する技術として、例えば、特許文献１に記載の信号処理回路がある。
特許文献１の信号処理回路は、論理的に見て同じ処理を行う複数の回路により同じ暗号処理が並行して行われる信号処理回路が示されている。
より具体的には、特許文献１の信号処理回路は、暗号関連処理を行う第１の回路と、第１の回路において行われる暗号関連処理と論理的にみて同じ暗号関連処理を行う第２の回路を備える。
そして、第２の回路には信号ビットの極性を反転させる反転回路が設けられ、第１の回路を構成する複数のノードのうち第１のノードからの出力と、第２の回路を構成する複数のノードのうち、第１の回路における第１のノードの位置に対応する位置にある第２のノードからの出力が比較され、２つの出力の極性が互いに反転したものでない場合、第１の回路と第２の回路により行われている暗号関連処理を停止させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２９４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の信号処理回路は、論理的に見て同じ処理を行う複数の回路で構成されているので、回路規模が増大するという課題がある。【０００５】
この発明は、上記のような課題点を解決することを主な目的としており、簡易な構成により、異常なクロックによって不確定な状態の信号が出力することを防止することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る信号処理装置は、
演算回路から連続して出力される出力信号を入力し、入力した出力信号を遅延させ、遅延後の出力信号を遅延信号として出力する遅延部と、
前記演算回路から出力信号を入力するとともに、前記演算回路からの出力信号の入力に並行して前記遅延部から遅延信号を入力し、同じタイミングで入力した出力信号と遅延信号との間で信号値を比較し、比較した出力信号と遅延信号の信号値が一致していることを通知する一致信号及び比較した出力信号と遅延信号の信号値が不一致であることを通知する不一致信号のいずれかを比較結果信号として出力する比較部と、
クロック信号を入力するとともに、クロック信号の入力に並行して前記比較部から比較結果信号を入力し、クロックの立ち上がりタイミング及びクロックの立ち下がりタイミングの少なくともいずれかである判別タイミングが到来する度に、判別タイミングにおいて並行して入力した比較結果信号が一致信号及び不一致信号のいずれであるかを判別する判別部と、
前記演算回路から出力信号を入力するとともに、前記判別部が判別タイミングにおいて一致信号を入力している場合は、前記演算回路からの出力信号を出力し、前記判別部が判別タイミングにおいて不一致信号を入力した後は、前記演算回路からの出力信号に代えて特定の固定値を出力する出力部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明では、出力信号と遅延信号とが一致している場合のみ出力信号を出力し、出力信号と遅延信号とが一致しない場合は固定値を出力する。
確定状態の出力信号と確定状態の遅延信号が比較された場合のみ、出力信号と遅延信号とが一致するので、異常なクロックの発生によって出力信号と遅延信号とが一致しない場合でも、不確定状態の出力信号が出力されることがない。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る信号処理装置の構成例を示す図。
【図２】実施の形態１に係る信号処理装置におけるクロック異常発生時のタイミングチャート図。
【図３】実施の形態１に係る信号処理装置における正常時のタイミングチャート図。
【図４】一般的な信号処理回路の構成例を示す図。
【図５】一般的な信号処理回路における正常時のタイミングチャート図。
【図６】一般的な信号処理回路におけるクロック異常発生時のタイミングチャート図。
【図７】確定状態と不確定状態を説明する図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、追加回路を抑えた構成において、異常なクロックによる故障データの出力を防止する。
【００１０】
以下では、まず、一般的な信号処理回路を説明し、その後、本実施の形態に係る信号処理装置を説明する。
【００１１】
図４は、一般的な信号処理回路の構成を示す図である。
図４において、太い線の接続線は複数ビットの信号が入出力されることを表し、細い線の接続線は１ビットの信号が入出力されることを表している。
【００１２】
図４の信号処理回路は、入力データＤＩと鍵データＫを入力として演算を行い、その結果を出力データＤＯとして出力する。
図４の信号処理回路は、演算回路１１とフリップフロップ１６で構成される。
入力データＤＩと鍵データＫは、演算回路１１に入力され、その結果が複数ビットのバスに複数ビットの出力信号Ｄｔとして出力される。
【００１３】
入力データＤＩと鍵データＫは、演算回路１１に入力され、演算結果が出力信号Ｄｔとして出力される。
演算回路１１は回路遅延のため、データが確定するまでに時間を要する。
つまり、図７に例示するように、演算回路１１の出力信号Ｄｔでは、信号値が一定していない不確定状態７１０と同じ信号値が維持されている確定状態７２０とが存在する。
確定状態７２０は、次の入力データＤＩ及び鍵データＫが演算回路１１に入力されるまで持続する。
不確定状態７１０の時間、換言すると、確定状態７２０が持続する時間は、演算の種類によって異なる。
演算回路１１では、入力データＤＩと鍵データＫの組合せに応じて、複数種の演算が行われる。
演算完了までに要する時間は演算の種類により様々であり、演算完了までに長時間を要する演算の場合は、不確定状態７１０の時間が長く、従って、確定状態７２０が持続する時間は短くなる。
【００１４】
次に、この信号処理回路の動作を、図５を用いて説明する。
図５は、フリップフロップ１６のタイミング図である。
図５では、データが不確定な不確定状態を「ハッチング」でバス表示している。
また、確定状態は、数字を入れたバス表示とした。
【００１５】
フリップフロップ１６は、クロック信号ＣＫの立ち上がりタイミングで出力信号Ｄｔをラッチするので、ＤＯは１クロック遅れてデータが確定する。
このようにして、確定状態の信号のみが後段に送られる。
【００１６】
次に、異常なクロックが入力された場合のタイミング図を図６に示す。
図６のようなクロック信号ＣＫであると、フリップフロップ１６は時刻Ｔ０（異常なクロック）で不確定なバス（不確定状態の出力信号Ｄｔ）をラッチするので、その出力ＤＯは不確定なバスをラッチした異常データとなる。
そして、この不確定なバスをラッチした異常データが最終的に演算結果として出力される。
【００１７】
図１は、本実施の形態に係る回路構成を示す。
図１において、太い線の接続線は複数ビットの信号が入出力されることを表し、細い線の接続線は１ビットの信号が入出力されることを表している。
【００１８】
本実施の形態では、演算回路１が、入力データＤＩと鍵データＫを入力として演算を行い、信号処理装置１００が演算結果を出力データＤＯとして出力する。
なお、図１に示す演算回路１と信号処理装置１００とを併せてセキュア演算装置ともいう。
【００１９】
入力データＤＩと鍵データＫは、演算回路１に入力され、演算結果が複数ビットのバスに複数ビットの出力信号Ｄｔとして出力される。
なお、演算回路１の出力信号Ｄｔには、図４に示した演算回路１１と同様に、信号値が一定していない不確定状態７１０と同じ信号値が維持されている確定状態７２０とがある。
【００２０】
信号処理装置１００は、遅延素子３、ＸＯＲ（ｅＸｃｌｕｓｉｖｅ  ＯＲ）素子４、ＡＮＤ素子５、フリップフロップ６、フリップフロップ６１、セット付フリップフロップ７で構成される。
【００２１】
出力信号Ｄｔは遅延素子３とＸＯＲ素子４の一方の入力端子に接続されている。
遅延素子３は、演算回路１から連続して出力される複数ビットの出力信号Ｄｔを入力し、入力した出力信号Ｄｔを遅延させ、遅延後の出力信号Ｄｔを遅延信号Ｄｄとして出力する。
遅延素子３の出力はＸＯＲ素子４の他方の入力端子に接続されており、遅延信号ＤｄはＸＯＲ素子４に入力される。
遅延素子３は、遅延部の例に相当する。
【００２２】
ＸＯＲ素子４の出力は１ビットで、入力されるバスの対応するビットの値がすべて一致すれば“０”を、対応するビットの値が１ビットでも異なっていれば“１”を出力する。
ＸＯＲ素子４は、比較部の例に相当する。
ＸＯＲ素子４は、演算回路１から複数ビットの出力信号Ｄｔを入力するとともに、演算回路１からの出力信号Ｄｔの入力に並行して遅延素子３から複数ビットの遅延信号Ｄｄを入力し、同じタイミングで入力した複数ビットの出力信号Ｄｔと複数ビットの遅延信号Ｄｄとの間で信号値を比較する。
そして、出力信号Ｄｔと遅延信号Ｄｄの信号値が全ビットで一致していれば、出力信号Ｄｔと遅延信号Ｄｄの信号値が一致していることを通知する一致信号（信号値“０”）をＸＯＲｏｕｔ信号（比較結果信号）として出力する。
一方、１ビットでも信号値が異なっていれば、出力信号Ｄｔと遅延信号Ｄｄの信号値が不一致であることを通知する不一致信号（信号値“１”）をＸＯＲｏｕｔ信号（比較結果信号）として出力する。
【００２３】
確定状態７２０の出力信号Ｄｔと確定状態７２０の遅延信号Ｄｄを比較した場合のみ、出力信号Ｄｔと遅延信号Ｄｄの全ビットの信号値が一致する。
つまり、ＸＯＲ素子４は、演算回路１からの確定状態７２０の出力信号Ｄｔの入力に並行して遅延素子３から確定状態７２０の遅延信号Ｄｄを入力しているときは、出力信号Ｄｔの信号値と遅延信号Ｄｄの信号値とが全ビットで一致し、ＸＯＲｏｕｔ信号として一致信号（信号値“０”）を出力する。
一方、演算回路１からの確定状態７２０の出力信号Ｄｔ又は不確定状態７１０の出力信号Ｄｔの入力に並行して遅延素子３から不確定状態７１０の遅延信号Ｄｄを入力した場合は、出力信号Ｄｔの信号値と遅延信号Ｄｄの信号値が一致せず、ＸＯＲ素子４は、ＸＯＲｏｕｔ信号として不一致信号（信号値“１”）を出力する。
更に、演算回路１からの不確定状態７１０の出力信号Ｄｔの入力に並行して遅延素子３から確定状態７２０の遅延信号Ｄｄを入力した場合は、出力信号Ｄｔの信号値と遅延信号Ｄｄの信号値が一致せず、ＸＯＲ素子４は、ＸＯＲｏｕｔ信号として不一致信号（信号値“１”）を出力する。
【００２４】
ＸＯＲ素子４の１ビット出力（ＸＯＲｏｕｔ信号）は、フリップフロップ６１のＤ端子に接続され、クロック信号ＣＫのクロックのタイミングで保持され、Ｑ端子よりＸＯＲｏｕｔ１信号（１ビット）として出力される。
つまり、フリップフロップ６１は、クロック信号ＣＫを入力するとともに、クロック信号ＣＫの入力に並行してＸＯＲ素子４からＸＯＲｏｕｔ信号（比較結果信号）を入力し、クロックの立ち上がりごとに、クロック立ち上がり時に並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が一致信号（信号値“０”）、不一致信号（信号値“１”）のいずれであるかを判別する。
フリップフロップ６１は、クロック立ち上がり時に並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が不一致信号（信号値“１”）である場合にＸＯＲｏｕｔ１信号の有効信号（信号値“１”）を出力する。
一方、フリップフロップ６１は、クロック立ち上がり時に並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が一致信号（信号値“０”）である場合にＸＯＲｏｕｔ１信号の無効信号（信号値“０”）を出力する。
フリップフロップ６１は、判別部の例であり、また、第１のフリップフロップに相当する。
なお、本実施の形態に係るフリップフロップ６１は、クロック立ち上がりタイミングを判別タイミングとしており、本実施の形態では、フリップフロップ６１が、クロック立ち上がり時に並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が一致信号（信号値“０”）、不一致信号（信号値“１”）のいずれであるかを判別する例を説明する。
しかしながら、クロック立ち下がりタイミングを判別タイミングとしてもよく、フリップフロップ６１は、クロック立ち下がり時に並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が一致信号（信号値“０”）、不一致信号（信号値“１”）のいずれであるかを判別するようにしてもよい。
更に、クロック立ち上がりタイミング及びクロック立ち下がりタイミングの両者を判別タイミングとしてもよく、フリップフロップ６１は、クロック立ち上がり時及びクロック立ち下がり時において、並行して入力したＸＯＲｏｕｔ信号（比較結果信号）が一致信号（信号値“０”）、不一致信号（信号値“１”）のいずれであるかを判別するようにしてもよい。
【００２５】
ＸＯＲｏｕｔ１信号は、セット付フリップフロップ７のクロック端子に入力される。
また、信号Ｓはセット付フリップフロップ７のセット端子に入力され、演算回路１における一連の演算が開始される直前にセットされるように制御する信号である。
セット付フリップフロップ７は、フリップフロップ６１からＸＯＲｏｕｔ１信号の有効信号（信号値“１”）を入力するまでは、正常状態を通知する状態信号としてＳｅｌ信号の有効信号（信号値“１”）を出力し続ける。
そして、フリップフロップ６１からＸＯＲｏｕｔ１信号の有効信号（信号値“１”）を入力した後は、セット付フリップフロップ７は、異常状態を通知する状態信号としてＳｅｌ信号の無効信号（信号値“０”）を出力し続ける。
セット付フリップフロップ７は、状態通知部の例であり、また、第２のフリップフロップに相当する。
【００２６】
セット付フリップフロップ７の出力であるＳｅｌ信号（１ビット）はＡＮＤ素子５に入力される。
ＡＮＤ素子５では、演算回路１のバス出力との論理積が出力される。
つまり、ＡＮＤ素子５は、演算回路１から複数ビットの出力信号Ｄｔを入力し、セット付フリップフロップ７からＳｅｌ信号を入力し、Ｓｅｌ信号が有効信号（信号値“１”）であれば、演算回路１からの出力信号Ｄｔを出力する。
一方、Ｓｅｌ信号が無効信号（信号値“０”）であれば、ＡＮＤ素子５は、演算回路１からの出力信号Ｄｔに代えて、セット付フリップフロップ７からのＳｅｌ信号（信号値“０”）を固定値としてフリップフロップ６に出力する。
ＡＮＤ素子５は、フリップフロップ６とともに出力部の例である。
【００２７】
フリップフロップ６では、クロック信号ＣＫのクロックのタイミングでＡＮＤ素子５からの出力が保持され、出力ＤＯとなる。
つまり、フリップフロップ６は、クロック信号ＣＫに同期して、演算回路１からの出力信号Ｄｔ又は固定値を出力ＤＯとして出力する。
フリップフロップ６は、ＡＮＤ素子５とともに出力部の例であり、第３のフリップフロップに相当する。
【００２８】
なお、図１では、セット付フリップフロップ７の出力がＡＮＤ素子５に入力されている場合を示しているが、代わりに、ＡＮＤ素子５と同様な機能を有する素子に入力してもよい。
【００２９】
また、遅延素子３の遅延量は、演算回路１の出力が確定する最小時間から、フリップフロップ６の回路のセットアップ時間とホールド時間を引いた時間とする。
換言すれば、ＸＯＲ素子４が演算回路１から確定状態の出力信号Ｄｔを入力している間に確定状態の出力信号Ｄｔの遅延信号Ｄｄを並行して入力できる遅延量である。
前述したように、出力信号Ｄｔにおいて確定状態７２０が持続する時間は演算の種類によって異なる。
遅延素子３は、出力信号Ｄｔにおいて確定状態７２０が持続する時間のうち最短の時間から、フリップフロップ６のセットアップ時間とホールド時間とを減じた時間の遅延量にて、演算回路１からの出力信号Ｄｔを遅延させる。
【００３０】
次に、動作について説明する。
図２は、本実施の形態に係るフリップフロップ６等のタイミング図である。
図２でも、不確定状態を「ハッチング」でバス表示している。
また、確定状態は、数字を入れたバス表示としている。
【００３１】
図２では、時刻Ｔ０において異常なクロックが入力された場合を示している。
ＸＯＲ素子４は、前述したように、比較した出力信号Ｄｔと遅延信号Ｄｄの全ビットが一致したときに“０”のＸＯＲｏｕｔ信号を、１ビットでも異なれば“１”のＸＯＲｏｕｔ信号を出力する。
フリップフロップ６１は、このＸＯＲｏｕｔ信号を、クロック信号ＣＫのクロックの立ち上がりタイミングで保持するので、フリップフロップ６１の出力ＸＯＲｏｕｔ１は図２のようになる。
異常なクロックが入力されたＴ０のタイミングでは、ＸＯＲ素子４では不確定状態の出力信号Ｄｔと不確定状態の遅延信号Ｄｄを比較しているので、ＸＯＲｏｕｔ信号は“１”である。
このため、フリップフロップ６１の出力ＸＯＲｏｕｔ１は、異常なクロックの立ち上がり時に“０”から“１”に変化する。
この変化を受けてセット付フリップフロップ７の出力Ｓｅｌは、“１”から“０”に変化し、以後信号Ｓがセット指示を出すまで、Ｓｅｌ信号は“０”固定となる。
Ｓｅｌ信号は、ＡＮＤ素子５の入力であるので、ＡＮＤ素子５の出力は固定値０となる。
この状態は、信号Ｓがセット指示を出すまで持続する。
この結果、フリップフロップ６の出力は、異常なクロック（時刻Ｔ０）以降は、出力信号Ｄｔの状態いかんにかかわらず、固定値“０”となる。
つまり、フリップフロップ６１においてクロック立ち上がり時のＸＯＲｏｕｔ信号の信号値が一度でも“１”になれば、固定値“０”が出力され続ける。
【００３２】
また、図３は、本実施の形態の信号処理装置１００において正常なクロック信号ＣＫが入力された場合のフリップフロップ６等のタイミング図である。
【００３３】
ここで、遅延素子３の遅延量を、演算回路１の出力が確定する最小時間から、フリップフロップ６のセットアップ時間とホールド時間を引いた時間とする理由を説明する。
ＸＯＲ素子４には、確定状態７２０の出力信号Ｄｔと確定状態７２０の遅延信号Ｄｄが並行して入力されなければならない。
図２では、出力信号Ｄｔと遅延信号Ｄｄの＜１＞の区間が重なる区間がなければならない。
遅延素子３の遅延量を、確定状態７２０の最小時間にすると、出力信号Ｄｔと遅延信号Ｄｄの＜１＞の区間が重なる区間が無くなってしまう可能性がある。
出力信号Ｄｔの確定状態７２０の時間と遅延信号Ｄｄの確定状態７２０の時間とが重なるためには、遅延素子３の遅延量は、確定状態７２０の最小時間よりも短い時間とする必要がある。
一方で、フリップフロップ６の適正動作のためにはセットアップ時間とホールド時間とを確保する必要があり、遅延量に、フリップフロップ６のセットアップ時間とホールド時間を反映させる必要がある。
このような要請から、遅延素子３の遅延量は、確定状態７２０の最小時間からフリップフロップ６のセットアップ時間とホールド時間を引いた時間としている。
【００３４】
以上、本実施の形態に係るセキュア演算装置では、演算回路の出力信号を遅延させ、出力信号と遅延信号の一致不一致を判定し、不一致の判定結果は持続保持するようにしている。
つまり、図２において、クロック立ち上がり時に信号値“１”のＸＯＲｏｕｔ信号がフリップフロップ６１に入力されると、Ｓｅｌ信号が“０”で固定される。
このため、異常なクロックが発生しても、不確定状態の出力信号が出力されることがなく、代わりに固定値が出力される。
つまり、確定状態の出力信号と確定状態の遅延信号が比較された場合のみ、出力信号と遅延信号とが一致するので、異常なクロックの発生によって出力信号と遅延信号とが一致しない場合でも、不確定状態の出力信号が出力されることがない。
【００３５】
このため、本実施の形態のセキュア演算装置は、異常クロックを誘発させ、回路内部の故障状態に基づく故障データを出力させて、秘密情報を導き出す故障誘導攻撃に対して耐性を有する。
【００３６】
以上、本実施の形態では、
演算装置においてデータと秘密データを組み合わせて演算された演算結果と、演算結果を遅延させた遅延信号とを比較し、両者が不一致の場合、演算結果に代えて固定値を出力するセキュア演算装置を説明した。
【００３７】
また、本実施の形態に係るセキュア演算装置は、演算結果と遅延信号が不一致の場合、不一致状態を一連の演算が終了するまで保持し、演算結果に代えて固定値を出力することを説明した。
【００３８】
また、本実施の形態に係るセキュア演算装置は、演算回路の出力が確定する最小時間からフリップフロップのセットアップ時間及びホールド時間を引いた遅延量を有する遅延素子を使用することを説明した。
【符号の説明】
【００３９】
１  演算回路、３  遅延素子、４  ＸＯＲ素子、５  ＡＮＤ素子、６  フリップフロップ、７  セット付フリップフロップ、１１  演算回路、１６  フリップフロップ、６１  フリップフロップ、１００  信号処理装置。
【図１】
0005449623.tif 000002
【図２】
0005449623.tif 000003
【図３】
0005449623.tif 000004
【図４】
0005449623.tif 000005
【図５】
0005449623.tif 000006
【図６】
0005449623.tif 000007
【図７】
0005449623.tif 000008