(57)【要約】【課題】第三者による不正な攻撃によって故障動作を引き起こされた場合でも、故障動作を検出し、回路動作を停止することが可能となるような半導体装置を提供する。【解決手段】複数のフリップフロップを含む信号処理回路を有する半導体装置において、前記信号処理回路は、フリップフロップの入力信号を入力としパリティデータを生成する第１のパリティ生成回路と、前記第１のパリティ生成回路の出力をラッチするための、パリティ格納回路と、フリップフロップの出力信号を入力としパリティデータを生成する第２のパリティ生成回路と、前記パリティ格納回路の出力と第２のパリティ生成回路の出力とを比較し、不一致の場合に異常検出信号を出力するパリティ比較回路を備える。【選択図】図２
2008289086.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップを含む信号処理回路を有する半導体装置であって、
前記信号処理回路は、
前記フリップフロップの入力信号を入力とし、パリティデータを生成する第１のパリティ生成回路と、
前記第１のパリティ生成回路で生成したパリティデータをラッチするための、パリティ格納回路と、
前記フリップフロップの出力信号を入力とし、パリティデータを生成する第２のパリティ生成回路と、
前記パリティ格納回路にラッチしたパリティデータと前記第２のパリティ生成回路で生成したパリティデータとを比較し、不一致の場合に異常検出信号を出力するパリティ比較回路とを備える、半導体装置。
【請求項２】
複数のフリップフロップを含む信号処理回路を有する半導体装置であって、
前記信号処理回路は、
前記フリップフロップの入力信号を入力とし、パリティデータを生成するパリティ生成回路と、
前記パリティ生成回路で生成したパリティデータを第１のタイミングでラッチするための、第１のパリティ格納回路と、
前記パリティ生成回路で生成したパリティデータを前記第１のタイミングとは異なる第２のタイミングでラッチするための、第２のパリティ格納回路と、
前記第２のパリティ格納回路にラッチしたパリティデータを前記第１のタイミングでラッチするための、第３のパリティ格納回路と、
前記第１のパリティ格納回路にラッチしたパリティデータと前記第３のパリティ格納回路にラッチしたパリティデータとを比較し、不一致の場合に異常検出信号を出力するパリティ比較回路とを備える、半導体装置。
【請求項３】
複数のフリップフロップを含む信号処理回路を有する半導体装置であって、
前記信号処理回路は、
前記フリップフロップの入力信号を入力とし、パリティデータを生成する第１のパリティ生成回路と、
前記第１のパリティ生成回路で生成したパリティデータを第１のタイミングでラッチするための、第１のパリティ格納回路と、
前記第１のパリティ生成回路で生成したパリティデータを前記第１のタイミングとは異なる第２のタイミングでラッチするための、第２のパリティ格納回路と、
前記第２のパリティ格納回路にラッチしたパリティデータを前記第１のタイミングでラッチするための、第３のパリティ格納回路と、
前記フリップフロップの出力信号を入力とし、パリティデータを生成する第２のパリティ生成回路と、
前記第１のパリティ格納回路にラッチしたパリティデータと前記第３のパリティ格納回路にラッチしたパリティデータと前記第２のパリティ生成回路で生成したパリティデータとを比較し、いずれか一つでも不一致の場合に異常検出信号を出力するパリティ比較回路とを備える、半導体装置。
【請求項４】
前記第１のタイミングは、システムクロックの立ち上がりのタイミングであり、
前記第１のタイミングとは異なる前記第２のタイミングは、システムクロックの立ち下がりのタイミングであることを特徴とする、請求項２又は３に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理回路を有する半導体装置に関し、より特定的には、信号処理回路の故障動作を検知することにより、故障動作を利用した秘匿データの改竄、漏洩を防止するための技術に関する。
【背景技術】
【０００２】
近年、メッセージの暗号化、デジタル署名、認証等を必要とするアプリケーションに使用するシステムＬＳＩとして、暗号処理機能を備えたシステムＬＳＩが増加している。それに伴い、信号処理回路の故障動作を利用した秘匿データの改竄、漏洩を防止するため、このようなセキュリティに関する機能を備えたＬＳＩにとって耐タンパ性の向上が最重要課題となる。
【０００３】
ＬＳＩに対する攻撃方法としては、チップを破壊して回路の観察や波形観測、回路の改造等を行う破壊攻撃と、チップを破壊せずにＬＳＩの消費電力や電源波形から暗号鍵等を推定する非破壊攻撃とがある。非破壊攻撃の一つとして、処理の実行中にチップに加熱、放射線照射、光照射等により故障動作を発生させて、正常動作時と故障動作時との出力の違いから暗号鍵等を推定するＤＦＡ（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｆａｕｌｔ  Ａｎａｌｙｓｉｓ）がある。
【０００４】
光照射によるＤＦＡ対策として、光を検知する光検知素子をチップ上に配置し、強い光照射を検知するとＣＰＵをリセットするなど、チップが動作しなくなるようにする対策がある。また、別の方法として、例えば特許文献１に開示されている技術では、論理的に同じ処理を行う回路に並行して処理をさせて、それらの出力に矛盾があれば処理を停止する方法が提案されている。
【特許文献１】特開２００６−２２９４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した光検知素子を用いた対策では、特定箇所を誤動作させるために非常に小さい範囲を照射された場合には、検出することが困難であるという問題がある。また、特許文献１に開示されている技術のように、論理的に同じ処理を行う回路に並行して処理をさせる対策では、回路面積が大幅に増大してしまうという問題がある。
【０００６】
それ故に、本発明の目的は、回路面積の増大を抑制しながら、信号処理回路の故障動作を検知し、故障動作を利用した秘匿データの改竄、漏洩を防止できる半導体装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、パリティデータを生成し、生成したパリティデータを比較することによって故障動作を検出する半導体装置に向けられている。本発明の半導体装置は、信号処理回路と制御回路とを備え、信号処理回路において、パリティデータを生成するパリティ生成回路と、パリティ生成回路で生成されたパリティデータをラッチするパリティ格納回路と、パリティ生成回路で生成されたパリティデータとパリティ格納回路にラッチされたパリティデータとを比較するパリティ比較回路とを備える。上記構成により、パリティ比較回路が、故障動作を検出した場合、制御回路に異常検知信号を出力し、制御回路は、信号処理回路から異常検出信号が入力された場合、リセット信号を出力し、信号処理回路の動作をリセットすることによって上記目的を達成させる。
【０００８】
好ましい信号処理回路は、フリップフロップの入力信号を入力とし、パリティデータを生成する第１のパリティ生成回路と、第１のパリティ生成回路で生成したパリティデータをラッチするためのパリティ格納回路と、フリップフロップの出力信号を入力とし、パリティデータを生成する第２のパリティ生成回路と、パリティ格納回路にラッチしたパリティデータと第２のパリティ生成回路で生成したパリティデータとを比較し、不一致の場合異常検出信号を出力するパリティ比較回路とで構成される。
【０００９】
この構成の場合、第三者による不正な攻撃によって信号処理回路内のフリップフロップの出力データが反転した場合であっても、パリティ格納回路にラッチしたパリティデータと第２のパリティ生成回路で生成したパリティデータとが異なる信号波形になるために、パリティ比較回路が異常検出信号を出力することで、故障動作の検出が可能である。この異常検出信号により、例えばＣＰＵの動作を停止させることにより、故障動作を利用したＤＦＡを防止することが可能となる。
【００１０】
また、他の好ましい信号処理回路は、フリップフロップの入力信号を入力とし、パリティデータを生成するパリティ生成回路と、パリティ生成回路で生成したパリティデータを第１のタイミングでラッチするための、第１のパリティ格納回路と、パリティ生成回路で生成したパリティデータを第１のタイミングとは異なる第２のタイミングでラッチするための、第２のパリティ格納回路と、第２のパリティ格納回路にラッチしたパリティデータを第１のタイミングでラッチするための、第３のパリティ格納回路と、第１のパリティ格納回路にラッチしたパリティデータと第３のパリティ格納回路にラッチしたパリティデータとを比較し、不一致の場合、異常検出信号を出力するパリティ比較回路とで構成される。
【００１１】
この構成の場合、第三者による不正な攻撃によって信号処理回路内の組合せ回路の出力データが反転した場合であっても、第１のパリティ格納回路にラッチしたパリティデータと第３のパリティ格納回路にラッチしたパリティデータとが異なる信号波形になるために、パリティ比較回路が異常検出信号を出力することで、故障動作の検出が可能となる。
【００１２】
また、他の好ましい信号処理回路は、フリップフロップの入力信号を入力とし、パリティデータを生成する第１のパリティ生成回路と、第１のパリティ生成回路で生成したパリティデータを第１のタイミングでラッチするための、第１のパリティ格納回路と、第１のパリティ生成回路で生成したパリティデータを第１のタイミングとは異なる第２のタイミングでラッチするための、第２のパリティ格納回路と、第２のパリティ格納回路にラッチしたパリティデータを第１のタイミングでラッチするための、第３のパリティ格納回路と、フリップフロップの出力信号を入力とし、パリティデータを生成する第２のパリティ生成回路と、第１のパリティ格納回路にラッチしたパリティデータと第３のパリティ格納回路にラッチしたパリティデータと第２のパリティ生成回路で生成したパリティデータとを比較し、いずれか一つでも不一致の場合、異常検出信号を出力するパリティ比較回路とで構成される。
【００１３】
この構成の場合、第三者による不正な攻撃によって信号処理回路内のフリップフロップの出力データ、または組合せ回路の出力データが反転した場合であっても、第１のパリティ格納回路にラッチしたパリティデータと第３のパリティ格納回路にラッチしたパリティデータと第２のパリティ生成回路で生成したパリティデータのいずれか一つが異なる信号波形になるために、パリティ比較回路が異常検出信号を出力することで、故障動作の検出が可能となる。
【発明の効果】
【００１４】
上述のように、本発明によれば、小規模の回路の追加で、信号処理回路の故障動作を検知し、故障動作を利用した秘匿データの改竄、漏洩をできないようにすることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。図１は、本発明の第１〜３の実施形態に係る半導体装置のブロック図である。本実施形態の半導体装置は、信号処理回路１０と、制御回路２０とから構成されている。制御回路２０には、信号処理回路１０からの出力信号である異常検知信号が入力される。制御回路２０は、信号処理回路１０からの異常検出信号を判断し、異常を検出した場合、リセット信号を出力する。このリセット信号により、信号処理回路１０の動作がリセットされる。尚、このリセット信号が出力された場合の信号処理回路１０の動作を制御する方法としては、信号処理回路１０への入力信号の遮断、または電源供給の停止等が挙げられる。信号処理回路１０の回路は、例えば暗号処理回路であったり、ＣＰＵであったり、様々な回路が考えられる。
【００１６】
以下、第１〜３の実施形態で、パリティデータによって故障動作を検知し、異常検知信号を出力する信号処理回路について、さらに詳しく説明する。
【００１７】
（第１の実施形態）
図２は、第１の実施形態に係る信号処理回路のブロック図である。本実施形態の信号処理回路は、ｎ個のフリップフロップ（Ｆ／Ｆ）１−１〜１−ｎと、組合せ回路２と、第１のパリティ生成回路３と、第２のパリティ生成回路４と、パリティ格納回路５と、パリティ比較回路６とから構成されている。
【００１８】
フリップフロップ１−１〜１−ｎは、システムクロックの立ち上がりでデータを取り込むディレイフリップフロップ（Ｄ−ＦＦ）である。また、第１のパリティ生成回路３と、第２のパリティ生成回路４とは、同じ構成の回路であり、偶数パリティを生成する回路である。パリティ格納回路５は、第１のパリティ生成回路３で生成されたパリティデータをラッチするための回路であり、システムクロックの立ち上がりのタイミングでデータを取り込むＤ−ＦＦである。パリティ比較回路６は、パリティ格納回路５にラッチしたパリティデータと、第２のパリティ生成回路４で生成したパリティデータとを比較するための回路である。
【００１９】
次に、図３Ａおよび図３Ｂのタイミングチャートを参照しながら、図２の信号処理回路の動作について説明する。ここでは、本実施形態における図２の信号処理回路のうち、フリップフロップが、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３の３個の場合を例に挙げる。また、パリティ比較回路６から出力される異常検出信号のレベルを正常時はＬｏｗ、異常検出時はＨｉｇｈとして説明する。
【００２０】
図３Ａおよび図３Ｂは、システムクロック、各フリップフロップの入力信号、出力信号、第１のパリティ生成回路３で生成されたパリティデータの出力、パリティ格納回路５にラッチされたパリティデータの出力、第２のパリティ生成回路４で生成されたパリティデータの出力、およびパリティ比較回路６から出力される異常検出信号の波形を示している。また、システムクロックの立ち上がりの時刻を順にｔ０、ｔ１、ｔ２、ｔ３、ｔ４、ｔ５、およびｔ６とする。
【００２１】
図３Ａは、正常時の動作を示すタイミングチャートである。第１のパリティ生成回路３は、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３への入力信号を入力として、偶数パリティを生成している。
【００２２】
また、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３は、システムクロックの立ち上がりでデータを取り込む。例えば、時刻ｔ１と時刻ｔ２の間で、フリップフロップ１−１の入力信号はＬｏｗからＨｉｇｈに変化しているが、フリップフロップ１−１の出力信号は、時刻ｔ１と時刻ｔ２の間では、Ｌｏｗのままであり、システムクロックの立ち上がりである時刻ｔ２でデータを取り込み、Ｈｉｇｈに変化する。
【００２３】
また、第２のパリティ生成回路４は、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３から出力される出力信号を入力として、偶数パリティを生成している。
【００２４】
また、第１のパリティ生成回路３の出力は、システムクロックが立ち上がるタイミングでパリティ格納回路５に取り込まれる。例えば、時刻ｔ０と時刻ｔ１の間で、第１のパリティ生成回路３の出力はＬｏｗからＨｉｇｈに変化しているが、パリティ格納回路５の出力は時刻ｔ０とｔ１の間では、Ｌｏｗのままであり、システムクロックの立ち上がりである時刻ｔ１でデータを取り込み、Ｈｉｇｈに変化する。
【００２５】
よって、正常時は、第２のパリティ生成回路４の出力とパリティ格納回路５の出力とは一致するので、異常検知信号はＬｏｗレベル出力となる。
【００２６】
図３Ｂは、異常時の動作を示すタイミングチャートである。本実施形態では、時刻ｔ４と時刻ｔ５の間の時刻ｔ４’において、第三者による不正な攻撃によってフリップフロップ１−１の出力信号が反転してしまった場合について説明する。なお、反転している部分を図３Ｂ中の反転部Ａ１として示している。
【００２７】
時刻ｔ４’には、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３への入力信号は変化していないことから、第１のパリティ生成回路３の出力は変化せず、Ｌｏｗのままである。また、正常時と同様、第１のパリティ生成回路３の出力は、システムクロックが立ち上がるタイミングでパリティ格納回路５に取り込まれる。
【００２８】
一方、時刻ｔ４’において、反転部Ａ１に示すようにフリップフロップ１−１の出力信号は反転しているため、フリップフロップ１−１の出力信号を入力としてパリティデータを生成している第２のパリティ生成回路４の出力は、ＨｉｇｈからＬｏｗへ変化する（図３Ｂ中の反転部Ａ２）。よって、パリティ格納回路５の出力と時刻ｔ４’に変化した第２のパリティ生成回路４の出力は不一致となり、異常検知信号がＨｉｇｈレベル出力となる（図３Ｂ中の反転部Ａ３）。
【００２９】
以上のように、本発明の第１の実施形態に係る半導体装置によれば、第三者による不正な攻撃によってフリップフロップの出力信号が反転してしまった場合、異常を検出し、回路動作をリセットすることで、故障動作を利用した暗号鍵の漏洩等を防止することが可能となる。また、異常検知に必要な回路は比較的小さいので、回路面積の増大を抑制しながらセキュリティを強化することが可能となる。
【００３０】
（第２の実施形態）
図４は、第２の実施形態に係る信号処理回路のブロック図である。本実施形態の信号処理回路は、ｎ個のフリップフロップ（Ｆ／Ｆ）１−１〜１−ｎと、組合せ回路２と、パリティ生成回路３と、第１のパリティ格納回路５と、第２のパリティ格納回路７と、第３のパリティ格納回路８と、パリティ比較回路６とから構成されている。
【００３１】
フリップフロップ１−１〜１−ｎは、第１の実施形態と同様、システムクロックの立ち上がりでデータを取り込むディレイフリップフロップ（Ｄ−ＦＦ）であり、パリティ生成回路３は、偶数パリティを生成する回路である。また、第１のパリティ格納回路５は、パリティ生成回路３で生成したパリティデータをラッチするための回路であり、第１のタイミングでデータを取り込むＤ−ＦＦである。第２のパリティ格納回路７は、パリティ生成回路３で生成したパリティデータをラッチするための回路であり、第１のタイミングとは異なる第２のタイミングでデータを取り込むＤ−ＦＦである。第３のパリティ格納回路８は、第２のパリティ格納回路７にラッチしたパリティデータをラッチするための回路であり、第１のタイミングでデータを取り込むＤ−ＦＦである。なお、この例では、第１のタイミングは、システムクロックの立ち上がりのタイミングとし、第１のタイミングとは異なる第２のタイミングは、システムクロックの立ち下がりのタイミングとしている。パリティ比較回路６は、第１のパリティ格納回路５にラッチしたパリティデータと、第３のパリティ格納回路８にラッチしたパリティデータとを比較するための回路である。
【００３２】
次に、図５Ａおよび図５Ｂのタイミングチャートを参照しながら、図４の信号処理回路の動作について説明する。ここでは、本実施形態における図４の信号処理回路のうち、フリップフロップが、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３の３個の場合を例に挙げる。また、パリティ比較回路６から出力される異常検出信号のレベルを正常時はＬｏｗ、異常検出時はＨｉｇｈとして説明する。
【００３３】
図５Ａおよび図５Ｂは、システムクロック、各フリップフロップの入力信号、パリティ生成回路３で生成されたパリティデータの出力、第１のパリティ格納回路５にラッチされたパリティデータの出力、第２のパリティ格納回路７にラッチされたパリティデータの出力、第３のパリティ格納回路８にラッチされたパリティデータの出力、およびパリティ比較回路６から出力される異常検出信号の波形を示している。また、システムクロックの立ち上がりの時刻を順にｔ０、ｔ１、ｔ２、ｔ３、ｔ４、ｔ５、およびｔ６とする。
【００３４】
図５Ａは、正常時の動作を示すタイミングチャートである。パリティ生成回路３は、フリップフロップ１−１、フリップフロップ１−２、およびフリップフロップ１−３への入力信号を入力として、偶数パリティを生成している。
【００３５】
また、パリティ生成回路３の出力は、システムクロックの立ち上がるタイミングで第１のパリティ格納回路５に取り込まれ、システムクロックの立ち下がるタイミングで第２のパリティ格納回路７に取り込まれる。例えば、時刻ｔ０とシステムクロックの立ち下がりである時刻ｔ０’間で、パリティ生成回路３の出力はＬｏｗからＨｉｇｈに変化しているが、第１のパリティ格納回路５の出力は、システムクロックの立ち上がりである時刻ｔ１でデータを取り込み、ＬｏｗからＨｉｇｈに変化する。
【００３６】
一方、第２のパリティ格納回路７は、システムクロックの立ち下がりである時刻ｔ０’のタイミングでデータを取り込み、ＬｏｗからＨｉｇｈに変化する。さらに、第３のパリティ格納回路８は、システムクロックの立ち上がるタイミングで、第２のパリティ格納回路７の出力を取り込む。つまり、上記の場合、時刻ｔ１のタイミングでデータを取り込む。
【００３７】
よって、正常時は、第１のパリティ格納回路５の出力と第３のパリティ格納回路８の出力とは一致するので、異常検知信号はＬｏｗレベル出力となる。
【００３８】
図５Ｂは、異常時の動作を示すタイミングチャートである。本実施形態では、時刻ｔ３と時刻ｔ４の間の時刻ｔ３’において、第三者による不正な攻撃によって組合せ回路２の出力信号の一つが反転してしまった場合について説明する。なお、反転している部分を図５Ｂ中の反転部Ｂ１とする。
【００３９】
時刻ｔ３’において、反転部Ｂ１に示すようにパリティ生成回路３の入力の一つであるフリップフロップ１−３への入力信号が反転しているため、パリティ生成回路３の出力は、ＨｉｇｈからＬｏｗへ変化する（図５Ｂ中の反転部Ｂ２）。また、正常時と同様、パリティ生成回路３の出力は、システムクロックが立ち上がるタイミングである時刻ｔ４で、第１のパリティ格納回路５に取り込まれるため、時刻ｔ４においてパリティ格納回路５の出力も反転してしまう（図５Ｂ中の反転部Ｂ３）。
【００４０】
しかし、第２のパリティ格納回路７が、パリティ生成回路３の出力を取り込むタイミング、つまり、システムクロックが立ち下がる時刻ｔ４’において、第三者による不正な攻撃によって反転していた信号が、正常状態に戻っている。このため、第２のパリティ格納回路７は、第三者による不正な攻撃によって反転した状態から元に戻った正常状態の信号より生成されたパリティ生成回路３の出力をラッチする。さらに、第３のパリティ格納回路８は、システムクロックが立ち上がるタイミングで第２のパリティ格納回路７の出力をラッチする。つまり、時刻ｔ５のタイミングでデータを取り込む。
【００４１】
よって、第１のパリティ格納回路５の出力と第３のパリティ格納回路８の出力は、時刻ｔ４と時刻ｔ５の間において不一致となるため（図５Ｂ中の反転部Ｂ４）、異常検知信号がＨｉｇｈレベル出力となり、故障動作の検出が可能となる。
【００４２】
以上のように、本発明の第２の実施形態に係る半導体装置によれば、第三者による不正な攻撃によって組合せ回路の出力信号が反転してしまった場合、異常を検出し、回路動作をリセットすることで、故障動作を利用した暗号鍵の漏洩等を防止することが可能となる。また、異常検知に必要な回路は比較的小さいので、回路面積の増大を抑制しながらセキュリティを強化することが可能となる。
【００４３】
なお、本実施形態では、各Ｄ−ＦＦがデータを取り込むタイミングとして、第１のタイミングはシステムクロックの立ち上がりとし、第２のタイミングは当該システムクロックの立ち下がりとしたが、例えば、当該システムクロックとは周波数の異なる第２のシステムクロックを生成し、第２のシステムクロックの立ち上がりのタイミングを第２のタイミングとしても構わない。
【００４４】
（第３の実施形態）
図６は、第３の実施形態に係る信号処理回路のブロック図である。本実施形態の信号処理回路は、ｎ個のフリップフロップ（Ｆ／Ｆ）１−１〜１−ｎと、組合せ回路２と、第１のパリティ生成回路３と、第２のパリティ生成回路４と、第１のパリティ格納回路５と、第２のパリティ格納回路７と、第３のパリティ格納回路８と、パリティ比較回路６とから構成されている。
【００４５】
本実施形態は、第１の実施形態と第２の実施形態を組み合わせたものであり、各構成要素の基本的な動作は上述した実施形態で示した内容と同様である。フリップフロップ１−１〜１−ｎは、システムクロックの立ち上がりでデータを取り込むディレイフリップフロップ（Ｄ−ＦＦ）であり、第１のパリティ生成回路３と、第２のパリティ生成回路４とは、偶数パリティを生成する回路である。
【００４６】
第１のパリティ格納回路５は、第１のパリティ生成回路３で生成したパリティデータを、システムクロックの立ち上がりのタイミングで取り込むＤ−ＦＦであり、第２のパリティ格納回路７は、第１のパリティ生成回路３で生成したパリティデータを、システムクロックの立ち下がりのタイミングで取り込むＤ−ＦＦであり、第３のパリティ格納回路８は、第２のパリティ格納回路７にラッチしたパリティデータを、システムクロックの立ち上がりのタイミングで取り込むＤ−ＦＦである。パリティ比較回路６は、第１のパリティ格納回路５にラッチしたパリティデータと、第３のパリティ格納回路８にラッチしたパリティデータと、第２のパリティ生成回路４で生成したパリティデータとを比較するための回路である。
【００４７】
本実施形態は、第１の実施形態に示したフリップフロップの出力信号の反転による故障の検出と、第２の実施形態に示した組合せ回路の出力信号の反転による故障の検出とを同時に行う構成になっている。すなわち、第三者による不正な攻撃によってフリップフロップの出力信号が反転した場合には、第１のパリティ格納回路５の出力と、第２のパリティ生成回路４の出力が異なる信号となり異常検出信号が出力され、組合せ回路の出力信号の反転した場合には、第１のパリティ格納回路５の出力と、第３のパリティ格納回路８の出力が異なる信号となり異常検出信号が出力される。
【００４８】
以上のように、本発明の第３の実施形態に係る半導体装置によれば、第三者による不正な攻撃によってフリップフロップの出力信号が反転してしまった場合や、組合せ回路の出力信号が反転してしまった場合、異常を検出し、回路動作をリセットすることで、故障動作を利用した暗号鍵の漏洩等を防止することが可能となる。また、異常検知に必要な回路は比較的小さいので、回路面積の増大を抑制しながらセキュリティを強化することが可能となる。
【００４９】
（第４の実施形態）
図７は、第４の実施形態に係る半導体装置のブロック図である。本実施形態の半導体装置は、ｎ個の信号処理回路１０−１〜１０−ｎと、制御回路２０とから構成されている。
【００５０】
信号処理回路１０−１〜１０−ｎは、第１〜３の実施形態で示したいずれかの信号処理回路である。制御回路２０は、各信号処理回路１０−１〜１０−ｎからの出力信号である異常検知信号１〜ｎが入力され、異常検出信号により一つでも異常を検出した場合、リセット信号を出力する。このリセット信号により、すべての信号処理回路１０−１〜１０−ｎの動作がリセットされる。
【００５１】
以上のように、本発明の第４の実施形態に係る半導体装置によれば、第三者による不正な攻撃によって任意の１つの信号処理回路が異常を検知した場合、すべての信号処理回路の動作をリセットすることで、故障動作を利用した暗号鍵の漏洩等を防止することが可能となる。
【産業上の利用可能性】
【００５２】
本発明に係る半導体装置は、メッセージの暗号化、デジタル署名、認証等を必要とするアプリケーションに使用される耐タンパ性の向上が要求されるシステムＬＳＩ等の半導体装置において有用である。
【図面の簡単な説明】
【００５３】
【図１】第１〜３の実施形態に係る半導体装置の構成図
【図２】第１の実施形態に係る信号処理回路の構成図
【図３Ａ】図２に示した信号処理回路の正常時の動作を示すタイミングチャート
【図３Ｂ】図２に示した信号処理回路の異常時の動作を示すタイミングチャート
【図４】第２の実施形態に係る信号処理回路の構成図
【図５Ａ】図４に示した信号処理回路の正常時の動作を示すタイミングチャート
【図５Ｂ】図４に示した信号処理回路の異常時の動作を示すタイミングチャート
【図６】第３の実施形態に係る信号処理回路の構成図
【図７】第４の実施形態に係る半導体装置の構成図
【符号の説明】
【００５４】
１−１〜１−ｎ  フリップフロップ
２  組合せ回路
３、４  パリティ生成回路
５、７、８  パリティ格納回路
６  パリティ比較回路
１０、１０−１〜１０−ｎ  信号処理回路
２０  制御回路
【図１】
2008289086.tif 000003
【図２】
2008289086.tif 000004
【図３Ａ】
2008289086.tif 000005
【図３Ｂ】
2008289086.tif 000006
【図４】
2008289086.tif 000007
【図５Ａ】
2008289086.tif 000008
【図５Ｂ】
2008289086.tif 000009
【図６】
2008289086.tif 000010
【図７】
2008289086.tif 000011