(57)【要約】本発明は、半導体デバイスに対する不正アクセスを検出する手段を具える半導体デバイスおよびその方法に関するものであり、本発明の半導体デバイスは、不正アクセスの検出後に半導体デバイスの初期化を実行し、不正アクセスに関する情報項目を初期化前に半導体デバイスによって格納することができ、格納された権限なきアクセスに関する情報項目は、半導体デバイスの初期化後にもとのままである。格納された情報項目が、半導体デバイスを電源から切断した後の所定期間の間もとのままであると有利である。
2009512952.tif 000002
【特許請求の範囲】
【請求項１】
半導体デバイスへの攻撃の後に前記半導体デバイスの初期化を実行する半導体デバイスであって、
前記攻撃に関する情報項目を、前記初期化の前に前記半導体デバイスにより格納することができ、
格納された前記攻撃に関する情報項目は、前記半導体デバイスの前記初期化後にもとのままである、
ことを特徴とする半導体デバイス。
【請求項２】
前記格納された情報項目は、所定期間の間だけ、もとのままであることを特徴とする請求項１に記載の半導体デバイス。
【請求項３】
前記所定期間をあらかじめ定めることができることを特徴とする請求項２に記載の半導体デバイス。
【請求項４】
前記半導体デバイスの初期化の後、前記格納された情報項目は、前記半導体デバイスの更なる初期化を起動させるために用いられることを特徴とする請求項２または３に記載の半導体デバイス。
【請求項５】
前記格納された情報項目は、前記半導体デバイスを電源から切断した後の所定期間の間もとのままであることを特徴とする請求項１〜４のいずれかに記載の半導体デバイス。
【請求項６】
前記情報項目を記憶する手段を具えることを特徴とする請求項１〜５のいずれかに記載の半導体デバイス。
【請求項７】
前記記憶手段は容量性素子を具え、前記容量性素子を充電する手段および前記容量性素子の充電状態を読み出す手段が設けられることを特徴とする請求項６に記載の半導体デバイス。
【請求項８】
前記所定期間は、前記容量性素子の放電電流によって、定められることを特徴とする請求項７に記載の半導体デバイス。
【請求項９】
前記放電電流は、負荷、好ましくはダイオードを経て流れることを特徴とする請求項８に記載の半導体デバイス。
【請求項１０】
前記負荷は、金属により遮蔽されることを特徴とする請求項９に記載の半導体デバイス。
【請求項１１】
前記半導体デバイスの初期化後に、前記容量性素子の電荷をリフレッシュする手段を具えることを特徴とする請求項７〜１０のいずれかに記載の半導体デバイス。
【請求項１２】
前記半導体デバイスの初期化後の前記容量性素子に存在する電荷を、前記半導体デバイスへの所定数の攻撃あるいは所定タイプの攻撃の後にリフレッシュすることができることを特徴とする請求項７〜１１のいずれかに記載の半導体デバイス。
【請求項１３】
前記半導体デバイスへの攻撃を検出する手段を具えることを特徴とする請求項１〜１２のいずれかに記載の半導体デバイス。
【請求項１４】
前記情報項目を記憶する前記手段は、複数の容量性素子を具えることを特徴とする請求項６〜１３のいずれかに記載の半導体デバイス。
【請求項１５】
前記半導体デバイスへの攻撃に関する複数の情報項目を、前記複数の容量性素子に記憶できることを特徴とする請求項１４に記載の半導体デバイス。
【請求項１６】
前記半導体デバイスは集積回路であることを特徴とする請求項１〜１５のいずれかに記載の半導体デバイス。
【請求項１７】
請求項１〜１６のいずれかに記載の半導体デバイスを具えていることを特徴とするスマートカード。
【請求項１８】
半導体デバイスへの攻撃から保護する方法であって、
前記半導体デバイスへの攻撃を検出するステップと、
前記半導体デバイスへの前記攻撃に関する情報項目を格納するステップと、
前記半導体デバイスの初期化を実行するステップと、
を具え、格納された前記攻撃に関する情報項目がもとのままであることを特徴とする方法。
【請求項１９】
前記半導体デバイスの初期化を実行した後、前記半導体デバイスの更なる初期化は、前記格納された情報項目の関数として実行されることを特徴とする請求項18に記載の方法。
【請求項２０】
前記半導体デバイスの初期化を実行した後、前記格納された情報項目はリフレッシュされることを特徴とする請求項１８または１９に記載の方法。
【請求項２１】
前記格納された情報項目が所定期間の後消去されることを特徴とする請求項１７〜２０のいずれかに記載の方法。
【請求項２２】
前記格納された情報項目は、前記半導体デバイスが電源から切断された後、所定期間の間もとのままであることを特徴とする請求項１７〜２１のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスへの攻撃の後に初期化を実行する半導体デバイスおよび対応する方法に関するものである。このような半導体デバイスは、特に、スマートカード用のチップとして使われる。一般的に、スマートカード・チップに格納されるのは、権限のある人によってのみ呼び出し可能にされた情報項目である。これらの情報項目は、例えば、ユーザを識別するかまたは前記ユーザを認可するのに用いる秘密の情報項目である。このような情報項目は、外部からアクセスできるべきでない。なぜなら、さもないと悪用されうるからである。特に、外部に持ち出される情報項目を暗号化するのに用いるキー・データは完全に保護しなければならない。
【背景技術】
【０００２】
このような製品の安全性または完全性への攻撃は、特に、例えば温度、光、電源電圧、クロックレートに関して、その仕様外の動作条件にチップをさらすこと、または電圧ノイズをチップに印加することにある。その目的はスマートカード・チップが無制御の動作状態になり、無制御かつ意図せぬ動作を実行するように、スマートカード・チップの機能を混乱させることにあり、その結果、このようなスマートカード・チップから、格納された保護データに関する情報が引き出されうる。
【０００３】
例えば、攻撃目的で、電源電圧をVpp-0.5V（プログラミング電圧）に設定することによって、ＰＩＣ  １６Ｃ８４マイクロコントローラのセキュリティ・ビットを消去できる。これは、電源電圧がわずかに減らされると、スマートカード・チップ内にあるいくつかの乱数発生器が値１を次第に多く発生するためである。
【０００４】
このような攻撃から保護するために、スマートカードに動作条件の混乱を検出するセンサを設けることが知られている。このようなセンサは、例えば、電圧センサ、温度センサ、周波数センサおよび光および電圧ノイズの検出器である。
【０００５】
攻撃から保護する１つの方法は、チップが動作条件の混乱を検出すると、チップ自身を自滅させ、こうして、記憶データのあらゆる可能な出力を防止することである。代案として、対応する情報項目を、メモリに永久に書き込むことができる。両方法の不利な点は、動作状態で混乱を検出した後には、チップが永久に使用不可能になることである。すなわち、例えば、混乱が実際には偶然なだけであって、悪意のものでなくても、または、攻撃者が攻撃失敗後に諦めても、チップは永久に使用不可能になる。
【０００６】
この不利な点を回避する代わりの方法は、規定の動作状態に戻るために、チップが混乱の検出後に、自動的に初期化することである。この方法の不利な点は、チップが初期化シーケンスを通過後、再び攻撃にさらされるということである。このような初期化の継続時間は、一般的にたった１００マイクロ秒のオーダであるので、攻撃は短い時間内に頻繁に、すなわち高周波数で行うことができる。攻撃者は、スマートカード・チップを十分な回数攻撃すれば、スマートカード・チップが格納された情報を最終的に開示することを期待できる。これは、「総当たり攻撃」として知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、上述した不利な点を少なくとも部分的に回避する半導体デバイスおよびその方法を提供することにある。
【０００８】
この目的は、請求項１に記載の半導体デバイスおよび請求項１８に記載の方法により達成される。
【０００９】
本明細書における「攻撃」という用語は、格納された情報の安全を損ないうる半導体デバイスに対するあらゆるタイプの影響を含む。このような攻撃は、特に、上述した方法、例えば、半導体デバイスをその仕様外の動作条件にさらすことを含む。
【課題を解決するための手段】
【００１０】
したがって、本発明は、半導体デバイスへの攻撃の後に半導体デバイスの初期化を実行する半導体デバイスであって、攻撃に関する情報項目を、最初の初期化の前に半導体デバイスにより格納することができ、格納された攻撃に関する情報項目は、半導体デバイスの初期化後にもとのままである、半導体デバイスを提供する。
【００１１】
初期化後にまだ利用できる情報項目は、攻撃が初期化の前に半導体デバイスに生じたことを示す。一旦初期化が生じた場合、この情報項目を用いて半導体デバイスへの再攻撃を防止する更なる手段を開始できる。
【００１２】
その結果、有利なことに、半導体デバイスの安全性への攻撃の繰返し数を大きく減少させ、半導体デバイスを破壊することのなく格納データの安全性を増加させる半導体デバイスが得られる。
【００１３】
好ましくは、格納された情報項目は、所定期間の間だけ、もとのままである。これは、その期間が経過したら、半導体デバイスが通常の動作状態に自動的戻ることができるということを意味する。
【００１４】
さらに、この期間をあらかじめ定めることができる。
【００１５】
好適実施例では、半導体デバイスの初期化の後、格納された情報項目は、半導体デバイスの更なる初期化を起動させるために用いられる。その結果、初期化の無限ループを実行できる。初期化動作中、半導体デバイスへの攻撃は不可能である。
【００１６】
好ましくは、格納された情報項目は、半導体デバイスを電源から切断した後の所定期間の間もとのままである。この場合、攻撃が半導体デバイスに生じたという事実に関する情報項目は、半導体デバイスが電源から切断された後でも利用し続けることができる。半導体デバイスが所定期間内に電源に再接続される場合、この情報項目は、再び初期化の無限ループを生じる更なる初期化を起動させるために用いることができ、それによって、半導体デバイスへの更なる攻撃を特に効果的に防止することができる。
【００１７】
更なる改良において、半導体デバイスは、情報項目を記憶する手段、好ましくは容量性素子を具える。
【００１８】
更なる改良において、容量性素子を充電する手段および容量性素子の充電状態を読み出す手段が設けられる。
【００１９】
好ましくは、所定期間は、容量性素子の放電電流によって定められる。
【００２０】
好適実施例では、放電電流は、負荷、好ましくはダイオードを経て流れる。
【００２１】
例えばダイオードのリーク電流による容量性素子の放電のために、半導体デバイスは一定の時間長の後に再び利用でき、前記時間長は容量性素子の放電時間によって決まる。その結果、安全性に関する異なる要求を実現できる。非常に高い安全要求を有するスマートカード・チップのために、例えば、放電時間は超低リーク電流を有するダイオードを使用して非常に長く設定できる。
【００２２】
好ましくは、前記負荷は金属により保護される。ダイオード上への操つられた光照射による増加した望ましくないリーク電流はこれにより回避される。
【００２３】
半導体デバイスは、半導体デバイスの初期化後に、容量性素子の電荷をリフレッシュする手段を具える。
【００２４】
さらなる態様では、半導体デバイスの初期化後の容量性素子に存在する電荷を、半導体デバイスへの所定数の攻撃あるいは所定タイプの攻撃の後にリフレッシュすることができる。これにより、悪意でない個々の影響が半導体デバイスの連続初期化を起動させる状況を効果的に防止することが可能である。攻撃の数またはタイプに関する情報項目を、追加の記憶手段に格納できる。
【００２５】
好ましくは、半導体デバイスは、半導体デバイスへの攻撃を検出する少なくとも１つのセンサを具える。
【００２６】
さらなる態様では、情報項目を記憶する手段は複数の容量性素子を具える。その結果、攻撃に関する複数の情報項目を複数の容量性素子に記憶することができ、情報項目は異なるセンサから生じるものとすることができる。
【００２７】
好適実施例では、半導体デバイスは集積回路である。
【００２８】
本発明は、本発明による少なくとも１つの半導体デバイスを具えているスマートカードをも含む。
【００２９】
本発明はさらに、半導体デバイスへの攻撃を保護する方法であって、
半導体デバイスへの攻撃を検出するステップと、
半導体デバイスへの攻撃に関する情報項目を格納するステップと、
半導体デバイスの初期化を実行するステップと、
を具え、格納された情報項目がもとのままであることを特徴とする方法を提供する。
【００３０】
初期化を実行した後、更なる初期化を実行できる。
【００３１】
好ましくは、半導体デバイスの初期化を実行した後、格納された情報項目はリフレッシュされる。
【００３２】
さらに、格納された情報項目は、好ましくは、半導体デバイスが電源から切断された後、所定期間の間もとのままである。
【００３３】
記憶装置に格納された情報項目は、所定期間内に記憶装置から消去される。その後、半導体デバイスは再び利用できる。
【発明を実施するための最良の形態】
【００３４】
本発明は、図面に示される実施形態を一例として参照してさらに記載されているが、これらに限定されるものではない。
【００３５】
以下の本文は、半導体デバイスがスマートカード・チップとして構成される実施形態の一例を説明する。スマートカード・チップは、攻撃に関する情報項目を格納する手段を具える。この情報項目は、例えば上述した種々のセンサのうちの１つの反応から生じるものとすることができる。このようなセンサの反応は、スマートカード・チップの初期化を生じる。本発明によれば、スマートカード・チップへの攻撃に関するこの情報項目を、初期化が生じた後でも利用し続けることができる。一旦初期化が生じると、これらの情報項目は読み出され、更なる初期化を起動させるために用いられる。これは初期化の無限ループを生じさせ、その結果、スマートカード・チップへのいかなる再攻撃も防止される。
【００３６】
スマートカード・チップが電源電圧から切断される場合、格納された攻撃に関する情報項目は、失われる前所定期間の間もとのままであり続ける。この期間は、１秒のオーダであることが好ましい。これにより、スマートカード・チップが、悪意でない混乱であるが攻撃として検出された混乱の後、比較的速く再び機能することが可能になる。しかし、他方では、この時間は従来の初期化の約１００００倍長くし、その結果として、攻撃の頻度が同じ倍率で減少されるようにする。
【００３７】
本実施例では、回路は攻撃に関する情報項目を電荷の形で格納するための容量性素子を具える。この回路は電荷を蓄積すると共に充電状態を読み出すものであって、電源電圧がスイッチオフされると、電荷が小さいダイオードのリーク電流によってのみ失われるように設計される。レイアウト手法を用いて、例えばダイオードを金属層でシールディングすることによって、例えば、光照射によりリーク電流が外部から操られることを防止することが可能である。
【００３８】
さらに、回路は、初期化後に容量性素子の充電状態を自動的に検査するだけでなく、電源電圧なしで、所定の蓄積時間を達成するために容量性素子の存在電荷を自動的にリフレッシュするように設計できる。
【００３９】
本発明の一実施例は図１〜３に示される。
【００４０】
図１は、本発明に係る半導体デバイスのブロック回路図を示し、この半導体デバイスは、１ビットの記憶域として働くキャパシタ50と、この記憶域に書き込むための回路ブロック100と、この記憶域から読み出す、すなわちキャパシタ50の充電状態を読み出すための回路ブロック200とを有する。
【００４１】
図２は、キャパシタ50に書き込むための回路ブロック100の回路図を示す。半導体デバイスの電源電圧Vddがスイッチオンされるときに、蓄積キャパシタ50の一端もまたVddである。他端は電荷を蓄積できるノード67である。蓄積容量はこのノード67上の他の全キャパシタンスと比較して大きいので、蓄積容量は容量的にほとんどVdd電位にすることができる。これは、未書き込み状態である。
【００４２】
メモリ・ビットが書き込まれるとき、すなわち、蓄積キャパシタ50が充電されるとき、このノード67はほぼ０ボルトになる。これは、ノード152が０ボルトであるとき、図２のダイオード120を経て達成される。この場合、０ボルトは完全には達成されない。
【００４３】
図２の他のトランジスタは、単に論理関数を有し、書き込み動作が生じる条件を定める。本実施例において、トランジスタ111、112、109および110は、ノード151を経てセットおよびリセットできるラッチを形成する。書き込み状態は、ノード151がVddである。信号61（パワー・オン・リセット）は短い時間Vddになるので、トランジスタ108は半導体デバイスの始動後にメモリ・ビットをリセットする。次に、書き込み動作を、トランジスタ107のゲート電位150が０ボルトになるとき、トランジスタ107を介して開始できる。
【００４４】
ノード150は、信号62（プログラム入力）のVddによってトランジスタ104を介して、または、トランジスタ106が信号60（オート・リフレッシュ）のVddによって同時に導通しているとき信号64（Qin）のVddによってトランジスタ105を介して、０ボルトに設定できる。
【００４５】
信号62が０ボルトであると同時に信号60が０ボルトであるとき、トランジスタ101、102はノード150を「非書き込み」を意味するVddに設定する。信号60がVddである場合には、信号64が０ボルトであるとき、Vddはトランジスタ103を経てノード150に印加される。
【００４６】
図３は、キャパシタの充電状態を読み出すための回路ブロック200の回路図を示す。読み出された結果は出力端65に存在する。出力端65がVddのとき、ビットは書き込まれていた。そのとき、ノード250は０ボルトである。トランジスタ201、205、204および208は、読み出された結果を蓄積するラッチを形成する。トランジスタ202、203の伝送ゲートが導通している場合（信号61がVddであり、その反転信号252が０ボルトであるとき）のみ、すなわち初期化処理の間だけ、ラッチはセットあるいはリセットできる。この場合、トランジスタ207、206がラッチの右側分岐を遮断するので、ラッチがセットされるとき、クロスカレントは流れない。信号66（In）がVddの場合、トランジスタ210の閾値電圧降下のために、ノード251はトランジスタ209および伝送ゲートを経て約０．５ボルトになる。信号66がVddよりかなり低い場合、トランジスタ201は開き、ノード251の電位を上昇させようとする。一旦伝送ゲートがスイッチオフされると、信号66が低いほど、速くノード251の電位はVddとなる。トランジスタ210は、スイッチング閾値を上昇させる働きをするのみであり必須ではない。
【００４７】
図１〜３に示される回路の動作モードを以下に説明する。信号62は、メモリ・ビットのプログラミングを可能にする。その結果、半導体デバイスの不正状態を検出する場合に、警報信号を固定することが可能である。電源電圧Vddが存在する限り、メモリ・ビット（充電されたキャパシタ50）はセットされたままである。本実施例では、キャパシタ50のリセットあるいは放電は提供されず、初期化（Vddの信号61）によってのみ生じさせることができる。
【００４８】
しかし、初期化の間、キャパシタ50のメモリ内容は、読み出されると同時にラッチされる。図１から解るように、この読み出された結果65は、同時に、書き込み回路100の入力64である。入力60がアクティブなとき、読み出された結果65が書き込み動作の入力64として使われる。その結果、上述した初期化の無限ループが発生する。重要な利点は、キャパシタ50が読み出されるのと同時にスマートカード・チップが初期化されるので、攻撃者が２つの初期化の間、スマートカード・チップへの攻撃を行うことができないという事実にある。
【００４９】
この構成は、電源Vddが一瞬スイッチオフされるとき有利である。この場合、キャパシタ50はその電荷を保持し、両側が単にVddからゼロに引かれるだけである。キャパシタ50の電荷の消失は、ダイオード120のリーク電流で生じることができるのみである。これらのリーク電流は、特にダイオード120が光照射から保護された小さい寸法のものであるとき、非常に低い。電源Vddが再びスイッチオンされるとき、アクティブなオート・リフレッシュ信号60によって、キャパシタ50の電荷を完全な値に戻すためには、キャパシタ50上の小さい残留電荷でも充分である。実際には、キャパシタのサイズおよび温度に応じて、数秒から数分の蓄積時間が測定された。
【００５０】
更なる実施形態では、要求に応じて、オート・リフレッシュ信号60を、多数の不正アクセスまたは特定の組合せの不正アクセスの後だけに起動することが可能である。その結果、個々の偶然の混乱によって生じる問題を防止できる。信号60が０ボルトの場合、信号62によるメモリ・ビットのVddへの明確な設定のみが可能であり、それ以外は、そのビットを消去するのに１回の初期化で十分である。
【００５１】
無論、メモリ・ビットを、トランジスタを介して消去可能とした実施形態もまた可能である。しかし、このトランジスタは、増加したリーク電流の結果として、キャパシタの蓄積時間を短くする。
【００５２】
図４は、本発明の方法のフローチャートを示す。ステップ301において、アクセスを検出後、ステップ302において、このアクセスが攻撃であるか否か確認するために検査を実行する。この検査は、例えば、多数回の攻撃が所定期間内に起こったか否か調べることによって行うことができる。この手順を用いて、個々の偶然の混乱が不正アクセスとして検出されない状況を達成することが可能である。無論、いかなるアクセスも不正アクセスであるとみなすことも可能である。不正アクセスが存在しない場合、この方法は終了する。
【００５３】
攻撃の場合、以下のステップ303において、その攻撃に関する情報項目を格納する。次に、ステップ304において、半導体デバイスの初期化を実行する。この初期化の間に、半導体デバイスを元の状態にリセットする。ステップ303で格納された攻撃に関する情報項目は、このリセット動作から除外されるので、この情報項目は初期化の後でも利用できる。
【００５４】
この方法はステップ306に続き、ステップ306において、ステップ303で格納された攻撃に関する情報項目を読み出す。このような情報項目がある場合（ステップ307において検査される）、この方法は、次のステップ308において、この情報項目をリフレッシュするべきか否かを検査する。
【００５５】
次のステップで、方法は、ステップ304に戻り、半導体デバイスの更なる初期化を実行する。その結果、初期化の無限ループが発生し、初期化フェーズは連続した初期化によって大きく延長され、攻撃は２つの初期化フェーズの間でのみ可能であるから、攻撃者がスマートカード・チップから情報を得ることは非常に困難になる。
【００５６】
図１から図３に示す回路設計は、キャパシタ50がダイオード120のリーク電流を介してゆっくり放電されるだけであるから、格納された情報項目を電源電圧の除去後の一定期間もとのままにする。電源電圧が一定期間内に半導体デバイスに再び印加される場合、キャパシタ50の残留電荷は、ステップ309において前記電荷をリフレッシュするのに十分であり、再びフル充電時間を達成できる。このように、スマートカード・チップへの攻撃は、スマートカード・チップを電源電圧から短時間取り除いた後でも不可能である。
【００５７】
さらなる形態では、特に、格納された情報項目のリフレッシュを行う必要がないとき、この方法はキャパシタを放電することによって、ステップ308からステップ311に続くことができる。この方法は初期化ステップ304に続く。従って、この実施形態の場合、半導体デバイスへの攻撃の後、半導体デバイスから電源電圧を切断する必要なく、キャパシタ50が放電された後、半導体デバイスは再び利用できる。
【００５８】
本発明の１つの重要な利点は、永久の機能的な破壊のリスクなしに、スマートカードの安全性への攻撃がはるかに困難になるということである。さらに、このような回路をスマートカード・チップの通常のチップ論理回路内に隠匿することが可能である。スマートカード・チップの一般的な論理部分内に位置するセキュリティ回路は、アナログブロック内に別個に位置するアナログ回路より、発見および操作が非常に困難である。他の重要な利点は、このような回路のために必要なスペースが非常に少なく、従ってコストも非常に低いということである。
【図面の簡単な説明】
【００５９】
【図１】本発明による半導体デバイスのブロック回路図である。
【図２】情報項目を書き込むための回路図である。
【図３】情報項目を読み出すための回路図である。
【図４】本発明の方法のフローチャートである。
【符号の説明】
【００６０】
50        キャパシタ
60        オート・リフレッシュ信号
61        パワー・オン・リセット信号
62        プログラム信号またはプログラム入力端子
64        ライト回路の入力信号または入力端子
65        リード回路の出力信号または出力端子
66        リード回路の入力信号または入力端子
67        キャパシタの接続ノード
100      キャパシタ（ライト回路）に書くための回路ブロック
101-112  ライト回路のトランジスタ
150      トランジスタ107のゲート電位
151      トランジスタ108、109、110および112に関する電位ノード
152      ダイオード120に関する電位ノード
200      キャパシタ（リード回路）の充電状態を読み出すための回路ブロック
201-210  リード回路のトランジスタ
250      トランジスタ205に関する電位ノード
251      電位ノード
252      パワー・オン・リセット信号の反転信号
301-311  本発明の方法のステップ
【図１】
2009512952.tif 000003
【図２】
2009512952.tif 000004
【図３】
2009512952.tif 000005
【図４】
2009512952.tif 000006
【国際調査報告】
2009512952.tif 000007
2009512952.tif 000008
2009512952.tif 000009