JP7087142B2 - マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証 - Google Patents

マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証 Download PDF

Info

Publication number
JP7087142B2
JP7087142B2 JP2021035159A JP2021035159A JP7087142B2 JP 7087142 B2 JP7087142 B2 JP 7087142B2 JP 2021035159 A JP2021035159 A JP 2021035159A JP 2021035159 A JP2021035159 A JP 2021035159A JP 7087142 B2 JP7087142 B2 JP 7087142B2
Authority
JP
Japan
Prior art keywords
voltage
read
nvm
circuit
supply voltage
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.)
Active
Application number
JP2021035159A
Other languages
English (en)
Other versions
JP2022022962A (ja
Inventor
ハーシュマン,ジヴ
ヘイヨン,ヨエル
アロン,モシェ
Original Assignee
新唐科技股▲ふん▼有限公司
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 新唐科技股▲ふん▼有限公司 filed Critical 新唐科技股▲ふん▼有限公司
Publication of JP2022022962A publication Critical patent/JP2022022962A/ja
Application granted granted Critical
Publication of JP7087142B2 publication Critical patent/JP7087142B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/025Digital function generators for functions having two-valued amplitude, e.g. Walsh functions
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Read Only Memory (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、セキュア集積回路 (IC)に関するものであって、特に、ICのライフサイクル状態を保存するメモリの完全性検証に関するものである。
ある集積回路(IC)は、不揮発性メモリ (NVM)、たとえば、ワンタイムプログラマブル (OTP)メモリを有し、このメモリは、ICの動作状態を保存する。このようなメモリ中に保存される状態は、ICのセキュリティ機能へのアクセスを管理するのに用いられる。
たとえば、米国公開特許公報第2019/0026497号では、制御回路、および、ワンタイムプログラマブル回路を有する集積回路が記述されている。制御回路は、ワンタイムプログラマブル回路が、集積回路が起動後、集積回路のモードへのアクセスの試みに応じて、プログラム化されるか否か判断する。制御回路が、ワンタイムプログラマブル回路がすでにプログラム化されて、事前のアクセスを集積回路のモードに指示していると判断する場合、制御回路は、信号を生成して、集積回路のユーザーに、集積回路のモードが、事前にアクセスされていることを示す。
別の例のように、米国特許第10/095889号では、制御回路、ワンタイムプログラマブル回路、および、セキュリティ機能を有する集積回路が記述されている。制御回路は、ワンタイムプログラマブル回路が、プログラム化されて、集積回路のユーザーによる要求に反応して、セキュリティ機能にアクセスするか否かを判断する。制御回路は、ワンタイムプログラマブル回路がすでにプログラム化されて、事前のアクセスをセキュリティ機能に指示していると判断する場合、制御回路は、信号を生成して、集積回路のユーザーに、セキュリティ機能が、事前にアクセスされていることを示す。制御回路が、ワンタイムプログラマブル回路がまだプログラム化されていないと判断する場合、制御回路は、要求に応じて、ワンタイムプログラマブル回路をプログラム化させる。
本発明は、マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証を提供する。
ここで開示される本発明の一実施形態は、不揮発性メモリ (NVM)、および、安全パワーアップ回路を有する集積回路 (IC)を提供する。NVMは、ICの動作状態を保存する。安全パワーアップ回路は、(i)ICのパワーアップシーケンス期間中、ICの供給電圧が第一電圧範囲内であるとき、NVMからの動作状態の第一読み出しを実行する、(ii)第一読み出しのNVMから読み出される動作状態が、ICの敏感なリソースへのアクセスを許可する状態である場合、供給電圧が、第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、その後、NVMからの動作状態の第二読み出しを実行する、 (iii)反応動作を起動して、NVMから読み出される動作状態の第一読み出しと第二読み出し間の相違に対応する。
いくつかの実施形態において、安全パワーアップ回路が設置されて、供給電圧がすでに第一電圧に到達していることを確認することにより、供給電圧が、第一電圧範囲内にあることを確認するとともに、供給電圧が、すでに、少なくとも、第一電圧よりも高い第二電圧に到達していることを確認することにより、この供給電圧が、第二電圧範囲内であることを確認する。例示的実施形態において、第一電圧は、ICの機能回路の操作電圧範囲内であるが、NVMの操作電圧範囲よりは低く、第二電圧は、NVMの操作電圧範囲内である。
一実施形態において、敏感なリソースへのアクセスを許可する状態は、新しく製造されたICを示すデフォルト状態である。別の実施形態において、敏感なリソースへのアクセスを許可する状態は、テスト状態である。いくつかの実施形態において、NVMは、ワンタイムプログラマブル (OTP)メモリを有する。
さらに別の実施形態において、安全パワーアップ回路は、第一読み出しと第二読み出しの間で、少なくとも所定期間を待つ。またさらに別の実施形態において、NVMは、さらに、 (i)ICの電圧検出器の較正データ、(ii)較正データにより計算されたエラー検出コード、を保存するとともに、第一読み出し期間中に、安全パワーアップ回路が、較正データ、および、エラー検出コードを読み出して、第二読み出しを実行して、エラー検出コードによるエラーの検出に対応する。
開示される実施形態において、安全パワーアップ回路が設置されて、供給電圧を感知する電圧検出器中で、少なくとも一つの調節可能なスレショルドを修正することにより、供給電圧と第一、および、第二電圧範囲を比較する。例示的な実施形態において、安全パワーアップ回路が設置されて、各自、供給電圧を感知する第一、および、第二電圧検出器を用いて、供給電圧と第一、および、第二電圧範囲を比較する。
本発明の一実施形態によると、さらに、集積回路 (IC)のパワーアップシーケンスを保護する方法が提供される。本方法は、ICのパワーアップシーケンス期間中、ICの供給電圧が第一電圧範囲内であるとき、不揮発性メモリ (NVM)からのICの動作状態の第一読み出しを実行する工程を有する。NVMから読み出される第一読み出しの動作状態が、ICの敏感なリソースへのアクセスを許可する状態である場合、供給電圧が、第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、NVMから、動作状態の第二読み出しが実行される。反応動作が起動されて、NVMから読み出される動作状態の第一読み出しと第二読み出し間の相違に対応する。
以下の詳細な記述と図面により、本発明の原理が十分に理解できる。
本発明により、ライフサイクル状態メモリの完全性検証が適切になる。
本発明の一実施形態によるセキュアICを説明するブロック図である。 本発明の一実施形態による図1のIC中のパワーアップシーケンスを保護する方法を説明するフローチャートである。
ここで記述される本発明の実施形態は、集積回路(IC)のパワーアップシーケンスを保護する改善された方法、および、回路を提供する。開示される技術は、各種タイプのIC、たとえば、セキュアコントローラー、および、メモリデバイスに用いられる。
いくつかの実施形態において、ICは、ICの動作状態を保存する不揮発性メモリ (NVM)を有する。ここで開示される実施形態は、主に、ワンタイムプログラマブル (OTP) メモリと関連するが、開示される技術は、その他の種類のNVM、たとえば、フラッシュメモリ、あるいは、E2PROMに用いることができる。本内容中、用語 “動作状態”は、ICのライフサイクル段階を示す状態のことである。用語“動作状態”および “ライフサイクル状態”は、ここで交互に用いられる。動作状態の限定されない例は、DEFAULT (新しく製造された、バージンIC)、TEST (テストに用いるIC)、DEVELOP (発展中のIC)、OPERATION (ユーザーに提供される操作IC)、および、RMA (製造者に戻されるIC、たとえば、故障のため)を有する。
その異なるライフサイクル段階で、ICを適切に処理するため、異なる動作状態は、異なるアクセス権をICリソースに有効にする。たとえば、デフォルト状態上のICは、通常、任意の敏感な情報を保持しないと仮定され、よって、この状態は、ユーザーがICリソースにアクセスできるようにする相対的な許容である。テストは、通常、敏感な情報がない状況で実行されるので、TEST モードも、通常、相対的に寛容であり、且つ、適切なテストのために制限されていないアクセスを必要とする。一方、OPERATION 状態において、ユーザーのシステムのICは、完全に操作可能で、敏感な情報を含んでいるであろうと仮定される。よって、OPERATION 状態は、通常、ユーザーがICリソースにアクセスするのを制限する。
例示的な実施において、ICのパワーアップシーケンス期間中に、適切なアクセス権は、有効、あるいは、無効になる。このような実施において、ICは、パワーアップ回路を有し、パワーアップ回路は、ICのパワーアップシーケンスを実行する。パワーアップシーケンスの一部として、パワーアップ回路は、NVMから、ICの動作状態を読み出すとともに、読み出した動作状態に基づいて、各種リソースへのアクセスを有効、あるいは、無効にする。
しかし、この類のパワーアップシーケンスが、安全な攻撃にさらされる。たとえば、攻撃者は、パワーアップ回路に動作状態を誤読させようと試みて、パワーアップ回路が、本物のICの動作状態よりさらに寛容な動作状態を決定することを希望する。一つの可能な攻撃状況において、攻撃者は、中間供給電圧の設定を試み、たとえば、繊細な電圧制御により、あるいは、電圧グリッチ挿入により、パワーアップ回路に有効であると思わせるが、上記のような状態で、NVMは、完全には安定していない。この供給電圧上で、読み出し時、NVMが誤ったデータを返送し、および、この誤ったデータが、パワーアップ回路により寛容な動作状態であると解釈される可能性がある。
いくつかの実施形態において、パワーアップ回路は、さらに厳密である供給電圧範囲を設定する、および、NVMから動作状態を再読み出しすることにより、上記の脆弱性を軽減する。いくつかの実施形態において、パワーアップ回路は、ICの供給電圧が第一電圧範囲内であるとき、NVMから動作状態の第一読み出しを実行する。第一読み出しの前記NVMから読み出される動作状態が、ICの敏感なリソースへのアクセスを許可する状態、たとえば、DEFAULT、あるいはTESTである場合、パワーアップ回路は、供給電圧が第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、その後、NVMから動作状態の第二読み出しを実行する。相違が第一読み出しと第二読み出しで読み出される動作状態間で見つかる場合、パワーアップ回路は、適当な反応動作を起動する。第二電圧範囲は、その上限、下限、あるいは、両方で、第一電圧範囲よりもさらに厳密である(さらに狭い)。
たとえば、パワーアップ回路は、第一読み出し、および、第二読み出しにとって、最小限要求される供給電圧上で異なるスレショルドを実行する。つまり、パワーアップ回路は、供給電圧が、すでに少なくとも第一電圧に到達していることを確認することにより、供給電圧が第一電圧範囲内であることを確認する。パワーアップ回路は、供給電圧が、すでに少なくとも第一電圧より高い第二電圧に到達していることを確認することにより、供給電圧が第二電圧範囲内であることを確認する。
いくつかの実施形態において、第一電圧 (NVMからの第一読み出しに設定される電圧スレショルド)は、ICの機能回路の動作範囲内であるが、NVMの操作電圧範囲より低い。第二電圧 (NVMからの第二読み出しに設定される電圧スレショルド)は、NVMの動作範囲内である。
各種実施例と開示される技術の変化がここで記述される。
システム記述
図1は、本発明の一実施形態によるセキュアIC20を説明するブロック図である。セキュアIC20は、たとえば、とりわけ暗号IC操作を実行するセキュアコントローラー、敏感な情報を保存するのに用いられるセキュアメモリ、あるいは、その他の適当な任意のタイプのICを有する。
IC20は、機能回路24を有する。用語“機能回路”というのは、IC20の指定された機能、たとえば、各種処理、および/または、データストレージ操作を実行する回路のことである。この例において、機能回路24は、インターフェース26によりアクセス可能である。インターフェース26は、たとえば、一般的に、IC20とホストやテスター間の通信に用いられる適当な直列、あるいは、並列のバスを有する。
IC20は、さらに、OTPメモリ28( または“OTP”と称する)を有し、IC20の現在のライフサイクル状態32を保存する。上述の通り、以下の記述は、主にOTPと関連しているが、開示される技術は、別のタイプの不揮発性メモリにも応用することができる。OTP28は、ライフサイクル状態32以外に、その他の任意の適当な情報を保存する。
機能回路24、および、OTP28を有するIC20の各種コンポーネンツは、Vccで示される供給電圧により駆動され、且つ、接地GNDは参考点である。
いくつかの実施形態において、IC20は、安全パワーアップ回路40を有し、回路は、ICのパワーアッププロセス ( “パワーアップシーケンス”とも称する)を実行する。本内容中、用語“パワーアップシーケンス”というのは、供給電圧 Vcc が供給されるとき、ICの初期操作のプロセスのことである。
一実施形態において、IC20は、Vcc と GND 間に接続されるとともに、供給電圧 Vccのレベルを感知する電圧検出器36を有する。本実施形態において、電圧検出器36は、Vcc とスレショルドを比較するとともに、Vcc がスレショルドより高いか低いかの指示を出力する。以下で記述されるように、パワーアップ回路40は、このスレショルドを修正する能力を用いて、パワーアップシーケンスを保護する。別の実施形態において、二個の分離したスレショルドを有する電圧検出器、あるいは、各自異なるスレショルドを有する二個の分離した電圧検出器が、単一の調節可能なスレショルドの代わりに用いられる。
図1に示されるIC20の配置、および、その素子は、概念を分かりやすくするための例示的な配置である。別の実施形態において、その他の適当な任意の配置が用いられる。各種実施形態において、IC20、および、その素子は、適当な任意のハードウェアを用いて、特定用途向け集積回路 (ASIC)、あるいは、フィールドプログラマブルゲートアレイ (FPGA)で実行される。
いくつかの実施形態において、パワーアップ回路40の全部、あるいは、一部の機能は、ソフトウェア中でプログラム化されて、ここで開示される機能を実行する汎用プロセッサにより実行される。ソフトウェアは、プロセッサによりアクセス可能なリードオンリメモリ(ROM)中で、安全にあらかじめプログラム化される、あるいは、ネットワークにより、電子IC形式でプロセッサにダウンロードされる、たとえば、あるいは代わりに、あるいは追加的に、提供される、および/または、一時的でない有形の媒体、たとえば、磁気、光学、あるいは、電子メモリ上に保存される。
厳密なOTP供給電圧範囲を用いたパワーアップシーケンスの保護
上で説明したように、IC20は、異なるライフサイクル状態で、異なるアクセス権をそのリソースに対して有効にする。ライフサイクル状態、たとえば、DEFAULT、および、TEST は、通常、さらに寛容であるが、OPERATION 状態は、通常、ICリソースへのアクセス許可をさらに制限しようとする。
本内容中、用語 “リソース”とIC20、たとえば、機能回路24、あるいは、IC20中の各種ハードウェア回路、また、たとえば、配置、あるいは監視される機能回路24やその他の回路中のメモリに保存される情報は関連する。用語 “リソース”も、実行される機能、能力、あるいは操作と関連する。たとえば、デバッギング能力は、あるライフサイクル状態で許可され、その他の状態においてではない。この例において、ユーザーは、インターフェース26により、ICの各種リソースにアクセスする。しかし、一般的に、リソースへのアクセスはたとえば、内部ハードウェア、あるいはソフトウェアによりICに内在する。
一般的な実施において、パワーアップ回路40は、パワーアップシーケンス期間中、OTP28からのライフサイクル状態32を読み出すとともに、その後、読み出したライフサイクル状態に基づいて、リソースへの適切なアクセスを有効、あるいは無効にする。IC20中の適当な任意のリソースは、この方式で管理される。
適切に保護されない限り、上述のパワーアップシーケンスは、悪意のある攻撃にさらされやすい。たとえば、以下の実際の実例を考慮する:
デフォルト状態において、OTP28が“未使用”、すなわち、焼かれておらず、よって、ライフサイクル状態32の読み出しはすべてゼロに戻る。その他のライフサイクル状態(たとえば、OPERATION)は、OTP28に保存されたライフサイクル状態32のその他の値(すべてがゼロではない)により表示される。注意すべきことは、デフォルト状態は、OTP28中に積極的に保存された値ではないことである。むしろ、焼かれていないOTPメモリ中、既知の全ゼロ状態は、デフォルト状態であると解釈される。
OTP28の操作電圧範囲は、機能回路24の操作電圧範囲よりさらに厳密である。特に、存在する中間電圧Vintは、機能回路24の保証された動作範囲内であるが、OTP28の保証された動作範囲外である。使用事例において、OTP28の動作範囲は2.0~3.6Vであるが、機能回路24の操作電圧範囲 (あるいは、起動を担当する機能回路の少なくとも一部)は1.8~3.6Vである。この非制限例において、1.8~2.0V間の任意の電圧は、機能回路24の保証された動作範囲内であるが、OTP28の保証された動作範囲外である。
適当な保護がない状況下で、供給電圧 VccがVcc=Vintに設定されるとき、機能回路24は作動するが、読み取り時、OTP28は、予測不能なデータを返送する。攻撃者が、Vcc=Vint を、OPERATION 状態 (あるいは、非DEFAULTで、且つ、敏感なリソースへのアクセスを許可する別の状態)であるIC20に供給することを試みる。この供給電圧下で、ある可能性があり、それは、パワーアップ回路40がOTP28からのライフサイクル状態32を読み出すとき、OTPは、ライフサイクル状態32の正確な値ではなく、誤ってすべてゼロを返送することである。デフォルト状態の特権にしたがって、この誤った読み出しは、IC20が本当にOPERATION 状態であっても、パワーアップ回路40のリソースへのアクセスを有効にする。攻撃者は、Vcc=Vintの時、パワーアップの試みを繰り返して、攻撃成功の可能性を増加させる。
いくつかの実施形態において、ライフサイクル状態32の読み出しがすべてゼロに戻るとき、パワーアップ回路40は、さらに厳密である電圧範囲を要求することにより、この種の攻撃からIC20を守る。
図2は、本発明の一実施形態によるIC20中のパワーアップ回路40により実行される安全パワーアップシーケンスを説明するフローチャートである。プロセスの最初で、電圧検出器36の電圧スレショルドが、V1で示されるワークスレショルドに起動される。V1は、機能回路24の保証された操作電圧範囲内であるが、OTP28の保証された操作電圧範囲より低くなるように選択される。
電圧チェック工程50において、パワーアップ回路40は、電圧検出器36により提供される指示にしたがって、Vcc>V1か否か確認する。正常な状況下で、電源がIC20に供給されるとき、特定の電圧範囲に進入するまで、Vcc は徐々に上昇する。Vcc<V1である限り、本方法は、工程50に戻る。解放工程54において、Vcc>V1の時、パワーアップ回路40は、機能回路24をリセットから解放する。
第一読み出し工程58において、パワーアップ回路40は、OTP28から、ライフサイクル状態32を読み出し、特定の時間遅延に従って安定化する。状態チェック工程62において、パワーアップ回路40は、読み出したライフサイクル状態が、デフォルト状態であるかチェックする。そうでない場合、正常な操作工程66において、パワーアップ回路40は、完全なパワーアップシーケンスを実行し、ICの正常な操作を開始する。
一方、工程62の結果が、読み取ったライフサイクル状態がデフォルト状態である場合 (すなわち、OTP28はすでにすべてゼロに戻っている場合)、スレショルド増加工程70で、パワーアップ回路は、電圧検出器36の電圧スレショルドを、V1より高い、V2で示されるスレショルドに増加させる。V2は、OTP28の保証された操作電圧範囲内に選択される。
第二読み出し工程74において、電圧スレショルドV2が今、すでに増加した状況下で、パワーアップ回路40は、OTP28からのライフサイクル状態32を再読み出しする。一実施形態において、パワーアップ回路40は、工程58の第一読み出しと工程74の第二読み出し間の少なくとも所定期間の待ち時間を強制する(供給電圧 Vcc がV2に到達しない場合、プロセスは停止する)。
状態再チェック工程78において、パワーアップ回路40は、読み出したライフサイクル状態が、まだ、DEFAULTであるかチェックする。そうである場合、第二読み出しは、OTP28の保証された動作範囲内のVccで実行されるので、パワーアップ回路40は、攻撃の懸念がないと判断し、且つ、IC20のライフサイクル状態は、本当に DEFAULTである。よって、パワーアップ回路40は、正常な操作工程66に進む。
反対に、たとえば、OTP28からのライフサイクル状態32の第二読み出しが、DEFAULT (すべて、ゼロ)に戻らない場合、パワーアップ回路は、反応動作を起動する。第二読み出し (OTP28が操作されて、且つ、安定しているとすでに分かっているとき実行される)と第一読み出し (初期電圧スレショルドV1で実行される) 間のこのような相違は、攻撃を示す。パワーアップ回路40は、適当な任意の反応動作を起動し、たとえば、警告の発令、IC20の一部、あるいは、全部を無効にする、IC20をリセットする、IC20からの一部のデータ、あるいは全部のデータを削除するなどである。
原則的に、その他の方法を用いて、パワーアップシーケンスを保護することも可能である。たとえば、デフォルト状態を非許容状態として定義することが可能であり、この状態は、任意の敏感なリソースへのアクセスを許可されず、たとえば、TEST 状態への推移だけを許可する。別の例のように、機能回路が操作するとき、非常に正確な電圧検出を用いて、OTPが操作することを保証する。もう一つの可能性は、専用の電圧レギュレーターを用いて、OTPを駆動するものである。しかし、これらの全方策は、開示される技術と比較すると、操作柔軟性を実行、および/または制限するのは、かなり複雑である。
追加的な実施形態、および、変形例
いくつかの実施形態において、OTP28が設置されて、電圧検出器36の較正データ、および、較正データ中の計算で得られたエラー検出ビットを保存する。較正データは、通常、電圧検出器36の変化、たとえば、温度超過を補償し、あるいは、ある“黄金基準”検出器に相対する。エラー検出ビットは、たとえば、周期的冗長検査 (CRC)コード、パリティビット、SHAダイジェスト、ハッシュベースメッセージ認証コード (HMAC)とオンチップキー、あるいは、その他のシグネチャー、あるいは、その他の適当な任意のコードを有する。エラー検出ビットは、通常、少なくとも所定の保護レベルを有するように指定される。
エラーのチェックは、通常、OTPから、較正データ、および、エラー検出ビットを読み出し、較正データから、エラー検出ビットを再計算するとともに、再計算されたエラー検出ビットとOTPから読み出されたエラー検出ビットを比較することにより実行される。焼かれていないOTP (たとえば、デフォルト状態)は、通常、較正データを含まず、且つ、よって、このテストは失敗するはずである。
いくつかの実施形態において、パワーアップ回路40は、有効なエラー検出ビットを有する較正データの存在、あるいは、欠如を用いて、OTP28が、デフォルト状態にあるか否か判断する手段とする。たとえば、図2の工程62において、パワーアップ回路40は、OTP28から、較正データ、および、エラー検出ビットを読み出すことを試みる。エラーが検出された場合、パワーアップ回路40は、OTPがデフォルト状態であると結論を下すとともに、工程70に進む。
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の思想を脱しない範囲内で各種の変形を加えることができる。
20 セキュアIC
24 機能回路
26 インターフェース
28 OTPメモリ
32 ライフサイクル状態
36 電圧検出器
40 安全パワーアップ回路
50 電圧チェック工程
54 解放工程
58 第一読み出し工程
62 状態チェック工程
66 正常な操作工程
70 スレショルド増加工程
74 第二読み出し工程
78 状態再チェック工程
82…反応動作を起動する工程

Claims (20)

  1. 集積回路 (IC)であって、
    前記ICの動作状態を保存する不揮発性メモリ (NVM)、および、
    安全パワーアップ回路、を有し、前記安全パワーアップ回路は、
    前記ICのパワーアップシーケンス期間中、前記ICの供給電圧が第一電圧範囲内であるとき、前記NVMからの前記動作状態の第一読み出しを実行し、
    前記第一読み出しの前記NVMから読み出される前記動作状態が、前記ICの敏感なリソースへのアクセスを許可する状態である場合、前記供給電圧が、前記第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、その後、前記NVMから、前記動作状態の第二読み出しを実行し、および、
    反応動作を起動して、前記NVMから読み出される前記動作状態の前記第一読み出しと前記第二読み出し間の相違に対応する、
    ことを特徴とするIC。
  2. 前記安全パワーアップ回路が設置されて、前記供給電圧がすでに、少なくとも第一電圧に到達していることを確認することにより、前記供給電圧が、前記第一電圧範囲内であることを確認するとともに、前記供給電圧がすでに、少なくとも、前記第一電圧より高い第二電圧に到達していることを確認することにより、前記供給電圧が、前記第二電圧範囲内にあることを確認することを特徴とする請求項1に記載のIC。
  3. 前記第一電圧は、前記ICの機能回路の操作電圧範囲内であるが、前記NVMの操作電圧範囲より下であり、前記第二電圧は、前記NVMの前記操作電圧範囲内であることを特徴とする請求項2に記載のIC。
  4. 前記敏感なリソースへのアクセスを許可する前記状態は、新しく製造されたICを示すデフォルト状態であることを特徴とする請求項1に記載のIC。
  5. 前記敏感なリソースへのアクセスを許可する前記状態は、テスト状態であることを特徴とする請求項1に記載のIC。
  6. 前記NVMは、ワンタイムプログラマブル (OTP)メモリを有することを特徴とする請求項1に記載のIC。
  7. 安全パワーアップ回路は、前記第一読み出しと前記第二読み出し間で、少なくとも所定期間を待つことを特徴とする請求項1に記載のIC。
  8. 前記NVMがさらに設置されて、 (i)前記ICの電圧検出器の較正データ、および、(ii)前記較正データにより計算されるエラー検出コードを保存し、
    前記安全パワーアップ回路が設置されて、前記第一読み出し期間中に、前記較正データ、および、前記エラー検出コードを読み出し、および、前記第二読み出しを実行して、前記エラー検出コードによるエラーの検出に対応することを特徴とする請求項1に記載のIC。
  9. 前記安全パワーアップ回路は、前記供給電圧を感知する電圧検出器中で、少なくとも一つの調節可能なスレショルドを修正することにより、前記供給電圧と前記第一、および、第二電圧範囲を比較することを特徴とする請求項1に記載のIC。
  10. 前記安全パワーアップ回路は、前記供給電圧を感知する各自第一、および、第二電圧検出器を用いて、前記供給電圧と前記第一、および、第二電圧範囲を比較することを特徴とする請求項1に記載のIC。
  11. 集積回路 (IC)のパワーアップシーケンスを保護する方法であって、前記方法は、
    前記ICのパワーアップシーケンス期間中、前記ICの供給電圧が第一電圧範囲内であるとき、不揮発性メモリ (NVM)から、前記ICの動作状態の第一読み出しを実行する工程と、
    前記第一読み出しの前記NVMから読み出される前記動作状態が、前記ICの敏感なリソースへのアクセスを許可する状態である場合、前記供給電圧が、前記第一電圧範囲よりさらに厳密である第二電圧範囲内であるか確認するとともに、その後、前記NVMから、前記動作状態の第二読み出しを実行する工程、および、
    反応動作を起動して、前記NVMから読み出される前記動作状態の前記第一読み出しと前記第二読み出し間の相違に対応する工程、
    を有することを特徴とする方法。
  12. さらに、前記供給電圧がすでに、少なくとも第一電圧に到達したことを確認することにより、前記供給電圧が、前記第一電圧範囲内であることを確認し、前記供給電圧が、前記第二電圧範囲内であることの確認は、前記供給電圧がすでに、少なくとも、前記第一電圧より高い第二電圧に到達したことを確認する工程を有することを特徴とする請求項11に記載の方法。
  13. 前記第一電圧は、前記ICの機能回路の操作電圧範囲内であるが、前記NVMの操作電圧範囲より低く、および、前記第二電圧は、前記NVMの前記操作電圧範囲内であることを特徴とする請求項12に記載の方法。
  14. 前記敏感なリソースへのアクセスを許可する前記状態は、新しく製造されたICを示すデフォルト状態であることを特徴とする請求項11に記載の方法。
  15. 前記敏感なリソースへのアクセスを許可する前記状態は、テスト状態であることを特徴とする請求項11に記載の方法。
  16. 前記NVMは、ワンタイムプログラマブル (OTP)メモリを有することを特徴とする請求項11に記載の方法。
  17. さらに、前記第一読み出しと前記第二読み出し間で、少なくとも所定期間を待つことを特徴とする請求項11に記載の方法。
  18. さらに、前記第一読み出し期間中、前記NVMから、 (i)前記ICの電圧検出器の較正データ、および、(ii)前記較正データにより計算されたエラー検出コードを読み出すとともに、前記第二読み出しを実行して、前記エラー検出コードによるエラーの検出に対応する工程を有することを特徴とする請求項11に記載の方法。
  19. 前記供給電圧を感知する電圧検出器中で、少なくとも一つの調節可能なスレショルドを修正することにより、前記供給電圧と前記第一、および、第二電圧範囲を比較する工程を有することを特徴とする請求項11に記載の方法。
  20. 前記供給電圧を感知する各自第一、および、第二電圧検出器を用いて、前記供給電圧と前記第一、および、第二電圧範囲を比較する工程を有することを特徴とする請求項11に記載の方法。
JP2021035159A 2020-06-30 2021-03-05 マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証 Active JP7087142B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/916,142 2020-06-30
US16/916,142 US11636907B2 (en) 2020-06-30 2020-06-30 Integrity verification of lifecycle-state memory using multi-threshold supply voltage detection

Publications (2)

Publication Number Publication Date
JP2022022962A JP2022022962A (ja) 2022-02-07
JP7087142B2 true JP7087142B2 (ja) 2022-06-20

Family

ID=78283070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021035159A Active JP7087142B2 (ja) 2020-06-30 2021-03-05 マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証

Country Status (4)

Country Link
US (1) US11636907B2 (ja)
JP (1) JP7087142B2 (ja)
CN (1) CN113870932A (ja)
TW (1) TWI735403B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230083979A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Method and system for secure boot and rma intervention
TWI813379B (zh) * 2022-07-14 2023-08-21 瑞昱半導體股份有限公司 用於靜態隨機存取記憶體的輸出控制介面

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445606B1 (en) 2001-05-10 2002-09-03 Koninklijke Philips Electronics N.V. Secure poly fuse ROM with a power-on or on-reset hardware security features and method therefor
JP2010193013A (ja) 2009-02-16 2010-09-02 Hitachi Ulsi Systems Co Ltd 暗号鍵保護方法及び半導体記憶装置
US8892903B1 (en) 2012-12-06 2014-11-18 Xilinx, Inc. Detection of power analysis attacks
US20190026497A1 (en) 2016-03-04 2019-01-24 Altera Corporation Techniques For Protecting Security Features of Integrated Circuits

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE424566T1 (de) 2004-11-22 2009-03-15 Freescale Semiconductor Inc Integrierte schaltung und verfahren zur gesicherten prüfung
US7778074B2 (en) 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
GB2460275B (en) * 2008-05-23 2012-12-19 Exacttrak Ltd A Communications and Security Device
US8242831B2 (en) 2009-12-31 2012-08-14 Intel Corporation Tamper resistant fuse design
US8736299B1 (en) 2011-04-29 2014-05-27 Altera Corporation Setting security features of programmable logic devices
US8908464B2 (en) * 2013-02-12 2014-12-09 Qualcomm Incorporated Protection for system configuration information
US9685958B2 (en) 2013-11-14 2017-06-20 Case Western Reserve University Defense against counterfeiting using antifuses
JP2015106267A (ja) * 2013-11-29 2015-06-08 ルネサスエレクトロニクス株式会社 半導体回路
EP3437103B1 (en) * 2016-04-01 2021-10-13 Hewlett-Packard Development Company, L.P. Integrated circuit device using multiple one-time programmable bits to control access to a resource
US10678927B2 (en) * 2017-08-31 2020-06-09 Texas Instruments Incorporated Randomized execution countermeasures against fault injection attacks during boot of an embedded device
TWI734314B (zh) * 2018-12-31 2021-07-21 美商美光科技公司 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體
US11177007B2 (en) * 2020-02-24 2021-11-16 Micron Technology, Inc. Feedback for power management of a memory die using capacitive coupling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445606B1 (en) 2001-05-10 2002-09-03 Koninklijke Philips Electronics N.V. Secure poly fuse ROM with a power-on or on-reset hardware security features and method therefor
JP2010193013A (ja) 2009-02-16 2010-09-02 Hitachi Ulsi Systems Co Ltd 暗号鍵保護方法及び半導体記憶装置
US8892903B1 (en) 2012-12-06 2014-11-18 Xilinx, Inc. Detection of power analysis attacks
US20190026497A1 (en) 2016-03-04 2019-01-24 Altera Corporation Techniques For Protecting Security Features of Integrated Circuits

Also Published As

Publication number Publication date
CN113870932A (zh) 2021-12-31
TWI735403B (zh) 2021-08-01
JP2022022962A (ja) 2022-02-07
US20210407610A1 (en) 2021-12-30
TW202203216A (zh) 2022-01-16
US11636907B2 (en) 2023-04-25

Similar Documents

Publication Publication Date Title
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
ES2381355T3 (es) Plataforma informática de confianza
JP7087142B2 (ja) マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証
US20090288161A1 (en) Method for establishing a trusted running environment in the computer
JP2007257197A (ja) 起動検証機能を有する情報処理装置
US10181956B2 (en) Key revocation
KR100872175B1 (ko) Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN110020561B (zh) 半导体装置和操作半导体装置的方法
US6711690B2 (en) Secure write blocking circuit and method for preventing unauthorized write access to nonvolatile memory
JP6622337B2 (ja) 安全関連のアプリケーションにおけるマイクロコントローラシステム用の安全なリセット技術
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
CN118051919B (zh) 数据处理方法、芯片、电子设备以及存储介质
CN112083961B (zh) 嵌入式芯片的引导加载方法
KR20200070450A (ko) 차량 제어기의 보안 강화 방법 및 장치
CN117349849A (zh) 芯片启动方法和芯片
EP3987423A1 (en) Undefined lifecycle state identifier for managing security of an integrated circuit device
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和系统
CN115794136A (zh) eFUSE烧录方法、装置和电子设备及存储介质
WO2018040678A1 (zh) 一种存储器数据保护方法、集成电路芯片及存储介质
TW201833772A (zh) 安全碼跳躍及執行閘
WO2007026508A1 (ja) 半導体装置、テストモード制御回路
CN111736911B (zh) 嵌入式芯片的验证方法及引导加载方法
CN115017496A (zh) 一种可信启动方法、安全处理器以及介质
CN117609984A (zh) 基于risc-v架构的代码校验方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210309

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: 20220524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220608

R150 Certificate of patent or registration of utility model

Ref document number: 7087142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150