JP2014063272A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2014063272A
JP2014063272A JP2012206965A JP2012206965A JP2014063272A JP 2014063272 A JP2014063272 A JP 2014063272A JP 2012206965 A JP2012206965 A JP 2012206965A JP 2012206965 A JP2012206965 A JP 2012206965A JP 2014063272 A JP2014063272 A JP 2014063272A
Authority
JP
Japan
Prior art keywords
circuit
error
detection
light
storage elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012206965A
Other languages
English (en)
Other versions
JP5954872B2 (ja
Inventor
Yoshiyuki Amanuma
佳幸 天沼
Takanori Miyoshi
孝典 三好
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012206965A priority Critical patent/JP5954872B2/ja
Priority to US14/019,343 priority patent/US8912815B2/en
Priority to TW102132417A priority patent/TWI587173B/zh
Priority to CN201310429392.9A priority patent/CN103679011B/zh
Publication of JP2014063272A publication Critical patent/JP2014063272A/ja
Priority to US14/556,160 priority patent/US9275256B2/en
Priority to US15/043,105 priority patent/US9679164B2/en
Application granted granted Critical
Publication of JP5954872B2 publication Critical patent/JP5954872B2/ja
Priority to US15/607,906 priority patent/US9904590B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】LSIに誤動作を起こさせることにより機密情報の取得や改竄を目的とした、レーザー攻撃からLSIの保持する機密情報を保護する。レーザー攻撃によって発生する、複数ビットの記憶素子の誤りのビット数が何ビットであっても、レーザー攻撃を検出することができるようにする。
【解決手段】論理回路に含まれる複数ビットの記憶素子を対象として攻撃検出回路を備える。攻撃検出回路は、符号理論などの論理演算を用いて検出することができるエラー判定回路と、光検出素子を有する光照射検出回路とを備え、エラー判定回路の検出限界を超えるビット数の誤りを、光照射検出回路が検出することができるように、光検出素子を配置して構成する。エラー判定回路による誤り検出と光照射検出回路による光照射の検出とにより、互いに補完的に外部からの故障利用攻撃を検出する。
【選択図】図1

Description

本発明は、機密情報を扱う半導体集積回路に関し、特に機密情報の不正な取得や改竄を目的とした故障利用攻撃への対策に好適に利用できるものである。
機密情報を扱う例えばセキュリティマイコンに格納されている機密情報の取得や改竄を目的として、マイコンの誤動作を利用する故障利用攻撃というものがある。誤動作を引き起こす原因としては、異常電圧、異常周波数クロックの印加、レーザー照射による攻撃等がある。レーザー照射による攻撃は局所的な部位の故障を引き起こすことが可能なため、故障利用攻撃の中でも極めて脅威であり、近年、レーザー攻撃への対策の重要性は高まっている。
レーザー攻撃への対策として、光検出器の配置、回路の二重化、誤り検出符号(例えばパリティ)を利用したデータの誤り検出などが採用されている。光検出器の配置は、機密情報を扱うマイコンが形成されている半導体チップに光検出素子を配置して、レーザーが照射されていることを直接検知するものである。回路の二重化は、単純には、フリップフロップなどの記憶素子を2個備え、2個に同じデータを入力しておき、そのデータが読み出されたときに、互いの出力を照合して、不一致の場合に故障利用攻撃がされたことを検出するものである。二重化の単位は、上記のような単純な例からCPU(Central Processing Unit)全体を二重化する例まで多様である。誤り検出は、記憶するデータに基づいて、予めパリティなどの誤り検出符号を算出しておき、記憶されたデータが再び読み出されたときに、再び誤り訂正符号を算出して、記憶したときのものと照合し、不一致の場合に故障利用攻撃がされたことを検出するものである。
特許文献1には、6トランジスタで構成されるSRAM(Static Random Access Memory)メモリセルを元にした光ディテクタが開示され(図1)、SRAMのメモリマット中に分散して配置した実施例が示されている(図4他)。また、CPUなどの論理回路を構成するセル配列の中に光ディテクタを配置した実施例(図13、第0089段落〜第0094段落)や、光検出回路を組み込んだD型フリップフロップ(図15、第0096段落〜第0097段落)が開示されている。
特許文献2には、CMOS(Complementary Metal-Oxide-Semiconductor)インバータによる光検出回路が開示されている。インバータに受光部を設け、光が照射されることによって誤動作させ、それを検知する。
特許文献3には、サイリスタ構造の光検出器が開示されている。PウェルとNウェルとそれぞれのウェル内に形成した不純物拡散層により、PNPN接合を形成して構成した光検出器であり、例えば10μm角の小さな領域に形成することができる(図3、第0029段落)。
特許文献4には、メモリとCPUを備えたコアを二重化して、同じコマンドの処理から得られるレスポンスを照合し、その結果が不一致の場合に故障利用攻撃を受けていると判断してエラー処理を実行するセキュリティデバイスが開示されている。
特許文献5には、不揮発性メモリに格納されたプログラムを実行するCPUを備えるICカードにおいて、プログラムを誤り検出符号で保護する技術が開示されている。不揮発性メモリには、命令コードごとに予めEDC(Error Detecting Code)を算出し付加して格納しておき、CPUが実行のために読み出したときにEDCを再計算して、格納されているEDCと照合する。不一致の場合には、故障利用攻撃を受けていると判断する。
特開2010-161405号公報 特開2011-165732号公報 特開2008-198700号公報 特開2009-289104号公報 特開2009-187438号公報
レーザー攻撃への対策としての光検出器の配置は、光が照射されたことを直接感知する点で有効であるが、光が照射される位置に光検出素子を配置しておくことが必須である。近年、レーザーのビーム径を数μmまで絞り、配置されている光素子を避けてレーザー光を照射する攻撃方法が現れ、光検出器では検出できないという問題が生じている。
特許文献3の図1、9などには、光検出範囲に隙間が生じないように光検出器を配置する例が開示されているが、レーザー光の光径が数百μmまで集光された場合を想定している(第0011段落)に留まり、数μmまで集光された場合には応用することができない。想定されるレーザー光の光径の数μm間隔で光検出素子を配置する必要があるが、特許文献3の図3に開示される光検出素子は10μm角であって、数μm間隔で配置すると光検出素子の面積占有が大きすぎ、コスト面で非現実的となるからである。特許文献1及び2に開示される光検出素子は、SRAMメモリセルや論理ゲートの大きさに相当する程度まで小さいので、数μm間隔で配置することも可能であるが、検出素子の面積占有が大きく、チップコストを圧迫する。さらに将来、レーザーのビーム径が、SRAMメモリセルや論理ゲートの大きさに相当する程度まで小さくなった場合には、コスト面で非現実的となる。
レーザー攻撃への対策としての回路の二重化は、レーザー攻撃に限らずあらゆる故障利用攻撃に対して耐性がある点で有効であるが、回路規模を2倍にする必要があるので、チップコストを圧迫する。例えば、特許文献4に記載される二重化ではメモリとCPUを2組備えて、同じ処理を実行させているので、チップコストに対する影響は、極めて大きい。
レーザー攻撃への対策としての誤り検出は、回路規模を2倍にまで増加させる必要がない点で有効であるが、誤り検出符号自体が持つ原理的な検出限界がある。例えば、パリティチェックやチェックサムでは、1ビットのパリティを付加して全体の1の数が偶数か奇数かのいずれか決められた方になるように、パリティを生成する。仮に偶数パリティとした場合、読み出された結果逆の奇数パリティに変化していれば、故障と判定することができる。しかし、同時に2ビットが変化した場合には、偶数パリティであったデータは偶数パリティのままであり、誤りを検出することができない。チェックサムの場合も同様である。したがってパリティチェックやチェックサムの場合には、1ビット誤りを検出することができるが、2ビット以上の誤りには、検出不能または誤検出となる。冗長ビット数を増やすことにより、多数のビット誤りまで検出することは可能であるが、それに伴って、誤り検出回路の規模は大きくなる。したがって、レーザーのビーム径が十分に小さく、誤り検出符号自体が持つ原理的な検出限界以内のビット数の誤りを発生させるときには、有効に機能するが、逆にビーム径が大きく検出限界を超えるビット数の誤りを発生させる場合には、必ずしも常に検出できるとは限らない。
以上のように、レーザー攻撃への対策としての種々の方法には、現実的なチップコストの範囲であらゆるレーザーのビーム径に対応することができる方法はない。
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によれば、下記の通りである。
すなわち、論理回路に含まれる複数ビットの記憶素子を対象として攻撃検出回路を備える。攻撃検出回路は、符号理論などの論理演算を用いて検出することができるエラー判定回路と、光検出素子を有する光照射検出回路とを備え、エラー判定回路の検出限界を超えるビット数の誤りを、光照射検出回路が検出することができるように、光検出素子を配置して構成する。エラー判定回路による誤り検出と光照射検出回路による光照射の検出とにより、互いに補完的に外部からの攻撃を検出する。
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、論理回路に対するレーザー攻撃によって発生する、複数ビットの記憶素子の誤りのビット数が何ビットであっても、レーザー攻撃を検出することができる。
図1は、実施形態1に係る半導体装置の構成例を表す説明図である。 図2は、実施形態2に係る半導体装置の具体的な構成例を表す説明図である。 図3は、実施形態2に係る半導体装置において、さらに誤り検出符号を保持する記憶素子も光照射の検出対象として保護する場合の構成例を表す説明図である。 図4は、実施形態3に係る半導体装置が3ビット誤り検出符号を利用する場合の構成例を表す説明図である。 図5は、実施形態4に係る半導体装置の二重化による保護を利用する場合の構成例を表す説明図である。 図6は、2個以上の記憶素子(フリップフロップ)への光照射を検出するための、フリップフロップと光検出素子の配置を表す説明図である。 図7は、4個以上の記憶素子(フリップフロップ)への光照射を検出するための、フリップフロップと光検出素子の配置を表す説明図である。 図8は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を複数のセルローに跨って配置する変形例を表す説明図である。 図9は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を複数のセルローに渡って斜めに跨って配置する変形例を表す説明図である。 図10は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を交互に隣接して配置する場合の説明図である。 図11は、プロセッサに対する保護を行った実施形態を表す説明図である。 図12は、プロセッサに対する保護を行った実施形態において、攻撃を検知したときにプロセッサをリセットする実施形態を表す説明図である。 図13は、光検出素子としてホトダイオードを用いた光照射検出回路の構成を表す回路図である。 図14は、光検出素子としてホトダイオードを用いた光照射検出回路の動作を表すタイミングチャートである。 図15は、光検出素子として光感応型バッファを用いた光照射検出回路の構成を表す回路図である。 図16は、光検出素子として光感応型バッファを用いた光照射検出回路の動作を表すタイミングチャートである。
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<エラー判定回路+光照射検出回路>
それぞれ1ビットの情報を記憶可能なn個(nは正の整数)の記憶素子(5_1〜5_6)と攻撃検出回路(1)とを含む論理回路(6)を備える半導体集積回路(10)であって、以下のように構成される。
前記攻撃検出回路は、エラー判定回路(2)と光照射検出回路(4)とを備え、前記エラー判定回路による前記誤りの検出と前記光照射検出回路による前記光照射の検出のいずれかを検出したときに、前記論理回路が外部から攻撃を受けたものと判定する。
前記エラー判定回路は、前記n個の記憶素子に格納される値をnビットの符号にkビット(kは正の整数)以下の誤りが発生したことを、論理演算を用いて検出することができる。
前記光照射検出回路は、光検出素子(3_1〜3_4)を有し、前記n個の記憶素子のうちのk+1個以上に光が照射されたことを検出することができる。
これにより、論理回路に対するレーザー攻撃によって発生する、複数ビットの記憶素子の誤りのビット数が何ビットであっても、レーザー攻撃を検出することができる。
〔2〕<エラー判定回路=誤り検出符号生成回路+チェック回路>
項1において、前記n個の記憶素子(5_7〜5_11、5_12〜5_16、5_17〜5_23)はmビットの誤り検出符号を格納可能なm個の記憶素子(5_11、5_16、5_23)を含む。前記エラー判定回路は、前記n個の記憶素子のうちのn−m個から誤り検出符号を生成する誤り検出符号生成回路(7)と、前記n個の記憶素子における誤りの発生を検出可能なチェック回路(8)を含む。
これにより、保護対象のn−mビットに対してmビットの誤り検出符号を生成し、これを合計したnビットの情報を保持する記憶素子を対象として、レーザー攻撃に対する保護を行うことができる。
〔3〕<パリティチェックによる保護>
項2において、前記n個の記憶素子は1ビットのパリティ符号を格納可能な1個の記憶素子(5_16)を含み、前記光照射検出回路はn−1個の光検出素子(3_8〜3_11)を備える。
前記エラー判定回路は、前記n個の記憶素子のうちのn−1個(5_12〜5_15)から前記パリティ符号を生成するパリティ符号生成回路(7)と、前記n個の記憶素子(5_12〜5_16)における誤りの発生を検出可能なパリティチェック回路(8)を含む。
前記光照射検出回路は、前記n−1個の光検出素子の少なくとも1個に光が照射されたことを検出したとき、前記n個の記憶素子のうちの2個以上に光が照射されたことを検出する。
これにより、保護対象のn−1ビットに対してパリティ符号を生成し、これを合計したnビットの情報を保持する記憶素子を対象としてパリティチェック回路を備え、保護対象回路へのレーザー攻撃に対する保護を行うことができる。パリティ符号生成回路とパリティチェック回路は、簡単な論理ゲートで構成することができ、保護のための回路規模のオーバーヘッドを抑えることができる。
〔4〕<二重化による保護>
項1において、前記n個の記憶素子は、現用系論理回路の出力であるm個の現用系記憶素子(5_24)と、前記現用系に対して二重化された予備系論理回路の出力であるm個の予備系記憶素子(5_25)を含み、前記エラー判定回路は、前記現用系記憶素子の出力と対応する前記予備系記憶素子の出力が不一致の場合に、誤りが発生したこと検出する。前記現用系記憶素子と対応する前記予備系記憶素子は、対応する2個の記憶素子の組合せがそれぞれ少なくとも1個の前記光検出素子を挟んで配置される。
これにより、二重化による保護を採用した回路において、現用系と対応する予備系に同時に誤り発生させるようなレーザー攻撃からも保護することができる。
〔5〕<1ビット誤り検出に対する光検出素子の配置>
項3において、前記n個の記憶素子から任意に選んだ2個の記憶素子は、いずれの2個の記憶素子の組合せも必ず少なくとも1個の前記光検出素子を挟んで配置される。
これにより、前記n個の記憶素子のうち2個以上の記憶素子に対して同時に行われるレーザー照射を検出することができる。
〔6〕<マクロセル>
項5において、前記n−1個の前記光検出素子と前記n個の記憶素子は、単一のセル列に互いに隣接して1個ずつ交互後に配置される。
これにより、前記n個の記憶素子のうち2個以上の記憶素子に対して同時に行われるレーザー照射を検出ることができる条件を満足するマクロセルを予め準備して使用することにより、自動レイアウトにおけるセルの配置に対して特別な考慮をすることなく、LSIのレイアウト設計を行うことができる。
〔7〕<CPUにおけるプログラムカウンタの保護>
項1において、前記論理回路はプロセッサ(20)であり、前記n個の記憶素子は前記プロセッサのプログラムカウンタ(24)を含む。
これにより、レーザー照射によって引き起こされるプログラムの異常な分岐から、LSIを保護することができる。
〔8〕<CPUにおけるコンディションコードレジスタの保護>
項1において、前記論理回路はプロセッサ(20)であり、前記n個の記憶素子は前記プロセッサが条件分岐命令を実行するときに参照する条件を与えるレジスタ(25)を含む。
これにより、レーザー照射によって引き起こされるプログラムの異常な分岐から、LSIを保護することができる。
〔9〕<CPUにおける汎用レジスタの保護>
項1において、前記論理回路はプロセッサ(20)であり、前記n個の記憶素子は前記プロセッサの汎用レジスタ(26)を含む。
これにより、レーザー照射によって引き起こされるプログラムの異常な演算処理から、LSIを保護することができる。
〔10〕<攻撃を検知したときにリセット>
項1において、前記論理回路はプロセッサ(20)であり、前記攻撃検出回路の出力が前記プロセッサのリセット端子に入力される。
これにより、レーザー照射によって攻撃されていることが検知されたとき、プロセッサがリセットされ、LSIに保持される機密情報を保護することができる。
〔11〕<攻撃を検知したときに機密情報を消去>
項1において、前記論理回路はメモリ(30)を備えたプロセッサであり、前記攻撃検出回路は前記プロセッサに割り込みを発生させることができ、前記攻撃を検出したときに前記プロセッサは前記メモリに格納されている情報を消去する。
これにより、レーザー照射によって攻撃されていることが検知されたとき、メモリ上に格納された機密情報が消去され、LSIに保持される機密情報を保護することができる。
〔12〕<攻撃を検知したときに電源供給を遮断>
項1において、前記論理回路への電源供給を制御することができる電源制御端子を有する電源回路をさらに備え、前記攻撃検出回路の出力は前記電源回路の前記電源制御端子に接続され、前記攻撃を検出したときに前記論理回路への電源供給を遮断する。
これにより、レーザー照射によって攻撃されていることが検知されたとき、電源が遮断され、LSIに保持される機密情報を保護することができる。
〔13〕<エラー判定回路+光照射検出回路>
それぞれ1ビットの情報を記憶可能なn個(nは正の整数)の記憶素子(5_1〜5_6)と攻撃検出回路(1)とを含む論理回路(6)とを備える半導体集積回路(10)であって、以下のように構成される。
前記攻撃検出回路は、エラー判定回路(2)と、光検出素子を有する光照射検出回路(4)とを備える。
前記エラー判定回路は、前記n個の記憶素子に格納される値をnビットの符号にkビット(kは正の整数)以下の誤りが発生したことを、論理演算を用いて検出することができる。
前記n個の記憶素子のうちの任意のk+1個を、内側に凸の周を持たない最小の閉曲線で囲む複数の領域のそれぞれは、前記領域内に少なくとも1個の前記光検出素子が配置され、前記光照射検出回路は、前記光検出素子の少なくとも1個に光が照射されたことを検出したとき、前記n個の記憶素子のうちのk+1個以上への光照射を検出する。
前記エラー判定回路による前記誤りの検出と前記光照射検出回路による前記光照射の検出のいずれかを検出したときに、前記論理回路が外部から攻撃を受けたものと判定する。
これにより、論理回路に対するレーザー攻撃によって発生する、複数ビットの記憶素子の誤りのビット数が何ビットであっても、レーザー攻撃を検出することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
〔実施形態1〕<エラー判定回路+光照射検出回路>
レーザー攻撃によって引き起こされる故障は、レーザーが照射された回路全体のいかなる要素でも発生する可能性がある。しかし、論理回路全体に故障検出回路を備えることは、回路規模の増大が大きいためにコスト面から許容されない場合がほとんどである。そこで、保護する対象としてフリップフロップやラッチなどの記憶素子に絞ることとした。フリップフロップやラッチなどの記憶素子は、任意のタイミングでのレーザー照射によって保持する値が反転するため、攻撃する側にとって故障を発生させることが容易である。一方、一般の論理ゲートでも任意のタイミングでのレーザー照射によって論理値の反転は発生するが、そのタイミングが記憶素子へのデータの取り込みタイミングの範囲外であった場合には、回路動作に影響することなく復旧する。そのため、攻撃する側にとっても、有効な攻撃にはならない。
そこで、フリップフロップやラッチなどの記憶素子に着目して、これに発生する故障を検知し保護することにより、大きな回路規模の増加を伴うことなく、論理回路全体を効率よく保護することができる。
図1は、実施形態1に係る半導体装置の構成例を表す説明図である。n個(nは正の整数)のフリップフロップ5_1〜5_6と攻撃検出回路1とを含む論理回路6とを備える半導体集積回路10であって、以下のように構成される。攻撃検出回路1は、エラー判定回路2と、光検出素子を有する光照射検出回路4が含まれる。
エラー判定回路2は、n個のフリップフロップに格納される値をnビットのデータにkビット(kは正の整数)以下の誤りが発生したことを、論理演算を用いて検出することができる。例えば、n−mビットのデータにmビットの冗長ビットを付加してkビット誤り検出符号を形成し、誤り検出回路を構成することができる。これをエラー判定回路2とすることができる。パリティ符号、巡回冗長符号、BCH符号など、符号理論に基づく公知の誤り検出回路を利用することができる。また、例えば、2個のフリップフロップに同じ値を格納し、読み出したときに比較して、不一致の場合にエラーと判定することにより、エラー判定回路2を構成することもできる。2個のフリップフロップの比較は、1ビット誤り検出である。2ビット誤りでは、2個のフリップフロップとも反転するので、検出することができないからである。
エラー判定回路2を、kビット以下の誤りが検出可能な誤り検出回路で構成した場合、光照射検出回路は、k+1個のフリップフロップに同時に光が照射されたことを検出可能に構成する。n個のフリップフロップ5に含まれる任意のk+1個のフリップフロップについてみたとき、このk+1個のフリップフロップ5を囲む領域を考える。この領域は、内側に凸の周を持たない最小の閉曲線で構成される。この領域が円である場合について考えるとき、すべてのフリップフロップを囲む最も小さい円がこの領域として規定される。攻撃する側のレーザービームが円形に集光されるとき、k+1個全てのフリップフロップに同時に光を照射することができる最も小さな領域に当たる。レーザービームを集光した形状は円には限られず、楕円なども想定すべきであるが、あくまでも光の集光であるから、外側に凸の閉曲線で囲まれる領域には限定されるであろう。この領域内に少なくとも1個の光検出素子3を配置する。これにより、その領域全体に光が照射されたこと、即ちk+1個のフリップフロップ全てに光りが照射されたことが検知される。
図1では、エラー判定回路2を、6個のフリップフロップ5_1〜5_6に対して2ビット誤りが検出可能とした場合に、6個中任意の3個のフリップフロップ5について必ず1個の光検出素子3を配置した例を示している。3個のフリップフロップ5_1、5_2、5_3を囲む円51の中心に光検出素子3_1が配置されている。3個のフリップフロップ5_2、5_4、5_5を囲む円52の中心に光検出素子3_2が配置されている。3個のフリップフロップ5_2、5_3、5_5を囲む円53の中心に光検出素子3_3が配置されている。3個のフリップフロップ5_3、5_5、5_6を囲む円54の中心に光検出素子3_4が配置されている。他のいかなる3個のフリップフロップの組合せも、図示した円51〜54よりも広い領域に含まれることとなり、その領域には必ず1個以上の光検出素子3が配置されている。レーザー光が円形に集光される場合には、エラー判定回路2が対象とする6個のフリップフロップ5_1〜5_6のうち、任意の3個以上のフリップフロップに光が照射されたときに、光が照射されたことを検出することができる。円51〜54は、光照射の最小検出対象領域である。これよりも小さい領域まで集光された光の照射は、本実施形態の光照射検出回路4では、必ず検出することができるとは保証できない。
エラー判定回路2による誤りの検出と光照射検出回路4による光照射の検出のいずれかを検出したときに、論理回路が外部から攻撃を受けたものと判定する。レーザー光がk+1個以上のフリップフロップ5に照射されたときは、光照射検出回路4によって検出し、レーザー光がさらに集光されk個以下のフリップフロップ5に照射されてこれらに誤りを生じさせたときには、エラー判定回路2による誤りの検出を行う。
これにより、論理回路に対するレーザー攻撃によって発生する、複数ビットの記憶素子の誤りのビット数が何ビットであっても、レーザー攻撃を検出することができる。kビット以下の誤りをエラー判定回路2が検出し、k+1ビット以上の誤りを光照射検出回路4が検出し、互いに補完するので、あらゆるビット数の誤りを検出することができる。
フリップフロップは、1ビットの情報を記憶することができる記憶素子であればよく、ラッチやメモリセルであっても、同様に適用することができる。
図1では、レーザー光が円形に集光される場合を想定した例を示したが、楕円その他の形に集光されたレーザー光についても、同様の考え方を適用して光検出素子を配置することができ、光照射検出回路4を構成することができる。
光照射検出回路4は、本実施形態で特徴的なのは光検出素子の配置で、特にフリップフロップ(記憶素子)との相対的な位置関係であって、回路は公知の光照射検出回路を採用することができる。
図13は、光検出素子としてホトダイオードを用いた光照射検出回路の構成を表す回路図であり、図14は、その動作を表すタイミングチャートである。複数のホトダイオードが並列にnode1に接続されている。node1はバッファ55によりハイレベルに駆動されている。他のバッファに駆動された複数のホトダイオードが、縦続接続されていても良い。バッファ58によって波形整形され(node2)、SRラッチ60に入力され、光照射検出出力であるnode3に出力される。node1はバッファ55によりハイレベルに駆動されホトダイオード3が逆バイアスされているので、通常はハイレベルに保たれている。例えば、バッファ55、56の間のホトダイオード3に光が照射されると、照射された光によってホトダイオード3に発生した電子正孔対により逆方向電流が流れ、node1の電位が低下する。これがバッファ56の論理閾値Vt未満となると、後段にパルス波形となって伝搬し、node2にパルスとなって現れる。SRラッチ60はこのパルスによりセットされ、node3をハイレベルに反転させ保持する。バッファ55の駆動能力を適切に設定することにより、並列接続された複数のホトダイオード3の1個に光が照射されたときに、node1の電位がバッファ56の論理閾値Vt未満となるように設計することができる。これにより、複数のホトダイオードのうち1個に光が照射されたことを検出する光照射検出回路を構成することができる。光検出素子としては、ホトダイオードに代えてホトトランジスタなどを用いてもよい。
図15は、光検出素子として光感応型バッファを用いた光照射検出回路の構成を表す回路図であり、図16は、その動作を表すタイミングチャートである。通常の論理ゲートは、光の照射により、誤動作を引き起こされる可能性がある。そもそも、LSIに対するレーザー照射による故障利用攻撃は、この原理を利用したものである。レイアウト上セルの上層に金属配線層を配置しないようにしたバッファは、通常のバッファよりも光照射に対して誤動作を発生しやすくなる。このようなバッファを光感応型バッファとして用いることができる。図15に示す光照射検出回路は、入力がハイ固定された光感応型バッファ3の出力が、インバータ59を介してSRラッチ60に入力されている。(b)に示すように、光感応型バッファ3は複数縦続接続されていてもよい。少なくとも1個の光感応型バッファ3に光が照射されると、その出力ノードであるnode1の電位が低下する。反転に至らなくても、node1の電位低下が次段のインバータ59の論理閾値Vt未満になれば、インバータ59の出力であるnode2にパルスが現れる。このパルスをSRラッチ60で取り込んで光照射検出出力であるnode3に出力する。これにより、複数の光感応型バッファのうち1個に光が照射されたことを検出する光照射検出回路2を構成することができる。光検出素子としては、光感応型バッファに代えて光感応型インバータなど他の論理ゲート回路を用いてもよい。
〔実施形態2〕<1ビット誤り検出符号の生成とチェック+光照射検出回路>
図2は、実施形態2に係る半導体装置の具体的な構成例を表す説明図である。1ビットの誤り検出が可能なエラー判定回路2と2ビット以上の記憶素子にレーザーが照射されたことを検出可能にするために、記憶素子5_7〜5_10間に光検出素子3_5〜3_7を配置した構成例である。
フリップフロップ5_7〜5_10に格納されるライトデータに基づいて誤り検出符号を生成する誤り検出符号生成回路7を備える。誤り検出符号生成回路7で生成された誤り検出符号はフリップフロップ5_11に格納される。チェック回路8は、フリップフロップ5_7〜5_10から読み出されたデータと、フリップフロップ5_11に格納されている誤り検出符号に基づいて、誤りの有無を判定し、誤りがあればエラー検出信号を出力する。光検出素子3_5〜3_7の出力は、光照射検出回路4に接続され、1個以上の光検出素子3_5〜3_7に光が照射されたことを検出すると、光照射検出信号が出力される。
誤り検出符号は、例えば、パリティである。誤り検出符号生成回路7はライトデータの1の数が偶数のとき偶数パリティとしてデータ0を、奇数のとき奇数パリティとしてデータ1を生成し、フリップフロップ5_11に格納する。チェック回路8は、パリティチェック回路である。例えば、フリップフロップ5_7〜5_10から読み出されたデータの1の数が偶数か奇数かを求め、フリップフロップ5_11に格納されているデータと比較する。フリップフロップ5_7〜5_10から読み出されたデータに1ビットの反転があれば、パリティが変化するので、パリティチェック8でこれを検出することができる。一方、2ビット以上のデータの反転が発生した場合は、チェック回路8では検出することができない。
光検出素子3_5〜3_7とフリップフロップ5_7〜5_10が交互に配置されているので、2個以上のフリップフロップへの光の照射は、必ず光検出素子3_5〜3_7のうちの少なくとも1個によって感知することができる。
これにより、レーザー光を集光した攻撃により、1ビットのフリップフロップのみに故障が発生した場合には、エラー判定回路により検出することができ、レーザー光の径を大きくした攻撃により、2個以上のフリップフロップに故障が発生した場合には、光照射検出回路4により、光が照射されたことを検出することができる。
図3は、実施形態2に係る半導体装置において、さらに誤り検出符号を保持する記憶素子も光照射の検出対象として保護する場合の構成例を表す説明図である。
保護対象のデータを保持する記憶素子であるフリップフロップ5_12〜5_15に加え、誤り検出符号を保持する記憶素子であるフリップフロップ5_16を含めた5個のフリップフロップの間に光検出素子3_8〜3_11を配置した構成例である。
誤り検出符号生成回路7とチェック回路8の構成を含め、エラー判定のための回路構成は、図2に示したものと同じである。フリップフロップ5_12〜5_15と誤り検出符号を保持するフリップフロップ5_16との間にも光検出素子3_11を配置し、これも光照射検出回路4に接続している。誤り検出符号を保持するフリップフロップ5_16を含めた2個のフリップフロップへの光照射を検出することができる。
これにより、保護対象のn−1ビットに対してパリティ符号を生成し、これを合計したnビットの情報を保持する記憶素子を対象としてパリティチェック回路を備え、保護対象回路へのレーザー攻撃に対する保護を行うことができる。パリティ符号生成回路とパリティチェック回路は、簡単な論理ゲートで構成することができ、保護のための回路規模のオーバーヘッドを抑えることができる。
〔実施形態3〕<mビット誤り検出符号の生成とチェック+光照射検出回路>
実施形態2においては、1ビット誤り検出符号を利用する実施形態について説明したが、誤り検出能力は、任意に強化することができる。エラー判定回路2による誤り検出能力を強化した場合には、光照射検出回路4による光照射の検出能力を軽減することができる。エラー判定回路2によってmビット以下の誤りが検出可能な場合には、光照射検出回路4はm+1個以上の記憶素子への光照射を検出することができる能力を備えれば足りる。具体的には、記憶素子m個に対して1個の割合で、光検出素子を配置すればよい。
図4は、実施形態3に係る半導体装置が3ビット誤り検出符号を利用する場合の構成例を表す説明図である。
フリップフロップ5_17〜5_22に格納されるライトデータに基づいて誤り検出符号を生成する誤り検出符号生成回路7を備える。誤り検出符号生成回路7で生成された誤り検出符号はフリップフロップ5_23に格納される。誤り検出符号は、1ビットとは限らず通常多ビットである。チェック回路8は、フリップフロップ5_17〜5_22から読み出されたデータと、フリップフロップ5_23に格納されている誤り検出符号に基づいて、誤りの有無を判定し、誤りがあればエラー検出信号を出力する。光検出素子3_12〜3_13はフリップフロップ5_17〜5_23の3個に対して1個の割合で配置されている。具体的な配置の方法、即ち記憶素子と光検出素子の位置関係は、実施形態1と図1に詳述してあり、実施形態5と図7に後述する。光検出素子3_12〜3_13の出力は、光照射検出回路4に接続され、1個以上の光検出素子3_12〜3_13に光が照射されたことを検出すると、光照射検出信号が出力される。
誤り検出符号は、例えば、巡回符号、BCH符号など、符号理論に基づく公知の誤り検出回路を利用することができる。光検出素子3_12〜3_13はフリップフロップ5_17〜5_23のうちの3個に対して1個の割合で配置されているので、フリップフロップ5_17〜5_23のうちの4個以上のフリップフロップへの光の照射は、必ず光検出素子3_12〜3_13によって感知することができる。レーザー光を集光した攻撃により、mビット以下のフリップフロップのみに故障が発生した場合には、エラー判定回路により検出することができ、より径の大きいレーザー光を利用した攻撃により、m+1個以上のフリップフロップに故障が発生した場合には、光照射検出回路4により、光が照射されたことを検出することができる。
これにより、保護対象のn−mビットに対してmビットの誤り検出符号を生成し、これを合計したnビットの情報を保持する記憶素子を対象として、レーザー攻撃に対する保護を行うことができる。
〔実施形態4〕<回路の二重化+光照射検出回路>
図5は、実施形態4に係る半導体装置の二重化による保護を利用する場合の構成例を表す説明図である。
ライトデータは現用系であるフリップフロップ5_24と予備系であるフリップフロップ5_25に書き込まれ、現用系であるフリップフロップ5_24に格納されているデータが保護対象FF出力として読み出される。エラー検出回路2は排他的論理和ゲートであり、フリップフロップ5_24とフリップフロップ5_25から読み出されたデータが不一致の場合にエラー検出信号を出力する。
現用系であるフリップフロップ5_24と予備系であるフリップフロップ5_25の間に、光検出素子3_14が配置され、その出力に基づいて光照射検出回路4により、光照射検出信号が検出される。
現用系と予備系のフリップフロップ5_24と5_25の一方に光が照射されてデータが反転した場合には、エラー検出信号として攻撃が検出され、両方に光が照射された場合には、光検出信号として攻撃が検出される。
図5は理解を容易にするため、2個のフリップフロップのみで構成された現用系と予備系の二重化回路を示したが、多数ビットおよび論理回路も含めた多重化に拡張することができる。
多数ビットの現用系フリップフロップには、同じビット数の予備系フリップフロップを備え、エラー判定回路2はその2系統を比較して不一致の場合にエラー検出信号を出力する。光検出素子は、現用系と予備系のフリップフロップの対応するビット間にそれぞれ配置し、それらすべてを光照射検出回路4に入力して、いずれか少なくとも1個の光検出素子に光が照射されたことを検出したときに、光照射検出信号を出力する。現用系と予備系において同時に同じデータ反転を引き起こすような光の照射は、光照射検出回路4によって検出することができ、一方のみまたは対応しないフリップフロップで発生するデータ反転は、エラー判定回路2によって検出することができる。記憶素子であるフリップフロップのみならず、回路全体を二重化した場合についても、同様に適用することができる。
これにより、二重化による保護を採用した回路において、現用系と対応する予備系に同時に誤り発生させるようなレーザー攻撃からも保護することができる。
〔実施形態5〕<光検出素子の配置>
図6は、2個以上の記憶素子(フリップフロップ)への光照射を検出するための、フリップフロップと光検出素子の配置を表す説明図である。セル列に標準セルを配置・配線する設計方法を想定し、図6はセル列に標準セルが配置されたレイアウトを示したものである。
(a)では、2個のフリップフロップ5の間に1個の光検出素子3が互いに隣接して配置される。2個のフリップフロップ5に光が照射されると、必ず間の光検出素子3にも光が照射されることとになるので、2個以上のフリップフロップへの光照射を検出することができる。(b)に示すように、フリップフロップ5と光検出素子3は必ずしも隣接して配置する必要はなく、間に別の論理ゲートなどが配置されても良い。
一方、セル列に標準セルを配置・配線する設計ツールでは、簡単にセルの配置を規定する方法がない場合が多い。その場合には、2個のフリップフロップ5の間に1個の光検出素子3が互いに隣接して配置された新たなセルを準備することにより、セルの配置を規定する方法がない設計ツールを使う場合であっても、実施形態2〜4のフリップフロップと光検出素子の配置関係を容易に実現することができる。
これにより、前記n個の記憶素子のうち2個以上の記憶素子に対して同時に行われるレーザー照射を検出することができる。
図7は、4個以上の記憶素子(フリップフロップ)への光照射を検出するための、フリップフロップと光検出素子の配置を表す説明図である。3個ずつ2組のフリップフロップ5の間に1個の光検出素子3が隣接して配置されている。これにより、この6個のフリップフロップのうち4個以上に対しての光の照射は、必ず光検出素子3によって検出することができる。図7は全てのフリップフロップ5と光検出素子3が互いに隣接して配置される場合を示したが、図6の(b)に示したのと同様に、間に論理ゲートなどを配置してもよい。一方、互いに隣接配置したフリップフロップと光検出素子を新たなセルとして使用することにより、セルの配置を規定する方法がない設計ツールを使う場合であっても、実施形態4のフリップフロップと光検出素子の配置関係を容易に実現することができる。
これにより、前記n個の記憶素子のうち4個以上の記憶素子に対して同時に行われるレーザー照射を検出することができる。
図8は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を複数のセル列に跨って配置する変形例を表す説明図である。図6では1つのセル列に2個のフリップフロップ5と光検出素子3を配置する例を示したが、複数のセル列に跨っても、2個のフリップフロップ5の間に光検出素子3が配置されればよい。図7のように複数のフリップフロップからなる1組のフリップフロップの間に1個の光検出素子を配置するときも、同様の考え方を適用することができる。
図9は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を複数のセル列に渡って斜めに跨って配置する変形例を表す説明図である。図8のようにセル列に直交する方向に配列する場合に限られない。斜めであっても、2個のフリップフロップを結ぶ直線状に光検出素子3を配置すれば同様の作用・効果を奏する。また、フリップフロップが複数であっても、他の論理ゲートなどを途中に挟んでいても、2個のフリップフロップを結ぶ直線状に光検出素子3を配置すれば同様の作用・効果を奏することは同様である。
図10は、2個以上の記憶素子(フリップフロップ)への光照射を検出するために、フリップフロップと光検出素子を交互に隣接して配置する場合の説明図である。
これにより、前記n個の記憶素子のうち2個以上の記憶素子に対して同時に行われるレーザー照射を検出ることができる条件を満足するマクロセルを予め準備して使用することにより、自動レイアウトにおけるセルの配置に対して特別な考慮をすることなく、LSIのレイアウト設計を行うことができる。
〔実施形態6〕<CPUの保護>
ソフトウェアによる正常動作チェックは故障対策として有効であるが、CPUなどプロセッサ自体の誤動作はソフトウェアによるチェックが困難である。
CPUなどプロセッサを誤動作させるためには、汎用レジスタ、プログラムカウンタ(PC; Program Counter)、及び、分岐の条件を格納するコンディションコードレジスタ(CCR; Condition Code Register)の値を変更させる故障利用攻撃が有効である。逆にこれらをハードウェアで保護することにより、プロセッサとそれによって実行されるソフトウェアの動作は、故障利用攻撃に対する耐性を高めることができる。
図11は、プロセッサに対する保護を行った実施形態を表す説明図である。
CPUなどプロセッサは、フェッチ部21、デコード部22及び命令実行部23を備える。フェッチ部21は、プログラムカウンタ24により指定されるアドレスに格納される命令を読込み、デコード部22でデコード、解釈し、命令実行部23で実行する。命令実行部23による演算処理は、汎用レジスタ26との入出力による。演算結果の状態フラグは、コンディションコードレジスタ25に格納される。命令実行部23は、コンディションコードレジスタ25に格納される状態フラグに基づいて、分岐や演算処理を行う。
本実施形態では、プログラムカウンタ24とコンディションコードレジスタ25と汎用レジスタ26のそれぞれに、パリティ生成回路7_1、7_2、7_3を備え、生成したパリティを格納する記憶素子5_26、5_27、5_28に格納し、パリティチェック回路8_1、8_2、8_3を備えて誤りを検出する。光検出素子3は、プログラムカウンタ24とコンディションコードレジスタ25と汎用レジスタ26を構成する記憶素子の1ビット毎に間に挿入する形で配置する。光照射検出回路4_1、4_2、及び4_3により、光の照射を検出する。汎用レジスタ26のためのパリティ生成回路7_3、生成したパリティを格納する記憶素子5_28及びパリティチェック回路8_3は、汎用レジスタの数と同数を備える。
プログラムカウンタ24とコンディションコードレジスタ25と汎用レジスタ26のいずれかに生じた1ビットの誤りは、パリティチェック回路8_1〜8_3により、検出することができる。2ビット以上の誤りを生じさせる2個以上の記憶素子への光の照射は、光照射検出回路4_1〜4_3により検出することができる。
プログラムカウンタ24とコンディションコードレジスタ25の一方または両方を保護することにより、レーザー照射によって引き起こされるプログラムの異常な分岐から、LSIを保護することができる。また、汎用レジスタ26を保護することにより、レーザー照射によって引き起こされるプログラムの異常な演算処理から、LSIを保護することができる。
図11に示した例では、パリティチェック回路8_1〜8_3により、1ビット誤りを検出し、光照射検出回路4_1〜4_3により2個以上の記憶素子への光照射を検出することによって、CPU20を保護する例を示した。これに代えて、2ビット以上の任意のmビットの誤り検出回路とm+1個の記憶素子への光照射を検出することができる光照射検出回路を組合せて構成してもよい。また、プログラムカウンタ24とコンディションコードレジスタ25と汎用レジスタ26のいずれかのみを保護対象としても、保護の効果を発揮することはできる。一方、プログラムカウンタ24とコンディションコードレジスタ25と汎用レジスタ26の全て、さらに他の記憶素子まで保護対象を拡げれば、攻撃に対する耐性は向上する。
〔実施形態7〕<攻撃を検知したときの処理>
エラー判定回路2によるエラー検出と光照射検出回路4による光照射検出は、いずれかが一方でも検出されたときは、故障利用攻撃を受けていると判断することができる。故障利用攻撃を受けていると判断したときは、保持している機密情報を守るために、種々の処理を行うことができる。
図12は、プロセッサに対する保護を行った実施形態において、攻撃を検知したときにプロセッサをリセットする実施形態を表す説明図である。リセット端子RESETから入力される通常のリセット信号は、リセットコントローラ28を経て、CPU20、周辺モジュールである例えばタイマ29、あるいはメモリ30に供給されている。リセットコントローラ28に、エラー判定回路2のエラー判定出力det1と光照射検出回路4の光照射検出出力であるdet0とを入力する。通常のリセットに加えて、故障利用攻撃を受けたときにも、CPU20を始めLSI全体がリセットされる。
これにより、レーザー照射によって攻撃されていることが検知されたとき、プロセッサがリセットされ、LSIに保持される機密情報を保護することができる。
故障利用攻撃を受けていることを検出したとき、リセットに代えてCPU20に対して割り込みを発生し、ソフトウェア処理により、メモリ上に保持される機密情報を消去することができる。
これにより、レーザー照射によって攻撃されていることが検知されたとき、メモリ上に格納された機密情報が消去され、LSIに保持される機密情報を保護することができる。
LSIにCPUなどに電源を供給する電源回路を設け、故障利用攻撃を受けていることを検出したとき、CPUなどに対する電源供給を遮断することができる。
これにより、レーザー照射によって攻撃されていることが検知されたとき、電源が遮断され、LSIに保持される機密情報を保護することができる。
これらは、それぞれ独立に用いることもできるが、組み合わせて用いることもできる。比較的迅速に保護する必要があるときには、リセットや電源遮断が有効であるが、時間的なゆとりがある場合には、CPUによるメモリ上の機密情報の消去が最も確実である。CPU自体が攻撃された場合には、CPUによるメモリ上の機密情報の消去など、ソフトウェアによる処理は困難であるから、リセットや電源遮断が有効である。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
1 攻撃検出回路
2 エラー判定回路
3 光検出素子
4 光照射検出回路
5 フリップフロップ(記憶素子)
6 論理回路
7 誤り検出符号生成回路(パリティ生成回路)
8 チェック回路(パリティチェック回路)
10 半導体集積回路(LSI)
20 プロセッサ(CPU)
21 フェッチ部
22 デコード部
23 命令実行部
24 プログラムカウンタ(PC)
25 コンディションコードレジスタ(CCR)
26 汎用レジスタ
27 ポート回路
28 リセットコントローラ
29 周辺モジュール
30 メモリ
51〜54 光照射の最小検出対象領域

Claims (13)

  1. それぞれ1ビットの情報を記憶可能なn個(nは正の整数)の記憶素子と攻撃検出回路とを含む論理回路とを備える半導体集積回路であって、
    前記攻撃検出回路は、
    前記n個の記憶素子に格納される値をnビットの符号にkビット(kは正の整数)以下の誤りが発生したことを、論理演算を用いて検出することができる、エラー判定回路と、
    光検出素子を有し、前記n個の記憶素子のうちのk+1個以上に光が照射されたことを検出することができる、光照射検出回路とを備え、
    前記エラー判定回路による前記誤りの検出と前記光照射検出回路による前記光照射の検出のいずれかを検出したときに、前記論理回路が外部から攻撃を受けたものと判定する、半導体集積回路。
  2. 請求項1において、前記n個の記憶素子はmビットの誤り検出符号を格納可能なm個の記憶素子を含み、
    前記エラー判定回路は、前記n個の記憶素子のうちのn−m個から誤り検出符号を生成する誤り検出符号生成回路と、前記n個の記憶素子における誤りの発生を検出可能なチェック回路を含む、半導体集積回路。
  3. 請求項2において、前記n個の記憶素子は1ビットのパリティ符号を格納可能な1個の記憶素子を含み、前記光照射検出回路はn−1個の光検出素子を備え、
    前記エラー判定回路は、前記n個の記憶素子のうちのn−1個から前記パリティ符号を生成するパリティ符号生成回路と、前記n個の記憶素子における誤りの発生を検出可能なパリティチェック回路を含み、
    前記光照射検出回路は、前記n−1個の光検出素子の少なくとも1個に光が照射されたことを検出したとき、前記n個の記憶素子のうちの2個以上に光が照射されたことを検出する誤りが発生したことを検出する、半導体集積回路。
  4. 請求項1において、前記n個の記憶素子は、現用系論理回路の出力であるm個の現用系記憶素子と、前記現用系に対して二重化された予備系論理回路の出力であるm個の予備系記憶素子を含み、前記エラー判定回路は、前記現用系記憶素子の出力と対応する前記予備系記憶素子の出力が不一致の場合に、誤りが発生したこと検出し、前記現用系記憶素子と対応する前記予備系記憶素子は、対応する2個の記憶素子の組合せがそれぞれ少なくとも1個の前記光検出素子を挟んで配置される、半導体集積回路。
  5. 請求項3において、前記n個の記憶素子から任意に選んだ2個の記憶素子は、いずれの2個の記憶素子の組合せも必ず少なくとも1個の前記光検出素子を挟んで配置される、半導体集積回路。
  6. 請求項5において、前記n−1個の前記光検出素子と前記n個の記憶素子は、単一のセル列に互いに隣接して1個ずつ交互後に配置される、半導体集積回路。
  7. 請求項1において、前記論理回路はプロセッサであり、前記n個の記憶素子は前記プロセッサのプログラムカウンタを含む、半導体集積回路。
  8. 請求項1において、前記論理回路はプロセッサであり、前記n個の記憶素子は前記プロセッサが条件分岐命令を実行するときに参照する条件を与えるレジスタを含む、半導体集積回路。
  9. 請求項1において、前記論理回路はプロセッサであり、前記n個の記憶素子は前記プロセッサの汎用レジスタを含む、半導体集積回路。
  10. 請求項1において、前記論理回路はプロセッサであり、前記攻撃検出回路の出力が前記プロセッサのリセット端子に入力される、半導体集積回路。
  11. 請求項1において、前記論理回路はメモリを備えたプロセッサであり、前記攻撃検出回路は前記プロセッサに割り込みを発生させることができ、前記攻撃を検出したときに前記プロセッサは前記メモリに格納されている情報を消去する、半導体集積回路。
  12. 請求項1において、前記論理回路への電源供給を制御することができる電源制御端子を有する電源回路をさらに備え、前記攻撃検出回路の出力は前記電源回路の前記電源制御端子に接続され、前記攻撃を検出したときに前記論理回路への電源供給を遮断する、半導体集積回路。
  13. それぞれ1ビットの情報を記憶可能なn個(nは正の整数)の記憶素子と攻撃検出回路とを含む論理回路とを備える半導体集積回路であって、
    前記攻撃検出回路は、エラー判定回路と、光検出素子を有する光照射検出回路とを備え、
    前記エラー判定回路は、前記n個の記憶素子に格納される値をnビットの符号にkビット(kは正の整数)以下の誤りが発生したことを、論理演算を用いて検出することができ、
    前記n個の記憶素子のうちの任意のk+1個を、内側に凸の周を持たない最小の閉曲線で囲む複数の領域のそれぞれは、前記領域内に少なくとも1個の前記光検出素子が配置され、前記光照射検出回路は、前記光検出素子の少なくとも1個に光が照射されたことを検出したとき、前記n個の記憶素子のうちのk+1個以上への光照射を検出し、
    前記エラー判定回路による前記誤りの検出と前記光照射検出回路による前記光照射の検出のいずれかを検出したときに、前記論理回路が外部から攻撃を受けたものと判定する、半導体集積回路。
JP2012206965A 2012-09-20 2012-09-20 半導体集積回路 Active JP5954872B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2012206965A JP5954872B2 (ja) 2012-09-20 2012-09-20 半導体集積回路
US14/019,343 US8912815B2 (en) 2012-09-20 2013-09-05 Semiconductor integrated circuit
TW102132417A TWI587173B (zh) 2012-09-20 2013-09-09 半導體積體電路
CN201310429392.9A CN103679011B (zh) 2012-09-20 2013-09-18 半导体集成电路
US14/556,160 US9275256B2 (en) 2012-09-20 2014-11-30 Semiconductor integrated circuit
US15/043,105 US9679164B2 (en) 2012-09-20 2016-02-12 Semiconductor integrated circuit
US15/607,906 US9904590B2 (en) 2012-09-20 2017-05-30 Semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012206965A JP5954872B2 (ja) 2012-09-20 2012-09-20 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2014063272A true JP2014063272A (ja) 2014-04-10
JP5954872B2 JP5954872B2 (ja) 2016-07-20

Family

ID=50273838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012206965A Active JP5954872B2 (ja) 2012-09-20 2012-09-20 半導体集積回路

Country Status (4)

Country Link
US (4) US8912815B2 (ja)
JP (1) JP5954872B2 (ja)
CN (1) CN103679011B (ja)
TW (1) TWI587173B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5954872B2 (ja) * 2012-09-20 2016-07-20 ルネサスエレクトロニクス株式会社 半導体集積回路
WO2015061370A1 (en) 2013-10-21 2015-04-30 Milwaukee Electric Tool Corporation Adapter for power tool devices
CN105095002A (zh) * 2014-05-09 2015-11-25 国民技术股份有限公司 一种基于芯片的安全检测方法和系统
US9306573B2 (en) * 2014-07-21 2016-04-05 Microsemi SoC Corporation Apparatus and method for detecting and preventing laser interrogation of an FPGA integrated circuit
KR102341264B1 (ko) 2015-02-02 2021-12-20 삼성전자주식회사 래치를 이용한 레이저 검출기 및 이를 포함하는 반도체 장치
US9929858B2 (en) 2015-09-21 2018-03-27 Nxp B.V. Method and system for detecting fault attacks
CN105184194A (zh) * 2015-10-13 2015-12-23 天津大学 在集成电路中探测光故障注入攻击的结构及其探测方法
CN105391542B (zh) * 2015-10-22 2019-01-18 天津大学 用于集成电路检测电磁故障注入攻击探测方法及探测器
CN106855932B (zh) * 2015-12-08 2021-03-02 国民技术股份有限公司 一种存储系统及其故障防御方法、装置
US10547461B2 (en) 2017-03-07 2020-01-28 Nxp B.V. Method and apparatus for binding stacked die using a physically unclonable function
FR3070092A1 (fr) * 2017-08-11 2019-02-15 Stmicroelectronics (Rousset) Sas Protection d'un circuit integre
US11518428B2 (en) 2018-08-30 2022-12-06 Nsk Americas, Inc. Steering column breakaway and energy absorption apparatus
WO2021253254A1 (zh) * 2020-06-17 2021-12-23 深圳市欢太科技有限公司 芯片、芯片封装结构以及电子设备
CN114692226A (zh) * 2020-12-30 2022-07-01 国民技术股份有限公司 一种集成电路

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198700A (ja) * 2007-02-09 2008-08-28 Renesas Technology Corp 半導体集積回路装置
JP2008257476A (ja) * 2007-04-04 2008-10-23 Sharp Corp 誤り検出制御システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6458547B1 (en) * 1996-12-12 2002-10-01 Prolume, Ltd. Apparatus and method for detecting and identifying infectious agents
DE10044837C1 (de) * 2000-09-11 2001-09-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Detektieren eines unerwünschten Angriffs auf eine integrierte Schaltung
JP4497874B2 (ja) * 2002-12-13 2010-07-07 株式会社ルネサステクノロジ 半導体集積回路及びicカード
JP5187860B2 (ja) 2002-12-13 2013-04-24 ルネサスエレクトロニクス株式会社 半導体集積回路
US7197669B2 (en) * 2003-07-30 2007-03-27 Via Technologies, Inc. Method and circuit for command integrity checking (CIC) in a graphics controller
US7170143B2 (en) * 2003-10-20 2007-01-30 Hamamatsu Photonics K.K. Semiconductor photo-detection device and radiation apparatus
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
JP5050893B2 (ja) 2008-02-08 2012-10-17 大日本印刷株式会社 Icカードへの攻撃検知方法、icカードおよびicカード用プログラム
JP2009289104A (ja) 2008-05-30 2009-12-10 Dainippon Printing Co Ltd 故障攻撃を検知する機能を備えたセキュリティデバイス
US8604521B2 (en) * 2008-08-21 2013-12-10 United Microelectronics Corp. Optically controlled read only memory
FR2946787A1 (fr) 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
JP5519308B2 (ja) 2010-02-05 2014-06-11 ルネサスエレクトロニクス株式会社 半導体集積回路及びデータ処理システム
JP5954872B2 (ja) * 2012-09-20 2016-07-20 ルネサスエレクトロニクス株式会社 半導体集積回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198700A (ja) * 2007-02-09 2008-08-28 Renesas Technology Corp 半導体集積回路装置
JP2008257476A (ja) * 2007-04-04 2008-10-23 Sharp Corp 誤り検出制御システム

Also Published As

Publication number Publication date
CN103679011B (zh) 2018-06-22
JP5954872B2 (ja) 2016-07-20
US20140077835A1 (en) 2014-03-20
CN103679011A (zh) 2014-03-26
TWI587173B (zh) 2017-06-11
TW201432489A (zh) 2014-08-16
US8912815B2 (en) 2014-12-16
US9275256B2 (en) 2016-03-01
US20170262331A1 (en) 2017-09-14
US9679164B2 (en) 2017-06-13
US20150089676A1 (en) 2015-03-26
US9904590B2 (en) 2018-02-27
US20160162708A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
JP5954872B2 (ja) 半導体集積回路
US8095759B2 (en) Error management firewall in a multiprocessor computer
Dutta et al. Multiple bit upset tolerant memory using a selective cycle avoidance based SEC-DED-DAEC code
Guo et al. Enhanced memory reliability against multiple cell upsets using decimal matrix code
EP2294526B1 (en) A method for secure data reading and a data handling system
US7969763B2 (en) Detector circuit for detecting an external manipulation of an electrical circuit, circuit arrangement comprising a plurality of detector circuits, memory device and method for operating a detector circuit
JP5014899B2 (ja) 再構成可能デバイス
US8448042B2 (en) Data processing device and a method for error detection and error correction
JP2007248378A (ja) 半導体集積回路
KR100816130B1 (ko) 래치 블록, 회로 및 래치 블록의 래치 소프트 에러를자동으로 검출하는 방법
US9891976B2 (en) Error detection circuitry for use with memory
US8378711B2 (en) Detection of single bit upset at dynamic logic due to soft error in real time
Lee et al. Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants
JP2008016163A (ja) メモリ装置およびメモリ読み出しエラー検出方法
Rahman Utilizing two stage scrubbing to handle single-fault multi-error cases in DRAM systems
Nguyen et al. OBET: On-the-fly byte-level error tracking for correcting and detecting faults in unreliable DRAM systems
US11132483B2 (en) Method and arrangement for forming an electronic circuit
Zhou et al. Designing scrubbing strategy for memories suffering MCUs through the selection of optimal interleaving distance
Maestro et al. Error correction coding for electronic circuits
Saha A single-version algorithmic approach to fault tolerant computing using static redundancy
JP5179923B2 (ja) 半導体集積回路装置
Raina Is the concern for soft-error overblown?
Skoncej ECC with increased hard error correction capability for memory reliability improvement
Bacha Harnessing On-chip Error Correction for Energy Efficiency and Security
JP2010191512A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160610

R150 Certificate of patent or registration of utility model

Ref document number: 5954872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150