(57)【特許請求の範囲】
【請求項１】
電子回路であって、
第１の入力配線と第１の出力配線とを備えた第一のＮＡＮＤ又はＮＯＲ回路と、
前記第１の入力配線から分岐した第２の入力配線と第２の出力配線とを備えた第二のＮＡＮＤ又はＮＯＲ回路と、
前記第一のＮＡＮＤ又はＮＯＲ回路の前記第１の出力配線と接続され、前記第二のＮＡＮＤ又はＮＯＲ回路の前記第２の入力配線と異なる入力配線を形成する第１の配線パターンと、
前記第二のＮＡＮＤ又はＮＯＲ回路の前記第２の出力配線と接続され、前記第一のＮＡＮＤ又はＮＯＲ回路の前記第１の入力配線と異なる入力配線を形成する第２の配線パターンとを備え、
前記第１の出力配線または前記第１の配線パターンまたは前記第２の出力配線または前記第２の配線パターンの少なくとも一部が折り返し形状及び／又は旋回形状である配線パターンを備え、
前記配線パターンは、外的作用の検出対象領域に延在し、前記第１の出力配線または前記第１の配線パターンまたは前記第２の出力配線または前記第２の配線パターンのいずれかの出力の変化により前記外的作用の検出対象領域に対する外的作用が加えられたことが検出されるように構成され、
前記外的作用が検出される前の前記第１の出力配線と前記第２の出力配線との出力が定数であるか乱数であるかを判定し、前記第１の出力配線と前記第２の出力配線との出力が定数である場合、前記電子回路におけるクロック信号の状態を変更し、前記第１の出力配線と前記第２の出力配線との出力が乱数である場合、前記クロック信号の状態を維持する調整回路を備える、
ことを特徴とする電子回路。
【請求項２】
前記電子回路を複数備えることを特徴とする請求項１に記載の電子回路。
【請求項３】
前記折り返し形状及び／又は旋回形状である配線パターンを外的作用の検出対象領域に延在することを特徴とする請求項１または２のいずれか一項に記載の電子回路。
【請求項４】
秘密情報を出力するセキュリティ回路をさらに備え、
前記セキュリティ回路からの出力の読み取りを行う出力読み取り部に前記折り返し形状及び／又は旋回形状である配線パターンを延在することを特徴とする請求項１乃至３のいずれか一項に記載の電子回路。
【請求項５】
外的作用検出用ラッチ回路であって、
第１の入力配線と第１の出力配線とを備えた第一のＮＡＮＤ又はＮＯＲ回路と、
前記第１の入力配線から分岐した第２の入力配線と第２の出力配線とを備えた第二のＮＡＮＤ又はＮＯＲ回路と、
前記第一のＮＡＮＤ又はＮＯＲ回路の前記第１の出力配線と接続され、前記第二のＮＡＮＤ又はＮＯＲ回路の前記第２の入力配線と異なる入力配線を形成する第１の配線パターンと、
前記第二のＮＡＮＤ又はＮＯＲ回路の前記第２の出力配線と接続され、前記第一のＮＡＮＤ又はＮＯＲ回路の前記第１の入力配線と異なる入力配線を形成する第２の配線パターンとを備え、
前記第１の出力配線または前記第１の配線パターンまたは前記第２の出力配線または前記第２の配線パターンの少なくとも一部が折り返し形状及び／又は旋回形状である配線パターンを備え、
前記配線パターンは、外的作用の検出対象領域に延在し、前記第１の出力配線または前記第１の配線パターンまたは前記第２の出力配線または前記第２の配線パターンのいずれかの出力の変化により前記外的作用の検出対象領域に対する外的作用が加えられたことを通知するように構成され、
前記外的作用が検出される前の前記第１の出力配線と前記第２の出力配線との出力が定数であるか乱数であるかを判定し、前記第１の出力配線と前記第２の出力配線との出力が定数である場合、前記外的作用検出用ラッチ回路におけるクロック信号の状態を変更し、前記第１の出力配線と前記第２の出力配線との出力が乱数である場合、前記クロック信号の状態を維持する調整回路を備える、
ことを特徴とする外的作用検出用ラッチ回路。
【請求項６】
前記外的作用の検出を行うラッチ回路を複数備えることを特徴とする請求項５に記載の外的作用検出用ラッチ回路。
【請求項７】
外的作用が加えられたかどうかを判定する判定部を外的作用の検出対象領域とすることを特徴とする請求項５または６のいずれか一項に記載の外的作用検出用ラッチ回路。
【請求項８】
前記ラッチ回路の出力情報を秘密情報とし、前記出力値の読み取りを行う出力読み取り部を外的作用の検出対象領域とすることを特徴とする請求項５乃至７のいずれか一項に記載の外的作用検出用ラッチ回路。
【請求項９】
前記ラッチ回路における配線の少なくとも一部が折り返し形状又は、旋回形状であることを特徴とする請求項５乃至８のいずれか一項に記載の外的作用検出用ラッチ回路。
【請求項１０】
前記複数のラッチ回路における配線の直線形状、折り返し形状又は旋回形状の少なくとも一つにおける一部又は全部が並列に配置されることを特徴とする請求項６乃至９のいずれか一項に記載の外的作用検出用ラッチ回路。
【請求項１１】
ラッチ回路において、
外的作用検出領域に配線された前記ラッチ回路における出力配線と、
前記出力配線に対し、外的作用が加えられた際の出力値の変化によって攻撃の検知を行う攻撃検知部と、
前記外的作用が検出される前の前記出力配線の出力が定数であるか乱数であるかを判定し、前記出力配線の出力が定数である場合、前記ラッチ回路におけるクロック信号の状態を変更し、前記出力配線の出力が乱数である場合、前記クロック信号の状態を維持する調整回路と、
を備えることを特徴とする外的作用検出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部からの物理的な攻撃の検知を行う電子回路に関する。
【背景技術】
【０００２】
近年、電池のバッテリー、ゲーム機のカートリッジ等、様々な製品の偽造品が出回っている。偽造品は、正規品の内部に存在するＩＣ(Integrated Circuit)チップの解析等の結果を用いて製造されるため、ＩＣチップの解析ができないよう認証機能を付与する必要がある。認証機能を実現するためには、正規品であることを保証するための秘密情報に基づいて暗号処理を行うことが必要となる。一般にこの秘密情報はＩＣチップ内部にある不揮発性メモリに書き込まれる。
【０００３】
しかし、不揮発性メモリに秘密情報を格納すると、外部からの攻撃により秘密情報を読み取られる恐れがある。攻撃手段として侵襲攻撃と呼ばれる手段が存在する。侵襲攻撃の具体的な手法としてプローブ攻撃やFIB(Focused Ion Beam)による短絡等が挙げられる。
【０００４】
これらの侵襲攻撃に対する対策手段としてはシールド回路による保護が挙げられる。シールド回路とは、チップの最上位層のシールド線と呼ばれる配線を緻密にすることで、配線を切断することなくチップ内部への侵襲攻撃を行うことを困難にする手法である。
【０００５】
上述したシールド回路では、それぞれのシールド線に一定の電流が流れており、配線が切断されると、解放されたシールド線の先の電流は0となるため、シールド回路はチップ内部への侵襲攻撃が行われていると判断し、不揮発性メモリ内の秘密情報を即座に消去するなどの対策が実現可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６３−１２４１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したシールド回路を用いる手法では、切断するシールド線に対して、一定の電位を持つ電線につないだ状態（配線の短絡）を攻撃者が作り出すことができる場合に、切断を検知することができない。その状態を作り出した後は、最上位層のシールドが形成するシールド線に向けて穴をあけることが出来るので、攻撃者はこの穴を通じて、プローブ攻撃を行うことができてしまうといった問題がある。
【０００８】
１つの側面では、本発明は、外部からの侵襲攻撃への対策を行うことを可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
第１の入力配線と第１の出力配線とを備えた第一のNAND又はNOR回路と第２の入力配線と第２の出力配線とを備えた第二のNAND又はNOR回路を有し、第一のNAND又はNOR回路の第１の出力配線と接続され、第二のNAND又はNOR回路の第２の入力配線と異なる入力配線を形成する第１の配線パターン、および、第二のNAND又はNOR回路の第２の出力配線と接続され、第一のNAND又はNOR回路の第１の入力配線と異なる入力配線を形成する第２の配線パターンを備えたラッチ回路と、外的作用の検出対象領域に対する外的作用を検知する攻撃検知部を備え、第１の出力配線、第１の配線パターン、第２の出力配線または第２の配線パターンの少なくとも一つが外的作用の検出対象領域に延在し、攻撃検知部は、第１の出力配線または第２の出力配線の出力の変化により外的作用を検出する。
【発明の効果】
【００１０】
外部からの侵襲攻撃への対策を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】攻撃検知回路の構成図である。
【図２】ＦＩＢ加工前後の攻撃検知部への出力値をまとめた表である。
【図３】第１の実施形態における攻撃検知回路の構成図である。
【図４】攻撃検知回路における攻撃検知の動作フローである。
【図５】第２の実施形態における攻撃検知回路の構成図である。
【図６】第３の実施形態における回路の構成図である。
【図７】第４の実施形態における攻撃検知回路の構成図である。
【図８】出力を乱数に調整する処理フローである。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明に係る攻撃検知回路、外的作用検出方法の実施例について説明する。
【００１３】
図１は、ＲＳラッチ（ＳＲラッチ）回路を利用した攻撃検知回路の構成例を示す。図１に示したように、実施例に係る攻撃検知回路は２つのＮＡＮＤ回路１０１及び１０２を有し、ＮＡＮＤ回路１０１、ＮＡＮＤ回路１０２には、入力値Ａが入力される。また、ＮＡＮＤ回路１０１には、ＮＡＮＤ回路１０２の出力値が出力配線１０３を介して入力される。また、ＮＡＮＤ回路１０２には、ＮＡＮＤ回路１０１の出力値が出力配線１０４を介して入力される。ＮＡＮＤ回路１０１、１０２は上述した２つの入力に基づいたＮＡＮＤ演算結果の出力を行う。また、攻撃検知回路は、ＮＡＮＤ回路１０１、１０２の出力端子に接続された出力配線１０５、１０６を有する。出力配線１０３、１０４、１０５、１０６のいずれか又は全ては、その一部又は全部に外的作用が加えられることが想定される領域に配置される。
【００１４】
なお、ＮＡＮＤ回路１０１、１０２、出力配線１０３、１０４、１０５、１０６でＲＳラッチ回路が構成される。
【００１５】
攻撃検知回路１０８は、更に、出力配線１０５、１０６と接続された攻撃検知部１０７を備え、攻撃検知部１０７は、出力配線１０５、１０６の出力値Ｂ、Ｃの変化の監視結果に応じて攻撃を検知する。
【００１６】
なお、本実施例では、上述したようにＮＡＮＤ回路１０１、１０２を用いたが、これらの代わりにＮＯＲ回路を用いても良い。また、攻撃検知回路を他の回路の用途と併用することも可能であり、例えば、出力配線１０５、１０６などから引き出した配線を更に他の回路に接続することもできる。
【００１７】
次に、図１に示した、ＲＳラッチ回路を利用した攻撃検知回路の動作について詳細に説明する。
【００１８】
図１に示した入力値Ａとして「０」を入力すると、出力値Ｂ、Ｃはともに「１」となり、この状態で安定する。ここで、入力値Ａを「０」から「１」に変化させると、２つのＮＡＮＤゲートの素子特性が完全に同一でなく、わずかに異なることなどに起因して、出力値Ｂ、Ｃは、常に「０」であったり、常に「１」であったり、「０」と「１」が変化する乱数であったりするなど状態が不安定となる。ただし、この出力の態様には再現性がある。
【００１９】
しかし、入力値を「０」から「１」に変化させると、毎回、出力の態様は同様の振舞をみせるものの、出力配線１０３、１０４、１０５、１０６に対して外的作用（外力）を加えると、状態の不安定性に起因して、出力の態様が変化する場合があることが実験により見いだされた。
【００２０】
図２はＦＩＢによる加工前、加工後のラッチ回路の出力値、測定したラッチの個数、変化の実験結果を示す表である。本実験ではラッチ回路の出力を読み取るため、ＩＣチップに対し穴を空け、出力配線に外的作用を加えた際の出力の変化の検証を行った。なお、実験に用いるラッチ回路としては、ＦＩＢ加工前において、入力値を「１」にすると、出力値Ｂが「０」となるラッチ回路、出力値Ｂが「１」となるラッチ回路、出力値Ｂが乱数となるラッチ回路をそれぞれ４つずつ用いることとした。その結果、ＦＩＢ加工前の出力値Ｂが「０」であった４つのラッチ回路のうち、２つのラッチ回路については、ＦＩＢ加工後の出力値が「０」となり、残りの２つのラッチ回路については、ＦＩＢ加工後の出力値が「１」となるものが観測された。また、ＦＩＢ加工前の出力値Ｂが「１」であった４つのラッチ回路については、ＦＩＢ加工後の出力値が全て「０」に変化することが観測された。また、ＦＩＢ加工前の出力が乱数であった４つのラッチ回路については、ＦＩＢ加工後には出力値Ｂが乱数でなく「０」となるラッチ回路が２つ、ＦＩＢ加工後には出力値が乱数でなく「１」となるラッチ回路が２つ観測された。以上の検証結果より、出力配線に対して外的作用が加えられるＦＩＢ加工前後で出力値が変化する場合があることが確認された。
【００２１】
従って、図１に示したラッチ回路の出力配線１０３、１０４、１０５、１０６を保護対象の部品の配置領域周辺に位置するように配置し、入力値を「１」に切り替えた後に、出力値Ｂ、Ｃの状態が変化したか否かを判定することでＦＩＢ攻撃などの外的作用が加えられる侵襲攻撃を検知することができる。
【００２２】
ラッチ回路の中には、外的作用が加えられても出力値が変化しないものも存在するが、外的作用が加えられることで、出力値が「１」であったものが「０」となったり、出力値が「０」であったものが「１」となったり、出力値が乱数であったものが非乱数（定数など）になったりするラッチ回路も存在するため、ある程度の場合については、出力値の状態変化により侵襲攻撃を攻撃検知部１０７で検知することができる。
【００２３】
図３は、第１の実施形態における攻撃検知回路の構成を示す。図３に示す攻撃検知回路は、外的作用検出領域２０１において密に配線されたラッチ回路の出力配線（外的作用検出配線２０２）を有する。ここで外的作用検出配線２０２は、図１における出力配線１０３、１０４、１０５、１０６の少なくとも一部に対応する。
【００２４】
このように、外的作用の検出対象領域において、ラッチ回路の出力配線は、折り返し形状及び／又はらせん形状を有するため、外的作用の検出対象領域の下方に配置された保護対象部品に対し広がりを持って保護可能であり、侵襲攻撃が加えられようとすると、外的作用の検出対象領域に配線された出力配線に対して外的作用が加えられ、ラッチ回路の出力が変化することとなる。従って、この出力の変化を攻撃検知部２０３が検知し、外的作用がなされたかどうかの判定を行うことができる。
【００２５】
次に、図３の攻撃検知回路における攻撃検知の際の動作フローについて図４を用いて説明する。
【００２６】
攻撃検知回路が実装されるＩＣチップ等の電源がＯＮとなり、電力の供給により、図３に示す入力部（ＩＮ）から入力値Ａが入力され（ステップＳ３０１）、入力値Ａに対応したラッチ回路の出力値が攻撃検知部に入力される。そして、攻撃検知部はラッチ回路の出力値のモニタリングを行う（ステップＳ３０２）。攻撃検知部にはチップ製造時のラッチ回路の特性で定まるラッチ回路の出力態様として[１]常に０、[２]常に１、[３]乱数があり、このラッチ回路がどの出力となるのかが記憶されている。この記憶情報は入出力テストにより判明したものを記憶させても良く運用中の出力をモニタし記憶しておいても良い。攻撃検知部は、ＩＣチップの電源がＯＮの状態になると、モニタリングしたラッチ回路の出力の態様がチップ製造時の出力の態様又は以前の出力の態様と一致しないことを確認したかの判定（ステップＳ３０３）を行う。ラッチ回路の出力の態様が同一かどうかの判定は比較回路もしくはソフトウェア処理等の方法を用いる。攻撃検知部に入力されたラッチ回路の出力値の態様（例えば「０」、「１」、「乱数」）が記憶内容（例えば「０」、「１」、「乱数」）に一致するかどうかの判定を実行する。出力値の態様が記憶内容に一致する場合（ステップ３０３：ＮＯ）は、物理的な攻撃がなかったと判定し、再度ラッチ回路の出力の態様をモニタリングする処理（ステップＳ３０２）を行う。一方、攻撃検知回路への入力値と記憶値の態様が等しくない場合（ステップＳ３０３：ＹＥＳ）は、攻撃検知回路は侵襲攻撃を受けたと判断し、攻撃を検知する（ステップ３０４）。攻撃を検知した後、攻撃検知回路は、予め設定された動作を行う（ステップＳ３０５）。設定された動作とはデータを保護するための動作であり、具体的には、秘密情報の消去を行う、または、以後２度とチップの電源がＯＮにならないようにするなど、チップ内部の秘密情報を読み取れないようにするものとできる。これにより秘密情報の漏えいを防ぐことができる。
【００２７】
また、外的作用による出力の変化を検知できる確率を上げるため、攻撃検知部は複数のラッチ回路の出力の態様に基づき攻撃の検知を行っても良い。例えば、Ｎ個のラッチ回路の出力が攻撃検知部に入力され、Ｎ個のうち、Ｍ個以上のラッチの出力の態様が製造時の出力の態様と異なることを検知することにより攻撃が行われたと判断しても良い。
【００２８】
図５を用いて第２の実施形態における攻撃検知回路の構成について説明する。
【００２９】
図５に示す攻撃検知回路では、攻撃検知部が外的作用検出配線４０２で保護される。攻撃者が攻撃検知部の内部に記憶されているラッチ回路製造時のラッチ回路の出力の態様を解析できた場合、解析したラッチ回路製造時のラッチ回路の出力の態様を攻撃検知部に入力することで、攻撃検知部は攻撃の検知ができなくなる可能性がある。
【００３０】
そこで、図５に示すような攻撃検知部を保護する保護回路を用いることで、攻撃者が攻撃検知部に記憶されたラッチ回路製造時のラッチ回路の出力の態様の解析を行う際に攻撃検知部が攻撃を検知し、ラッチ回路の出力の解析を困難にすることができる。
【００３１】
次に、図６に示す第３の実施形態における回路の構成について説明する。
【００３２】
図６に示す回路では、ラッチ回路の出力に基づき秘密鍵の生成を行う。
【００３３】
ラッチ回路の出力値を、秘密鍵等の別用途で使用する場合、NANDの出力配線にフリップフロップなど、秘密鍵を生成するための回路が挿入される。本構成では、この秘密鍵生成回路を囲む領域５０１はラッチ回路の外的作用検出配線５０２で覆われる。
【００３４】
ラッチ回路の出力値を別用途で使用する場合の具体例として、ラッチ回路の出力をもとに、秘密鍵を生成し認証を行う場合が挙げられる。この認証機能は、攻撃検知手段としても活用できる。ラッチ回路の出力値に基づき秘密鍵を生成する場合、攻撃者が攻撃を行うとラッチ回路の出力が変化し、ラッチ回路の出力値に基づき生成された秘密鍵が変化するため、認証に失敗し、秘密情報へのアクセスができなくなる。
【００３５】
従って、本構成を用いることで攻撃検知部を利用せず、侵襲攻撃による秘密情報の漏えいを防止できる。
【００３６】
更に、図７に示す第４の実施形態を示す攻撃検知回路の構成について説明する。
図７に示す構成は外的作用の検出前のラッチ回路の出力を乱数に調整するものである。
【００３７】
図７に示すように、攻撃検知回路１０８は調整回路６０１を出力配線１０３、１０４内に設置することにより攻撃検知部で記憶されるラッチ回路の出力の態様を調整することができる。
【００３８】
図２に示す実験結果より、ＦＩＢ加工前の出力値が「０」である場合、ＦＩＢ加工後の出力が「０」となるものが５割であり、ＦＩＢ加工後の出力が「１」となるものが５割であった。従って、ＦＩＢ加工前の出力値が「０」である場合、ＦＩＢ加工後に出力値の変化を検知できる確率は、ＦＩＢ加工後の出力値が「１」となる場合の５割程度であり、侵襲攻撃の検知を行える確率は高くない。また、ＦＩＢ加工前の出力値が「１」である場合、ＦＩＢ加工後の出力値は全て「０」となった。従って、ＦＩＢ加工前の出力値が「１」である場合、ＦＩＢ加工後の出力値は多くの場合「０」になると考えられ、変化の予測が可能である。一方、ＦＩＢ加工前の出力値が乱数である場合、ＦＩＢ加工後の出力値は乱数でなく「０」となるものが５割であり、「１」となるものが５割であった。従って、ＦＩＢ加工前の出力値が乱数である場合、ＦＩＢ加工後の出力値は非乱数（定数）となる可能性が高い。また、ＦＩＢ加工後の出力値の値は、「０」と「１」の２種類があり、攻撃者にとって、ＦＩＢ加工後の変化は予測しにくい。従って、ＦＩＢ加工前の出力値が乱数である場合はＦＩＢ加工前の出力値が「０」や「１」である場合と比較して攻撃検知回路として侵襲攻撃を検知できる可能性が高く、安全性も高いと考えられる。
【００３９】
本構成は、上記結果に基づき、ＦＩＢ加工前のラッチ回路の出力値を乱数にするため、調整回路６０１をラッチ回路に追加し、入力信号を制御する。ラッチ回路の出力の態様を乱数に調整する方法として、ラッチ回路に入力されるクロック信号を、周波数の異なる他のクロック信号に変更し、ラッチ回路の出力が乱数に変更された際に、ＲＳラッチ回路へ入力する信号の周波数を固定する手法がある。
【００４０】
図８に調整回路における出力を乱数に調整する際の処理フローを示す。
【００４１】
攻撃検知回路が実装されるＩＣチップ等の電源がＯＮとなり（ステップＳ７０１）、電力の供給により、図７に示すように、入力値Ａが入力され、入力値Ａに応じたラッチ回路の出力値が調整回路に入力される。調整回路は、ラッチ回路の出力値の態様が定数であるか乱数であるかの判定を行う（ステップＳ７０２）。ラッチ回路の出力値が乱数である場合には調整回路を介してＮＡＮＤ回路へ入力される（出力配線１０３、１０４から入力される）入力信号の周波数の固定（ステップＳ７０３）を行った後、処理を終了する。一方、ラッチ回路の出力値が定数である場合には、再度、調整回路を介してＮＡＮＤ回路へ入力される入力信号の周波数の変更（ステップ７０４）を行い、ラッチ回路の出力値が定数と乱数のどちらの態様であるかの判定を行う（ステップＳ７０５）。ラッチ回路の出力値が定数から乱数に変更された際は調整回路を介してＮＡＮＤ回路へ入力される入力信号の周波数を固定（ステップＳ７０４）した後、処理を終了する。出力値が定数である場合には、再度、調整回路を介してＮＡＮＤ回路へ入力される入力信号の周波数の変更（ステップＳ７０５）を行い、出力値が乱数に変更されるまで入力信号の周波数の変更の処理を行う。
【００４２】
また、ラッチ回路の出力値を乱数に調整する方法として、調整回路における遅延時間の変更を行っても良い。
【００４３】
以上の処理を行うことにより、チップ内に実装したラッチ回路を、乱数を出力するラッチ回路に調整することができ、より安全性の高い保護回路を構築できる。
【００４４】
本構成で示す調整回路は図３、図５、図６の構成に追加することができる。
【００４５】
また、攻撃者が調整回路へ攻撃を加えることができないように調整回路を攻撃検知回路により保護しても良い。
【符号の説明】
【００４６】
１０１、１０２  ＮＡＮＤ回路
１０３〜１０６  出力配線
１０７  攻撃検知部
１０８  攻撃検知回路
２０１、４０１、５０１  外的作用検出領域
２０２、４０２、５０２  外的作用検出配線
６０１  調整回路
【図１】
0006690238.tif 000002
【図２】
0006690238.tif 000003
【図３】
0006690238.tif 000004
【図４】
0006690238.tif 000005
【図５】
0006690238.tif 000006
【図６】
0006690238.tif 000007
【図７】
0006690238.tif 000008
【図８】
0006690238.tif 000009