(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-10
(45)【発行日】2022-06-20
(54)【発明の名称】マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証
(51)【国際特許分類】
G06F 21/71 20130101AFI20220613BHJP
G06F 21/55 20130101ALI20220613BHJP
H01L 21/822 20060101ALI20220613BHJP
H01L 27/04 20060101ALI20220613BHJP
G06F 11/22 20060101ALN20220613BHJP
【FI】
G06F21/71
G06F21/55 360
H01L27/04 T
G06F11/22 607Z
(21)【出願番号】P 2021035159
(22)【出願日】2021-03-05
【審査請求日】2021-03-05
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000291
【氏名又は名称】弁理士法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】ハーシュマン,ジヴ
(72)【発明者】
【氏名】ヘイヨン,ヨエル
(72)【発明者】
【氏名】アロン,モシェ
【審査官】小太刀 慶明
(56)【参考文献】
【文献】特開2010-193013(JP,A)
【文献】米国特許第6445606(US,B1)
【文献】米国特許第8892903(US,B1)
【文献】米国特許出願公開第2019/0026497(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/71
G06F 21/55
H01L 21/822
G06F 11/22
(57)【特許請求の範囲】
【請求項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に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュア集積回路 (IC)に関するものであって、特に、ICのライフサイクル状態を保存するメモリの完全性検証に関するものである。
【背景技術】
【0002】
ある集積回路(IC)は、不揮発性メモリ (NVM)、たとえば、ワンタイムプログラマブル (OTP)メモリを有し、このメモリは、ICの動作状態を保存する。このようなメモリ中に保存される状態は、ICのセキュリティ機能へのアクセスを管理するのに用いられる。
【0003】
たとえば、米国公開特許公報第2019/0026497号では、制御回路、および、ワンタイムプログラマブル回路を有する集積回路が記述されている。制御回路は、ワンタイムプログラマブル回路が、集積回路が起動後、集積回路のモードへのアクセスの試みに応じて、プログラム化されるか否か判断する。制御回路が、ワンタイムプログラマブル回路がすでにプログラム化されて、事前のアクセスを集積回路のモードに指示していると判断する場合、制御回路は、信号を生成して、集積回路のユーザーに、集積回路のモードが、事前にアクセスされていることを示す。
【0004】
別の例のように、米国特許第10/095889号では、制御回路、ワンタイムプログラマブル回路、および、セキュリティ機能を有する集積回路が記述されている。制御回路は、ワンタイムプログラマブル回路が、プログラム化されて、集積回路のユーザーによる要求に反応して、セキュリティ機能にアクセスするか否かを判断する。制御回路は、ワンタイムプログラマブル回路がすでにプログラム化されて、事前のアクセスをセキュリティ機能に指示していると判断する場合、制御回路は、信号を生成して、集積回路のユーザーに、セキュリティ機能が、事前にアクセスされていることを示す。制御回路が、ワンタイムプログラマブル回路がまだプログラム化されていないと判断する場合、制御回路は、要求に応じて、ワンタイムプログラマブル回路をプログラム化させる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、マルチスレショルド供給電圧検出を用いたライフサイクル状態メモリの完全性検証を提供する。
【課題を解決するための手段】
【0006】
ここで開示される本発明の一実施形態は、不揮発性メモリ (NVM)、および、安全パワーアップ回路を有する集積回路 (IC)を提供する。NVMは、ICの動作状態を保存する。安全パワーアップ回路は、(i)ICのパワーアップシーケンス期間中、ICの供給電圧が第一電圧範囲内であるとき、NVMからの動作状態の第一読み出しを実行する、(ii)第一読み出しのNVMから読み出される動作状態が、ICの敏感なリソースへのアクセスを許可する状態である場合、供給電圧が、第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、その後、NVMからの動作状態の第二読み出しを実行する、 (iii)反応動作を起動して、NVMから読み出される動作状態の第一読み出しと第二読み出し間の相違に対応する。
【0007】
いくつかの実施形態において、安全パワーアップ回路が設置されて、供給電圧がすでに第一電圧に到達していることを確認することにより、供給電圧が、第一電圧範囲内にあることを確認するとともに、供給電圧が、すでに、少なくとも、第一電圧よりも高い第二電圧に到達していることを確認することにより、この供給電圧が、第二電圧範囲内であることを確認する。例示的実施形態において、第一電圧は、ICの機能回路の操作電圧範囲内であるが、NVMの操作電圧範囲よりは低く、第二電圧は、NVMの操作電圧範囲内である。
【0008】
一実施形態において、敏感なリソースへのアクセスを許可する状態は、新しく製造されたICを示すデフォルト状態である。別の実施形態において、敏感なリソースへのアクセスを許可する状態は、テスト状態である。いくつかの実施形態において、NVMは、ワンタイムプログラマブル (OTP)メモリを有する。
【0009】
さらに別の実施形態において、安全パワーアップ回路は、第一読み出しと第二読み出しの間で、少なくとも所定期間を待つ。またさらに別の実施形態において、NVMは、さらに、 (i)ICの電圧検出器の較正データ、(ii)較正データにより計算されたエラー検出コード、を保存するとともに、第一読み出し期間中に、安全パワーアップ回路が、較正データ、および、エラー検出コードを読み出して、第二読み出しを実行して、エラー検出コードによるエラーの検出に対応する。
【0010】
開示される実施形態において、安全パワーアップ回路が設置されて、供給電圧を感知する電圧検出器中で、少なくとも一つの調節可能なスレショルドを修正することにより、供給電圧と第一、および、第二電圧範囲を比較する。例示的な実施形態において、安全パワーアップ回路が設置されて、各自、供給電圧を感知する第一、および、第二電圧検出器を用いて、供給電圧と第一、および、第二電圧範囲を比較する。
【0011】
本発明の一実施形態によると、さらに、集積回路 (IC)のパワーアップシーケンスを保護する方法が提供される。本方法は、ICのパワーアップシーケンス期間中、ICの供給電圧が第一電圧範囲内であるとき、不揮発性メモリ (NVM)からのICの動作状態の第一読み出しを実行する工程を有する。NVMから読み出される第一読み出しの動作状態が、ICの敏感なリソースへのアクセスを許可する状態である場合、供給電圧が、第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、NVMから、動作状態の第二読み出しが実行される。反応動作が起動されて、NVMから読み出される動作状態の第一読み出しと第二読み出し間の相違に対応する。
【0012】
以下の詳細な記述と図面により、本発明の原理が十分に理解できる。
【発明の効果】
【0013】
本発明により、ライフサイクル状態メモリの完全性検証が適切になる。
【図面の簡単な説明】
【0014】
【
図1】本発明の一実施形態によるセキュアICを説明するブロック図である。
【
図2】本発明の一実施形態による
図1のIC中のパワーアップシーケンスを保護する方法を説明するフローチャートである。
【発明を実施するための形態】
【0015】
ここで記述される本発明の実施形態は、集積回路(IC)のパワーアップシーケンスを保護する改善された方法、および、回路を提供する。開示される技術は、各種タイプのIC、たとえば、セキュアコントローラー、および、メモリデバイスに用いられる。
【0016】
いくつかの実施形態において、ICは、ICの動作状態を保存する不揮発性メモリ (NVM)を有する。ここで開示される実施形態は、主に、ワンタイムプログラマブル (OTP) メモリと関連するが、開示される技術は、その他の種類のNVM、たとえば、フラッシュメモリ、あるいは、E2PROMに用いることができる。本内容中、用語 “動作状態”は、ICのライフサイクル段階を示す状態のことである。用語“動作状態”および “ライフサイクル状態”は、ここで交互に用いられる。動作状態の限定されない例は、DEFAULT (新しく製造された、バージンIC)、TEST (テストに用いるIC)、DEVELOP (発展中のIC)、OPERATION (ユーザーに提供される操作IC)、および、RMA (製造者に戻されるIC、たとえば、故障のため)を有する。
【0017】
その異なるライフサイクル段階で、ICを適切に処理するため、異なる動作状態は、異なるアクセス権をICリソースに有効にする。たとえば、デフォルト状態上のICは、通常、任意の敏感な情報を保持しないと仮定され、よって、この状態は、ユーザーがICリソースにアクセスできるようにする相対的な許容である。テストは、通常、敏感な情報がない状況で実行されるので、TEST モードも、通常、相対的に寛容であり、且つ、適切なテストのために制限されていないアクセスを必要とする。一方、OPERATION 状態において、ユーザーのシステムのICは、完全に操作可能で、敏感な情報を含んでいるであろうと仮定される。よって、OPERATION 状態は、通常、ユーザーがICリソースにアクセスするのを制限する。
【0018】
例示的な実施において、ICのパワーアップシーケンス期間中に、適切なアクセス権は、有効、あるいは、無効になる。このような実施において、ICは、パワーアップ回路を有し、パワーアップ回路は、ICのパワーアップシーケンスを実行する。パワーアップシーケンスの一部として、パワーアップ回路は、NVMから、ICの動作状態を読み出すとともに、読み出した動作状態に基づいて、各種リソースへのアクセスを有効、あるいは、無効にする。
【0019】
しかし、この類のパワーアップシーケンスが、安全な攻撃にさらされる。たとえば、攻撃者は、パワーアップ回路に動作状態を誤読させようと試みて、パワーアップ回路が、本物のICの動作状態よりさらに寛容な動作状態を決定することを希望する。一つの可能な攻撃状況において、攻撃者は、中間供給電圧の設定を試み、たとえば、繊細な電圧制御により、あるいは、電圧グリッチ挿入により、パワーアップ回路に有効であると思わせるが、上記のような状態で、NVMは、完全には安定していない。この供給電圧上で、読み出し時、NVMが誤ったデータを返送し、および、この誤ったデータが、パワーアップ回路により寛容な動作状態であると解釈される可能性がある。
【0020】
いくつかの実施形態において、パワーアップ回路は、さらに厳密である供給電圧範囲を設定する、および、NVMから動作状態を再読み出しすることにより、上記の脆弱性を軽減する。いくつかの実施形態において、パワーアップ回路は、ICの供給電圧が第一電圧範囲内であるとき、NVMから動作状態の第一読み出しを実行する。第一読み出しの前記NVMから読み出される動作状態が、ICの敏感なリソースへのアクセスを許可する状態、たとえば、DEFAULT、あるいはTESTである場合、パワーアップ回路は、供給電圧が第一電圧範囲よりさらに厳密である第二電圧範囲内であることを確認するとともに、その後、NVMから動作状態の第二読み出しを実行する。相違が第一読み出しと第二読み出しで読み出される動作状態間で見つかる場合、パワーアップ回路は、適当な反応動作を起動する。第二電圧範囲は、その上限、下限、あるいは、両方で、第一電圧範囲よりもさらに厳密である(さらに狭い)。
【0021】
たとえば、パワーアップ回路は、第一読み出し、および、第二読み出しにとって、最小限要求される供給電圧上で異なるスレショルドを実行する。つまり、パワーアップ回路は、供給電圧が、すでに少なくとも第一電圧に到達していることを確認することにより、供給電圧が第一電圧範囲内であることを確認する。パワーアップ回路は、供給電圧が、すでに少なくとも第一電圧より高い第二電圧に到達していることを確認することにより、供給電圧が第二電圧範囲内であることを確認する。
【0022】
いくつかの実施形態において、第一電圧 (NVMからの第一読み出しに設定される電圧スレショルド)は、ICの機能回路の動作範囲内であるが、NVMの操作電圧範囲より低い。第二電圧 (NVMからの第二読み出しに設定される電圧スレショルド)は、NVMの動作範囲内である。
【0023】
各種実施例と開示される技術の変化がここで記述される。
【0024】
システム記述
図1は、本発明の一実施形態によるセキュアIC20を説明するブロック図である。セキュアIC20は、たとえば、とりわけ暗号IC操作を実行するセキュアコントローラー、敏感な情報を保存するのに用いられるセキュアメモリ、あるいは、その他の適当な任意のタイプのICを有する。
【0025】
IC20は、機能回路24を有する。用語“機能回路”というのは、IC20の指定された機能、たとえば、各種処理、および/または、データストレージ操作を実行する回路のことである。この例において、機能回路24は、インターフェース26によりアクセス可能である。インターフェース26は、たとえば、一般的に、IC20とホストやテスター間の通信に用いられる適当な直列、あるいは、並列のバスを有する。
【0026】
IC20は、さらに、OTPメモリ28( または“OTP”と称する)を有し、IC20の現在のライフサイクル状態32を保存する。上述の通り、以下の記述は、主にOTPと関連しているが、開示される技術は、別のタイプの不揮発性メモリにも応用することができる。OTP28は、ライフサイクル状態32以外に、その他の任意の適当な情報を保存する。
【0027】
機能回路24、および、OTP28を有するIC20の各種コンポーネンツは、Vccで示される供給電圧により駆動され、且つ、接地GNDは参考点である。
【0028】
いくつかの実施形態において、IC20は、安全パワーアップ回路40を有し、回路は、ICのパワーアッププロセス ( “パワーアップシーケンス”とも称する)を実行する。本内容中、用語“パワーアップシーケンス”というのは、供給電圧 Vcc が供給されるとき、ICの初期操作のプロセスのことである。
【0029】
一実施形態において、IC20は、Vcc と GND 間に接続されるとともに、供給電圧 Vccのレベルを感知する電圧検出器36を有する。本実施形態において、電圧検出器36は、Vcc とスレショルドを比較するとともに、Vcc がスレショルドより高いか低いかの指示を出力する。以下で記述されるように、パワーアップ回路40は、このスレショルドを修正する能力を用いて、パワーアップシーケンスを保護する。別の実施形態において、二個の分離したスレショルドを有する電圧検出器、あるいは、各自異なるスレショルドを有する二個の分離した電圧検出器が、単一の調節可能なスレショルドの代わりに用いられる。
【0030】
図1に示されるIC20の配置、および、その素子は、概念を分かりやすくするための例示的な配置である。別の実施形態において、その他の適当な任意の配置が用いられる。各種実施形態において、IC20、および、その素子は、適当な任意のハードウェアを用いて、特定用途向け集積回路 (ASIC)、あるいは、フィールドプログラマブルゲートアレイ (FPGA)で実行される。
【0031】
いくつかの実施形態において、パワーアップ回路40の全部、あるいは、一部の機能は、ソフトウェア中でプログラム化されて、ここで開示される機能を実行する汎用プロセッサにより実行される。ソフトウェアは、プロセッサによりアクセス可能なリードオンリメモリ(ROM)中で、安全にあらかじめプログラム化される、あるいは、ネットワークにより、電子IC形式でプロセッサにダウンロードされる、たとえば、あるいは代わりに、あるいは追加的に、提供される、および/または、一時的でない有形の媒体、たとえば、磁気、光学、あるいは、電子メモリ上に保存される。
【0032】
厳密なOTP供給電圧範囲を用いたパワーアップシーケンスの保護
上で説明したように、IC20は、異なるライフサイクル状態で、異なるアクセス権をそのリソースに対して有効にする。ライフサイクル状態、たとえば、DEFAULT、および、TEST は、通常、さらに寛容であるが、OPERATION 状態は、通常、ICリソースへのアクセス許可をさらに制限しようとする。
【0033】
本内容中、用語 “リソース”とIC20、たとえば、機能回路24、あるいは、IC20中の各種ハードウェア回路、また、たとえば、配置、あるいは監視される機能回路24やその他の回路中のメモリに保存される情報は関連する。用語 “リソース”も、実行される機能、能力、あるいは操作と関連する。たとえば、デバッギング能力は、あるライフサイクル状態で許可され、その他の状態においてではない。この例において、ユーザーは、インターフェース26により、ICの各種リソースにアクセスする。しかし、一般的に、リソースへのアクセスはたとえば、内部ハードウェア、あるいはソフトウェアによりICに内在する。
【0034】
一般的な実施において、パワーアップ回路40は、パワーアップシーケンス期間中、OTP28からのライフサイクル状態32を読み出すとともに、その後、読み出したライフサイクル状態に基づいて、リソースへの適切なアクセスを有効、あるいは無効にする。IC20中の適当な任意のリソースは、この方式で管理される。
【0035】
適切に保護されない限り、上述のパワーアップシーケンスは、悪意のある攻撃にさらされやすい。たとえば、以下の実際の実例を考慮する:
デフォルト状態において、OTP28が“未使用”、すなわち、焼かれておらず、よって、ライフサイクル状態32の読み出しはすべてゼロに戻る。その他のライフサイクル状態(たとえば、OPERATION)は、OTP28に保存されたライフサイクル状態32のその他の値(すべてがゼロではない)により表示される。注意すべきことは、デフォルト状態は、OTP28中に積極的に保存された値ではないことである。むしろ、焼かれていないOTPメモリ中、既知の全ゼロ状態は、デフォルト状態であると解釈される。
【0036】
OTP28の操作電圧範囲は、機能回路24の操作電圧範囲よりさらに厳密である。特に、存在する中間電圧Vintは、機能回路24の保証された動作範囲内であるが、OTP28の保証された動作範囲外である。使用事例において、OTP28の動作範囲は2.0~3.6Vであるが、機能回路24の操作電圧範囲 (あるいは、起動を担当する機能回路の少なくとも一部)は1.8~3.6Vである。この非制限例において、1.8~2.0V間の任意の電圧は、機能回路24の保証された動作範囲内であるが、OTP28の保証された動作範囲外である。
【0037】
適当な保護がない状況下で、供給電圧 VccがVcc=Vintに設定されるとき、機能回路24は作動するが、読み取り時、OTP28は、予測不能なデータを返送する。攻撃者が、Vcc=Vint を、OPERATION 状態 (あるいは、非DEFAULTで、且つ、敏感なリソースへのアクセスを許可する別の状態)であるIC20に供給することを試みる。この供給電圧下で、ある可能性があり、それは、パワーアップ回路40がOTP28からのライフサイクル状態32を読み出すとき、OTPは、ライフサイクル状態32の正確な値ではなく、誤ってすべてゼロを返送することである。デフォルト状態の特権にしたがって、この誤った読み出しは、IC20が本当にOPERATION 状態であっても、パワーアップ回路40のリソースへのアクセスを有効にする。攻撃者は、Vcc=Vintの時、パワーアップの試みを繰り返して、攻撃成功の可能性を増加させる。
【0038】
いくつかの実施形態において、ライフサイクル状態32の読み出しがすべてゼロに戻るとき、パワーアップ回路40は、さらに厳密である電圧範囲を要求することにより、この種の攻撃からIC20を守る。
【0039】
図2は、本発明の一実施形態によるIC20中のパワーアップ回路40により実行される安全パワーアップシーケンスを説明するフローチャートである。プロセスの最初で、電圧検出器36の電圧スレショルドが、V1で示されるワークスレショルドに起動される。V1は、機能回路24の保証された操作電圧範囲内であるが、OTP28の保証された操作電圧範囲より低くなるように選択される。
【0040】
電圧チェック工程50において、パワーアップ回路40は、電圧検出器36により提供される指示にしたがって、Vcc>V1か否か確認する。正常な状況下で、電源がIC20に供給されるとき、特定の電圧範囲に進入するまで、Vcc は徐々に上昇する。Vcc<V1である限り、本方法は、工程50に戻る。解放工程54において、Vcc>V1の時、パワーアップ回路40は、機能回路24をリセットから解放する。
【0041】
第一読み出し工程58において、パワーアップ回路40は、OTP28から、ライフサイクル状態32を読み出し、特定の時間遅延に従って安定化する。状態チェック工程62において、パワーアップ回路40は、読み出したライフサイクル状態が、デフォルト状態であるかチェックする。そうでない場合、正常な操作工程66において、パワーアップ回路40は、完全なパワーアップシーケンスを実行し、ICの正常な操作を開始する。
【0042】
一方、工程62の結果が、読み取ったライフサイクル状態がデフォルト状態である場合 (すなわち、OTP28はすでにすべてゼロに戻っている場合)、スレショルド増加工程70で、パワーアップ回路は、電圧検出器36の電圧スレショルドを、V1より高い、V2で示されるスレショルドに増加させる。V2は、OTP28の保証された操作電圧範囲内に選択される。
【0043】
第二読み出し工程74において、電圧スレショルドV2が今、すでに増加した状況下で、パワーアップ回路40は、OTP28からのライフサイクル状態32を再読み出しする。一実施形態において、パワーアップ回路40は、工程58の第一読み出しと工程74の第二読み出し間の少なくとも所定期間の待ち時間を強制する(供給電圧 Vcc がV2に到達しない場合、プロセスは停止する)。
【0044】
状態再チェック工程78において、パワーアップ回路40は、読み出したライフサイクル状態が、まだ、DEFAULTであるかチェックする。そうである場合、第二読み出しは、OTP28の保証された動作範囲内のVccで実行されるので、パワーアップ回路40は、攻撃の懸念がないと判断し、且つ、IC20のライフサイクル状態は、本当に DEFAULTである。よって、パワーアップ回路40は、正常な操作工程66に進む。
【0045】
反対に、たとえば、OTP28からのライフサイクル状態32の第二読み出しが、DEFAULT (すべて、ゼロ)に戻らない場合、パワーアップ回路は、反応動作を起動する。第二読み出し (OTP28が操作されて、且つ、安定しているとすでに分かっているとき実行される)と第一読み出し (初期電圧スレショルドV1で実行される) 間のこのような相違は、攻撃を示す。パワーアップ回路40は、適当な任意の反応動作を起動し、たとえば、警告の発令、IC20の一部、あるいは、全部を無効にする、IC20をリセットする、IC20からの一部のデータ、あるいは全部のデータを削除するなどである。
【0046】
原則的に、その他の方法を用いて、パワーアップシーケンスを保護することも可能である。たとえば、デフォルト状態を非許容状態として定義することが可能であり、この状態は、任意の敏感なリソースへのアクセスを許可されず、たとえば、TEST 状態への推移だけを許可する。別の例のように、機能回路が操作するとき、非常に正確な電圧検出を用いて、OTPが操作することを保証する。もう一つの可能性は、専用の電圧レギュレーターを用いて、OTPを駆動するものである。しかし、これらの全方策は、開示される技術と比較すると、操作柔軟性を実行、および/または制限するのは、かなり複雑である。
【0047】
追加的な実施形態、および、変形例
いくつかの実施形態において、OTP28が設置されて、電圧検出器36の較正データ、および、較正データ中の計算で得られたエラー検出ビットを保存する。較正データは、通常、電圧検出器36の変化、たとえば、温度超過を補償し、あるいは、ある“黄金基準”検出器に相対する。エラー検出ビットは、たとえば、周期的冗長検査 (CRC)コード、パリティビット、SHAダイジェスト、ハッシュベースメッセージ認証コード (HMAC)とオンチップキー、あるいは、その他のシグネチャー、あるいは、その他の適当な任意のコードを有する。エラー検出ビットは、通常、少なくとも所定の保護レベルを有するように指定される。
【0048】
エラーのチェックは、通常、OTPから、較正データ、および、エラー検出ビットを読み出し、較正データから、エラー検出ビットを再計算するとともに、再計算されたエラー検出ビットとOTPから読み出されたエラー検出ビットを比較することにより実行される。焼かれていないOTP (たとえば、デフォルト状態)は、通常、較正データを含まず、且つ、よって、このテストは失敗するはずである。
【0049】
いくつかの実施形態において、パワーアップ回路40は、有効なエラー検出ビットを有する較正データの存在、あるいは、欠如を用いて、OTP28が、デフォルト状態にあるか否か判断する手段とする。たとえば、
図2の工程62において、パワーアップ回路40は、OTP28から、較正データ、および、エラー検出ビットを読み出すことを試みる。エラーが検出された場合、パワーアップ回路40は、OTPがデフォルト状態であると結論を下すとともに、工程70に進む。
【0050】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の思想を脱しない範囲内で各種の変形を加えることができる。
【符号の説明】
【0051】
20 セキュアIC
24 機能回路
26 インターフェース
28 OTPメモリ
32 ライフサイクル状態
36 電圧検出器
40 安全パワーアップ回路
50 電圧チェック工程
54 解放工程
58 第一読み出し工程
62 状態チェック工程
66 正常な操作工程
70 スレショルド増加工程
74 第二読み出し工程
78 状態再チェック工程
82…反応動作を起動する工程