(57)【要約】【課題】不揮発性メモリのプログラム動作を検証する装置及び方法、並びにその装置を含むメモリカードを提供する。【解決手段】集積回路カードのプログラミングを検証する方法はプログラムデータを不揮発性メモリのページバッファに伝送する段階と、プログラムデータをバッファメモリにコピーし、バッファメモリのデータに対する第１チェックサム値を計算する段階と、ページバッファのデータをバッファメモリにコピーし、バッファメモリのデータに対する第２チェックサム値を計算する段階と、第１チェックサム値と前記第２チェックサム値とを比較する段階と、そして比較結果に応じて外部攻撃によってページバッファのプログラムデータが不正操作されたか否かを判別する段階とを含む。【選択図】図４
2007183937.tif 000002
【特許請求の範囲】
【請求項１】
集積回路カードのプログラミングを検証する方法において、
プログラムデータを不揮発性メモリのページバッファに伝送する段階と、
前記プログラムデータをバッファメモリにコピーし、前記バッファメモリのデータに対する第１チェックサム値を計算する段階と、
前記ページバッファのデータを前記バッファメモリにコピーし、前記バッファメモリのデータに対する第２チェックサム値を計算する段階と、
前記第１チェックサム値と前記第２チェックサム値とを比較する段階と、
比較結果に応じて外部攻撃によって前記ページバッファのプログラムデータが不正操作されたか否かを判別する段階とを含むことを特徴とする方法。
【請求項２】
前記不揮発性メモリのページバッファへのデータ伝送が完了した後、前記バッファメモリにコピーされた前記プログラムデータは前記集積回路カードのＲＡＭから提供されることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１チェックサム値と前記第２チェックサム値とが一致しない時、プログラム手続きを終了させる段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１チェックサム値と前記第２チェックサム値とが一致しない時、インタラプトを発生する段階をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記第１チェックサム値と前記第２チェックサム値とが一致しない時、外部攻撃検出情報を発生する段階をさらに含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記第１チェックサム値と前記第２チェックサム値とが一致する時、
前記プログラムデータが貯蔵される前記不揮発性メモリの選択されたページから前記バッファメモリにページデータをコピーする段階と、
前記バッファメモリのプログラムデータを前記選択されたページにプログラムする段階とをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記バッファメモリのプログラムデータが前記選択されたページにプログラムされる間、前記集積回路カードのＲＡＭに貯蔵されたプログラムデータで前記バッファメモリをアップデートする段階と、
前記バッファメモリのデータに対する第３チェックサム値を計算する段階とをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記プログラムデータに対するプログラム動作が完了した後、
ＣＲＣ演算ロジックを通じて直接前記選択されたページのデータに対する第４チェックサム値を計算する段階と、
前記第３チェックサムと前記第４チェックサム値とが一致するか否かによってプログラム動作のパス／フェイルを判別する段階をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記第３チェックサム値と前記第４チェックサム値とが一致する時、プログラム手続きを終了する段階をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記第３チェックサム値と前記第４チェックサム値とが一致しない時、再プログラム動作を実行する段階をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記再プログラム動作の時、前記第３チェックサム値に対する演算は実行されないことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第３チェックサム値と前記第４チェックサム値とが一致しない時、プログラムエラーの発生を知らせるフラッグビットを設定し、前記プログラム動作を終了させる段階をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１３】
ＲＡＭと、
不揮発性メモリと、
前記ＲＡＭと前記不揮発性メモリとを制御する制御ユニットとを含み、
プログラム動作の時、前記制御ユニットは前記ＲＡＭに貯蔵されたプログラムデータを前記不揮発性メモリのページバッファに伝送した後、外部攻撃によって前記ページバッファのプログラムデータが不正操作されたか否かを判別し、判別結果によって前記ページバッファのプログラムデータを前記不揮発性メモリの選択されたページに貯蔵されるようにすることを特徴とする集積回路カード。
【請求項１４】
前記制御ユニットは、
バッファメモリと、
ＣＲＣ演算ロジックと、
前記ページバッファに前記プログラムデータが伝送された後、前記ＲＡＭのプログラムデータを前記バッファメモリにコピーするランダム遅延制御ロジックと、
前記プログラムデータが前記バッファメモリにコピーされた後、前記バッファメモリのプログラムデータに対する第１チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御するデータコピー及び制御ロジックを含むことを特徴とする請求項１３に記載の集積回路カード。
【請求項１５】
前記第１チェックサム値が計算された後、前記データコピー及び制御ロジックは前記ページバッファのプログラムデータが前記バッファメモリに伝送されるように前記不揮発性メモリを制御することを特徴とする請求項１４に記載の集積回路カード。
【請求項１６】
前記ページバッファのプログラムデータが前記バッファメモリに伝送された後、前記データコピー及び制御ロジックは前記バッファメモリのプログラムデータに対する第２チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御することを特徴とする請求項１５に記載の集積回路カード。
【請求項１７】
前記制御ユニットは、
前記第１チェックサム値と前記第２チェックサム値とを貯蔵するＣＲＣレジスタと、
前記データコピー及び制御ロジックによって制御され、前記第１チェックサム値と前記第２チェックサム値とが一致するか否かを判別する比較器と、
前記比較結果が前記第１チェックサム値と前記第２チェックサム値との不一致を示す時、プログラム終了信号を発生する訂正／検出制御ロジックとをさらに含むことを特徴とする請求項１６に記載の集積回路カード。
【請求項１８】
前記プログラム終了信号が発生する時、前記訂正／検出制御ロジックは外部攻撃によって前記ページバッファのプログラムデータが不正操作されたことを知らせる外部攻撃検出フラッグ信号を発生することを特徴とする請求項１７に記載の集積回路カード。
【請求項１９】
前記プログラム終了信号が発生する時、前記訂正／検出制御ロジックはインタラプト信号を発生することを特徴とする請求項１７に記載の集積回路カード。
【請求項２０】
前記比較結果が前記第１チェックサム値と前記第２チェックサム値との一致を示す時、
前記データコピー及び制御ロジックは前記不揮発性メモリの選択されたページのデータが前記バッファメモリにコピーされるように前記不揮発性メモリを制御することを特徴とする請求項１７に記載の集積回路カード。
【請求項２１】
前記不揮発性メモリの選択されたページのデータが前記バッファメモリにコピーされた後、前記データコピー及び制御ロジックは前記ページバッファのプログラムデータが前記選択されたページにプログラムされるように前記不揮発性メモリを制御することを特徴とする請求項２０に記載の集積回路カード。
【請求項２２】
プログラム動作が実行される間、
前記データコピー及び制御ロジックは前記ＲＡＭのプログラムデータで前記バッファメモリをアップデートさせることを特徴とする請求項２１に記載の集積回路カード。
【請求項２３】
前記データコピー及び制御ロジックは前記バッファメモリのデータに対する第３チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御し、前記第３チェックサム値は前記レジスタに貯蔵されることを特徴とする請求項２２に記載の集積回路カード。
【請求項２４】
前記プログラム動作が完了する時、前記データコピー及び制御ロジックは前記選択されたページのデータが前記バッファメモリにコピーされるように前記不揮発性メモリを制御し、その次に前記バッファメモリのデータに対する第４チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御し、前記第４チェックサム値は前記レジスタに貯蔵されることを特徴とする請求項２３に記載の集積回路カード。
【請求項２５】
前記データコピー及び制御ロジックは前記第３チェックサム値と前記第４チェックサム値とが一致するか否かを判別するように前記比較器を制御することを特徴とする請求項２４に記載の集積回路カード。
【請求項２６】
前記比較器の比較結果が前記第３チェックサム値と前記第４チェックサム値との一致を示す時、前記訂正／検出制御ロジックはプログラム終了信号を発生することを特徴とする請求項２５に記載の集積回路カード。
【請求項２７】
前記比較器の比較結果が前記第３チェックサム値と前記第４チェックサム値との一致を示す時、前記訂正／検出制御ロジックは前記ページバッファのプログラムデータが再プログラムされるように再プログラム信号を発生することを特徴とする請求項２５に記載の集積回路カード。
【請求項２８】
前記再プログラム動作の時、前記第３チェックサム値に対する演算は実行されないことを特徴とする請求項２７に記載の集積回路カード。
【請求項２９】
前記第３チェックサム値と前記第４チェックサム値とが一致しない時、前記訂正／検出制御ロジックはプログラムエラーの発生を知らせるフラッグ信号と前記プログラム動作の終了を知らせるプログラム終了信号とを発生することを特徴とする請求項２５に記載の集積回路カード。
【請求項３０】
前記集積回路カードはスマートカードを含むことを特徴とする請求項１３に記載の集積回路カード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子装置に係り、より具体的には不揮発性メモリのプログラム動作を検証することができる集積回路装置に関する。
【背景技術】
【０００２】
スマートカードはマイクロプロセッサ及びメモリとともにまたはロジックなしにメモリチップとともにエンベデッドされた（埋め込まれた）カードである。マイクロプロセッサカードはカード上で情報を追加、削除、及び処理することができる。一方、メモリチップ（例えば、前払い電話カード）はすでに定められた動作を実行することができる。マグネチックストリップカードとは異なり、スマートカードはカード上で必要なすべての機能及び情報を実行することができる。そのため、スマートカードは処理の時に、遠く離れたデータベースをアクセスすることができる。最近、スマートカードは大きく３種類、すなわち、集積回路マイクロプロセッサカード（ｉｎｔｅｇｒａｔｅｄ ｃｉｒｃｕｉｔ（ＩＣ）  ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ ｃａｒｄ）、集積回路メモリカード（ｉｎｔｅｇｒａｔｅｄ ｃｉｒｃｕｉｔ（ＩＣ） memory ｃａｒｄ）、及び光メモリカード（ｏｐｔｉｃａｌ ｍｅｍｏｒｙ ｃａｒｄ）に分類することができ、新たな市場及び応用によって急速に発展している。
【０００３】
スマートカードに貯蔵されるデータ（例えば、金融情報）は高い保安性を要する。そのため、スマートカードの保安データストレージにデータをプログラムする場合、データを正しく書き込んだか否かを検証する必要がある。ここで、プログラム動作は書き込む動作、消去及び書き込む動作、そして消去動作を含む。
【０００４】
一般的なスマートカードの場合、プログラムされたデータの検証は次のような過程を通じて実行される。まず、データが保安データストレージの目標領域に貯蔵される。その次に、保安データストレージの目標領域からデータを読み出した後、ソースデータと読み出されたデータとが比較される。比較結果によって、データが正しく書き込まれたか否かが検証される。比較過程において、保安データストレージの目標領域から読み出されたデータは一定単位（例えば、ワード単位）でソースデータと比較される。このような比較過程は長い実行時間を要し、これはスマートカードの動作性能を向上させるに制限要因として作用している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は動作性能を向上させることができる集積回路装置を提供することにある。
【０００６】
本発明の他の目的は保安データのプログラム動作を検証することができる装置及びそれを含んだスマートカードを提供することにある。
【課題を解決するための手段】
【０００７】
前記の目的を達成するための本発明の特徴によれば、集積回路カードのプログラミングを検証する方法はプログラムデータを不揮発性メモリのページバッファに伝送する段階と、前記プログラムデータをバッファメモリにコピーし、前記バッファメモリのデータに対する第１チェックサム値を計算する段階と、前記ページバッファのデータを前記バッファメモリにコピーし、前記バッファメモリのデータに対する第２チェックサム値を計算する段階と、前記第１チェックサム値と前記第２チェックサム値とを比較する段階と、そして比較結果に応じて外部攻撃によって前記ページバッファのプログラムデータが不正操作されたか否かを判別する段階とを含む。
【０００８】
この実施形態において、前記不揮発性メモリのページバッファへのデータ伝送が完了した後、前記バッファメモリにコピーされた前記プログラムデータは前記集積回路カードのＲＡＭから提供される。
【０００９】
この実施形態において、前記第１チェックサム値と前記第２チェックサム値とが一致しない時、プログラム手続きを終了させる段階をさらに含む。
【００１０】
この実施形態において、前記第１チェックサム値と前記第２チェックサム値とが一致しない時、インタラプトを発生する段階をさらに含む。
【００１１】
この実施形態において、前記第１チェックサム値と前記第２チェックサム値とが一致しない時、外部攻撃検出情報を発生する段階をさらに含む。
【００１２】
この実施形態において、前記第１チェックサム値と前記第２チェックサム値とが一致する時、前記プログラムデータが貯蔵される前記不揮発性メモリの選択されたページから前記バッファメモリにページデータをコピーする段階と、そして前記バッファメモリのプログラムデータを前記選択されたページにプログラムする段階をさらに含む。
【００１３】
この実施形態において、前記バッファメモリのプログラムデータが前記選択されたページにプログラムされる間、前記集積回路カードのＲＡＭに貯蔵されたプログラムデータで前記バッファメモリをアップデートする段階と、そして前記バッファメモリのデータに対する第３チェックサム値を計算する段階とをさらに含む。
【００１４】
この実施形態において、前記プログラムデータに対するプログラム動作が完了した後、ＣＲＣ演算ロジックを通じて直接前記選択されたページのデータに対する第４チェックサム値を計算する段階と、そして前記第３チェックサムと前記第４チェックサム値とが一致するか否かによってプログラム動作のパス／フェイルを判別する段階をさらに含む。
【００１５】
この実施形態において、前記第３チェックサム値と前記第４チェックサム値とが一致する時、プログラム手続きを終了する段階をさらに含む。
【００１６】
この実施形態において、前記第３チェックサム値と前記第４チェックサム値とが一致しない時、再プログラム動作を実行する段階をさらに含む。
【００１７】
この実施形態において、前記再プログラム動作の時、前記第３チェックサム値に対する演算は実行されない。
【００１８】
この実施形態において、前記第３チェックサム値と前記第４チェックサム値とが一致しない時、プログラムエラーの発生を知らせるフラッグビットを設定し、前記プログラム動作を終了させる段階をさらに含む。
【００１９】
本発明の他の特徴によれば、集積回路カードはＲＡＭと、不揮発性メモリと、そして前記ＲＡＭと前記不揮発性メモリとを制御する制御ユニットとを含み、プログラム動作の時、前記制御ユニットは前記ＲＡＭに貯蔵されたプログラムデータを前記不揮発性メモリのページバッファに伝送した後、外部攻撃によって前記ページバッファのプログラムデータが不正操作されたか否かを判別し、判別結果によって前記ページバッファのプログラムデータを前記不揮発性メモリの選択されたページに貯蔵されるようにする。
【００２０】
この実施形態において、前記制御ユニットはバッファメモリと、ＣＲＣ演算ロジックと、前記ページバッファに前記プログラムデータが伝送された後、前記ＲＡＭのプログラムデータを前記バッファメモリにコピーするランダム遅延制御ロジックと、そして前記プログラムデータが前記バッファメモリにコピーされた後、前記バッファメモリのプログラムデータに対する第１チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御するデータコピー及び制御ロジックを含む。
【００２１】
この実施形態において、前記第１チェックサム値が計算された後、前記データコピー及び制御ロジックは前記ページバッファのプログラムデータが前記バッファメモリに伝送されるように前記不揮発性メモリを制御する。
【００２２】
この実施形態において、前記ページバッファのプログラムデータが前記バッファメモリに伝送された後、前記データコピー及び制御ロジックは前記バッファメモリのプログラムデータに対する第２チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御する。
【００２３】
この実施形態において、前記制御ユニットは前記第１チェックサム値と前記第２チェックサム値とを貯蔵するＣＲＣレジスタと、前記データコピー及び制御ロジックによって制御され、前記第１チェックサム値と前記第２チェックサム値とが一致するか否かを判別する比較器と、そして前記比較結果が前記第１チェックサム値と前記第２チェックサム値との不一致を示す時、プログラム終了信号を発生する訂正／検出制御ロジックをさらに含む。
【００２４】
この実施形態において、前記プログラム終了信号が発生する時、前記訂正／検出制御ロジックは外部攻撃によって前記ページバッファのプログラムデータが不正操作されたことを知らせる外部攻撃検出フラッグ信号を発生する。
【００２５】
この実施形態において、前記プログラム終了信号が発生する時、前記訂正／検出制御ロジックはインタラプト信号を発生する。
【００２６】
この実施形態において、前記比較結果が前記第１チェックサム値と前記第２チェックサム値との一致を示す時、前記データコピー及び制御ロジックは前記不揮発性メモリの選択されたページのデータが前記バッファメモリにコピーされるように前記不揮発性メモリを制御する。
【００２７】
この実施形態において、前記不揮発性メモリの選択されたページのデータが前記バッファメモリにコピーされた後、前記データコピー及び制御ロジックは前記ページバッファのプログラムデータが前記選択されたページにプログラムされるように前記不揮発性メモリを制御する。
【００２８】
この実施形態において、プログラム動作が実行される間、前記データコピー及び制御ロジックは前記ＲＡＭのプログラムデータに前記バッファメモリをアップデートさせる。
【００２９】
この実施形態において、前記データコピー及び制御ロジックは前記バッファメモリのデータに対する第３チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御し、前記第３チェックサム値は前記レジスタに貯蔵される。
【００３０】
この実施形態において、前記プログラム動作が完了する時、前記データコピー及び制御ロジックは前記選択されたページのデータが前記バッファメモリにコピーされるように前記不揮発性メモリを制御し、その次に前記バッファメモリのデータに対する第４チェックサム値を計算するように前記ＣＲＣ演算ロジックを制御し、前記第４チェックサム値は前記レジスタに貯蔵される。
【００３１】
この実施形態において、前記データコピー及び制御ロジックは前記第３チェックサム値と前記第４チェックサム値とが一致するか否かを判別するように前記比較器を制御する。
【００３２】
この実施形態において、前記比較器の比較結果が前記第３チェックサム値と前記第４チェックサム値との一致を示す時、前記訂正／検出制御ロジックはプログラム終了信号を発生する。
【００３３】
この実施形態において、前記比較器の比較結果が前記第３チェックサム値と前記第４チェックサム値との一致を示す時、前記訂正／検出制御ロジックは前記ページバッファのプログラムデータが再プログラムされるように再プログラム信号を発生する。
【００３４】
この実施形態において、前記再プログラム動作の時、前記第３チェックサム値に対する演算は実行されない。
【００３５】
この実施形態において、前記第３チェックサム値と前記第４チェックサム値とが一致しない時、前記訂正／検出制御ロジックはプログラムエラーの発生を知らせるフラッグ信号と前記プログラム動作の終了を知らせるプログラム終了信号を発生する。
【００３６】
この実施形態において、前記集積回路カードはスマートカードを含む。
【発明の効果】
【００３７】
前記のように、保安データストレージにデータがプログラムされる以前に貯蔵されるデータが有効なデータであるか否かを検証し、保安データストレージにデータが貯蔵された後、貯蔵されたデータが有効なデータであるか否かを検証するによって外部攻撃によって不正操作されたデータがプログラムされることを防止し、ソフトウエアの関与なしに自動的に貯蔵されたデータが有効なデータであるか否かを検証することができる。従って、スマートカードの動作性能を向上させることができる。
【発明を実施するための最良の形態】
【００３８】
前述の一般的な説明及び次の詳細な説明はすべて例示的なものと理解すべきであり、請求された発明の付加的な説明が提供されるものと理解すべきである。
【００３９】
参照符号が本発明の望ましい実施形態に付されており、その例が参照図面に表示されている。可能な場合には、同一の参照番号が同一または類似の部分を参照するために説明及び図面に使用される。
【００４０】
以下において、スマートカードが本発明の特徴及び機能を説明するための例として使用される。しかし、この技術分野に精通した者はここに記載した内容によって本発明の他の利点及び性能を容易に理解することができるであろう。本発明は他の実施形態を通じてまた、実現されるか適用することができるであろう。なお、詳細な説明は本発明の範囲、技術的思想及び他の目的からあまり逸脱せず、観点及び応用によって修正または変更することができる。
【００４１】
図１は本発明による集積回路装置を概略的に示すブロック図である。本発明による集積回路装置１０００は、例えば、スマートカードである。しかし、本発明による集積回路装置１０００がこれに限定されないことはこの分野の通常的な知識を習得した者には自明である。
【００４２】
図１を参照すれば、集積回路装置、即ち、スマートカード１０００は制御ユニット１００、インターフェースブロック２００、ＲＡＭ３００、ＲＯＭ４００、及び保安データストレージ５００を含む。保安データストレージ５００はＥＥＰＲＯＭ、フラッシュメモリなどのような不揮発性メモリを含む。
【００４３】
制御ユニット１００はスマートカード１０００の全般的な動作を制御するように構成される。特に、制御ユニット１００はソフトウエアの介入なしに（またはソフトウエアの最小介入によって）外部攻撃に対するプログラムデータの不正操作を検出し、プログラム検証動作を実行するように構成される。これについては以後、詳細に説明する。インターフェースブロック２００は外部装置（例えば、カードリーダー器）とのインターフェースを提供する。インターフェースブロック２００は多様なインターフェース機能を提供する。例えば、インターフェースブロック２００は接触方式として外部装置と通信するか、非接触方式として外部装置と通信するか、接触及び非接触方式として外部装置と通信する。接触及び非接触方式によってインターフェース動作を実行するインターフェースブロックはこの分野の通常的な知識を習得した者によく知られているため、それに対する説明は省略する。ＲＡＭ３００はワークメモリ（ｗｏｒｋ ｍｅｍｏｒｙ）として動作し、保安データストレージ５００に貯蔵されるまたは保安データストレージ５００から読み出したデータを一時貯蔵するのに使用される。また、ＲＡＭ３００は制御ユニット１００によって処理されるデータを一時貯蔵するに使用される。ＲＯＭ４００は制御ユニット１００によって使用されるそしてスマートカード４００が動作するのに必要な各種プログラムを貯蔵する。保安データストレージ５００は制御ユニット１００の制御によって保安が必要なデータ（例えば、金融情報）を貯蔵するのに使用される。
【００４４】
本発明によるスマートカード１０００は保安データストレージ５００にデータがプログラムされる以前に貯蔵されるデータが有効なデータであるか否かを検証するように、そして保安データストレージ５００にデータが貯蔵された後、貯蔵されたデータが有効なデータであるか否かを検証するように構成される。これについては以後、詳細に説明する。このような検証方法によれば、外部攻撃によって不正操作されたデータがプログラムされることを防止することができる。また、ソフトウエアの関与なしに自動的に貯蔵されたデータが有効なデータであるか否かを検証することができる。これは動作性能が向上することを意味する。
【００４５】
図２は本発明の例示的な実施形態による図１に示した制御ユニットを示すブロック図である。
【００４６】
図２を参照すれば、制御ユニット１００はランダム遅延制御ロジック１１０、バッファメモリ１２０、データコピー及び制御ロジック１３０、ＣＲＣ演算ロジック１４０、ＣＲＣレジスタ１５０、比較器１６０、レジスタ１７１、１７２、訂正／検出制御ロジック１８０、及び信号発生器１９０を含む。
【００４７】
ランダム遅延制御ロジック１１０はプログラムデータがＲＡＭ３００から保安データストレージ５００のページバッファ５０４に伝達された後、ＲＡＭ３００に貯蔵されたプログラムデータをバッファメモリ１２０にコピーするように構成される。ランダム遅延制御ロジック１１０はＲＡＭ３００に貯蔵されたプログラムデータが全部バッファメモリ１２０にコピーされる時、フラッグ信号ＦＵＤＣ＿ＥＮＤを発生する。フラッグ信号ＦＵＤＣ＿ＥＮＤの活性化はプログラムデータがＲＡＭ３００からバッファメモリ１２０に全部コピーされたことを示す。
【００４８】
ＣＲＣ演算ロジック１４０はデータコピー及び制御ロジック１３０からの制御信号Ｆ＿ＣＲＣ＿ＳＴに応答してバッファメモリ１２０に貯蔵されたデータに対するＣＲＣ演算動作を実行するように構成される。また、ＣＲＣ演算ロジック１４０はデータコピー及び制御ロジック１３０からの制御信号Ｆ＿ＣＲＣ＿ＳＴに応答して保安データストレージ５００のアレイ５０１から直接データを読み出し、読み出されたデータに対するＣＲＣ演算動作を実行するように構成される。ＣＲＣ演算ロジック１４０によって演算された結果値（すなわち、各結果値は２バイトチェックサム値に対応する）はＣＲＣレジスタ１５０に貯蔵される。ＣＲＣレジスタ１５０には２回のＣＲＣ演算過程を通じて獲得した２個の２バイトチェックサム値が貯蔵される。ＣＲＣ演算ロジック１４０はＣＲＣ演算動作が完了する度にフラッグ信号ＦＣＲＣ＿ＥＮＤを発生する。
【００４９】
比較器１６０はデータコピー及び制御ロジック１３０からの制御信号ＦＣＯＭＰ１に応答して保安データストレージ５００のページバッファ５０４に貯蔵されたデータとバッファメモリ１２０に貯蔵されたデータとを比較するように構成される。比較器１６０は比較結果としてフラッグ信号ＦＭＴＣ、ＦＮＭＴＣのうちの一つを活性化させる。フラッグ信号ＦＭＴＣの活性化はページバッファ５０４に貯蔵されたデータがバッファメモリ１２０に貯蔵されたデータと一致することを示し、フラッグ信号ＦＮＭＴＣの活性化はページバッファ５０４に貯蔵されたデータがバッファメモリ１２０に貯蔵されたデータと一致しないことを示す。以後、説明するように、フラッグ信号ＦＮＭＴＣが活性化される場合、ページバッファ５０４にロードされたデータは外部攻撃によって不正操作されたデータであり、プログラム動作は中止される。比較器１６０はデータコピー及び制御ロジック１３０からの制御信号ＦＣＯＭＰ２に応答してＣＲＣレジスタ１５０に貯蔵された結果値ＣＲＣ１、ＣＲＣ２を比較し、比較結果としてフラッグ信号ＦＣＲＣ＿ＯＫ、ＦＣＲＣ＿ＮＯＫを発生する。フラッグ信号ＦＣＲＣ＿ＮＯＫはＣＲＣレジスタ１５０に貯蔵された結果値ＣＲＣ１、ＣＲＣ２が一致しない時、活性化され、フラッグ信号ＦＣＲＣ＿ＯＫはＣＲＣレジスタ１５０に貯蔵された結果値ＣＲＣ１、ＣＲＣ２が一致する時、活性化される。
【００５０】
レジスタ１７１は保安データストレージ５００の制御情報を貯蔵するためのもので、高電圧活性化情報、セルフタイマ活性化情報、命令情報などを貯蔵する。レジスタ１７２は保安データストレージ５００の書き込み動作に対する検証情報を貯蔵するためのもので、図３に示したように、８ビットレジスタである。［０］ビットは保安データストレージ５００のプログラミング検証オン／オフ制御ビットとして、ロジック‘０’の値は検証機能がオフされることを示し、ロジック‘１’の値は検証機能がオンされることを示す。初期値はロジック‘０’の値に設定される。［１］ビットはエラー訂正／検出選択情報として、ロジック‘０’の値はエラー検出機能が選択されたことを示し、ロジック‘１’の値はエラー訂正機能が選択されたことを示す。［２］ビットは外部攻撃検出フラッグビットである。［２］ビットがロジック‘０’の値に設定されることはプログラムデータが外部攻撃によって不正調整されなかったことを示し、［２］ビットがロジック‘１’の値に設定されることはプログラムデータが外部攻撃によって不正調整されたことを示す。［５］ビットはインタラプト発生制御ビットとして、ロジック‘０’の値はインタラプト発生機能がオフされることを示し、ロジック‘１’の値はインタラプト発生機能がオンされることを示す。［６］ビットはエラー検出フラッグビットとして、制御ユニット１００のマイクロプロセッサまたはＣＰＵ（図示しない）によって設定される。ロジック‘０’の値はエラーが検出されなかったことを示し、ロジック‘１’の値はエラーが検出されたことを示す。［５］ビットは［１］ビットがロジック‘０’の値に設定される時のみ有効な情報である。すなわち、［１］ビットがロジック‘０’の値に設定された場合、［５］ビットがロジック‘１’に設定される時、インタラプトが発生する。［１］ビットがロジック‘１’の値に設定された場合、エラーが検出されてもインタラプトは発生しない。［６］ビットはエラー検出機能が選択された場合（［１］ビットがロジック‘０’の値に設定された場合）エラーが発生する時設定され、次に活性化される高電圧の活性化信号によってクリアされる。残りの［３］‐［４］と［７］ビットは予備ビット（ｒｅｓｅｒｖｅｄ ｂｉｔｓ）である。
【００５１】
続いて、訂正／検出制御ロジック１８０はレジスタ１７２に貯蔵された情報及びフラッグ信号ＦＮＭＴＣ、ＦＣＲＣ＿ＮＯＫ、ＦＣＲＣ＿ＯＫに応答してプログラム終了信号ＰＧＭ＿ＥＮＤ、外部攻撃検出信号ＡＴＴ＿ＤＥＴ、再プログラム信号ＦＲＰＧＭ、及びインタラプト信号ＦＩＱを発生する。例えば、フラッグ信号ＦＮＭＴＣが活性化される場合、訂正／検出制御ロジック１８０はプログラム終了信号ＰＧＭ＿ＥＮＤと外部攻撃検出信号ＡＴＴ＿ＤＥＴとを活性化させる。また、訂正／検出制御ロジック１８０はレジスタ１７２の［５］ビットが設定されたか否かによってインタラプト信号ＦＩＱを発生する。訂正／検出制御ロジック１８０はフラッグ信号ＦＣＲＣ＿ＯＫが活性化される時、プログラム終了信号ＰＧＭ＿ＥＮＤを活性化させる。これはプログラム手続きが終了するようにする。フラッグ信号ＦＣＲＣ＿ＮＯＫが活性化される場合、訂正／検出制御ロジック１８０はレジスタ１７２の［１］ビットが設定されたか否かによって再プログラム信号ＦＲＰＧＭまたはプログラム終了信号ＰＧＭ＿ＥＮＤ及びインタラプト信号ＦＩＱを活性化させる。
【００５２】
信号発生器１９０はレジスタ１７１に貯蔵された命令情報とデータコピー及び制御ロジック１３０からの制御信号ＦＲＢＣ＿ＥＮＤとに応答してフラッグ信号ＦＢＬＤＣ、ＦＢＣのうちの一つを活性化させる。例えば、消去及び書き込む動作または書き込む動作を知らせる命令がレジスタ１７１に設定された場合、信号発生器１９０は制御信号ＦＲＢＣ＿ＥＮＤの活性化に応答してフラッグ信号ＦＢＬＤＣを発生する。消去動作を知らせる命令がレジスタ１７１に設定された場合、信号発生器１９０は制御信号ＦＲＢＣ＿ＥＮＤの活性化に応答してフラッグ信号ＦＢＣを発生する。
【００５３】
図４は本発明によるスマートカードの検証動作を説明するためのフローチャートであり、図５Ａ及び図５Ｂはスマートカードの検証動作による制御流れを示す図面である。以下、本発明によるスマートカードの検証動作を参照図面に基づいて詳細に説明する。
【００５４】
外部装置がプログラム動作を要請することによって、スマートカード１０００のＲＡＭ３００には外部装置から提供されるデータが貯蔵され、レジスタ１７２は図３に示したような設定方法によって制御ユニット１００のマイクロプロセッサまたはＣＰＵによって求められる情報に設定される。その次に、ＲＡＭ３００に貯蔵されたデータは図５Ａの（Ｉ）経路を通じて保安データストレージ５００のページバッファ５０４に伝送される（Ｓ１００）。ページバッファ５０４へのデータの伝送が完了すれば、ページバッファ５０４にロードされたデータが外部攻撃によって不正操作されたか否かが検証される。より具体的に説明すれば次の通りである。
【００５５】
いったん、ページバッファ５０４へのデータの伝送が完了すれば、ランダム遅延制御ロジック１１０はＲＡＭ３００からデータをバッファメモリ１２０に伝送する（図５Ａの（II）参照）。すべてのデータがＲＡＭ３００からバッファメモリ１２０に伝送されれば、ランダム遅延制御ロジック１１０はフラッグ信号ＦＵＤＣ＿ＥＮＤを発生する。データコピー及び制御ロジック１３０はフラッグ信号ＦＵＤＣ＿ＥＮＤに応答して制御信号ＦＣＯＭＰ１を発生する。比較器１６０には、バッファメモリ１２０のデータ及びＲＡＭ３００のデータがそれぞれ入力され、入力されたデータが比較される（Ｓ１１０、図５Ａの（III）参照。比較器１６０は比較結果として、フラッグ信号ＦＭＴＣ、ＦＮＭＴＣのうちの一つを活性化させる（図５Ａの（IV）参照）。
【００５６】
フラッグ信号ＦＮＭＴＣが活性化される場合、ページバッファ５０４に貯蔵されたデータが外部攻撃によって不正操作されたか否かが訂正／検出制御ロジック１８０によって判別される（Ｓ１２０）。訂正／検出制御ロジック１８０はフラッグ信号ＦＮＭＴＣの活性化に応答してプログラム終了信号ＰＧＭ＿ＥＮＤ及び外部攻撃検出信号ＡＴＴ＿ＤＥＴを活性化させる。これはページバッファ５０４に貯蔵されたデータが外部攻撃によって不正操作されたことを示し、次のような過程を通じてプログラム手続きが終了する（Ｓ１３０）。プログラム終了信号ＰＧＭ＿ＥＮＤが活性化されることによって、ページバッファ５０４が初期化され、レジスタ１７１の高電圧活性化ビットが初期化され、外部攻撃が検出されたことを知らせるレジスタ１７１の外部攻撃検出フラッグビットが設定される。さらに、訂正／検出制御ロジック１８０はレジスタ１７２の［５］ビットがロジック‘１’の値に設定されたか否かによってインタラプト信号ＦＩＱを活性化させる。レジスタ１７２の［５］ビットがインタラプト発生機能がオフされたロジック‘０’の値に設定された場合、インタラプト信号ＦＩＱは活性化されない。レジスタ１７２の［５］ビットがインタラプト発生機能がオンされたロジック‘１’の値に設定された場合、インタラプト信号ＦＩＱは活性化される。
【００５７】
ページバッファ５０４にロードされたデータが有効なデータであることを示すフラッグ信号ＦＭＴＣが活性化される場合、プログラム動作が実行されると同時に、選択されたデータコピー及び制御ロジック１３０の制御の下において選択されたページのデータに対するＣＲＣ演算が実行される（Ｓ１４０）。これは、以後説明するように、ページバッファ５０４にロードされたデータが正しくプログラムされたか否かを判別するためのものである。より具体的に説明すれば、次の通りである。
【００５８】
まず、フラッグ信号ＦＭＴＣが活性化される時、データコピー及び制御ロジック１３０はレジスタ１７２の［０］ビットがロジック‘１’の値に設定されたか否かによって選択されたページのデータをバッファメモリ１２０にコピーする（図５Ｂの（Ｖ）参照）。これは行アドレス情報ＡＤＤ（ＷＬ）を利用して選択されたページのデータを読み出し回路５０２を通じてバッファメモリ１２０に伝達することによって行われる。この時、バッファメモリ１２０に伝送されたデータはプログラムされる以前のページデータである。
【００５９】
いったん、バッファメモリ１２０へのデータの伝送が完了すれば、データコピー及び制御ロジック１３０は制御信号ＦＲＢＣ＿ＥＮＤを活性化させる。制御信号ＦＲＢＣ＿ＥＮＤの活性化によって高電圧発生及びセルフタイマブロック５０５は書き込み回路５０３に高電圧を供給する。これはページバッファ５０４にロードされたデータが選択されたページのセルにプログラムされるようにする（図５Ｂの（VI）参照）。高電圧発生及びセルフタイマブロック５０５のセルフタイマは高電圧が供給される時からプログラム時間をカウントする。これと同時に、制御信号ＦＲＢＣ＿ＥＮＤの活性化の時、信号発生器１９０は動作モードによってフラッグ信号ＦＢＬＤＣ、ＦＢＣのうちの一つを活性化させる。例えば、レジスタ１７１に貯蔵された命令が書き込み動作を示す時、信号発生器１９０は制御信号ＦＲＢＣ＿ＥＮＤの活性化に応答してフラッグ信号ＦＢＬＤＣを活性化させる。レジスタ１７１に貯蔵された命令が消去動作を示す時、信号発生器１９０はフラッグ信号ＦＢＣを活性化させる。データコピー及び制御ロジック１３０はフラッグ信号ＦＢＬＤＣの活性化に応答してバッファメモリ１２０をＲＡＭ３００に貯蔵されたデータ（即ち、プログラムデータ）でアップデートさせる。これはプログラムデータと係わる列アドレス情報ＡＤＤ（ＢＬ）によってバッファメモリ１２０の一定領域（即ち、プログラムデータが貯蔵される目標領域）にのみプログラムデータをコピーすることによって行われる（図５Ｂの（VI'）参照）。フラッグ信号ＦＢＣが活性化される時、アップデート動作が実行される場合、前記と同一な方式によってバッファメモリ１２０の一定領域は消去データとして“０ｘＦＦ”にアップデートされる。
【００６０】
いったん、アップデート動作が完了すれば、ＣＲＣ演算ロジック１４０はアップデート動作の完了を示すフラッグ信号ＦＲＢＵ＿ＥＮＤによって初期化される。データコピー及び制御ロジック１３０はフラッグ信号ＦＲＢＵ＿ＥＮＤに応答して制御信号Ｆ＿ＣＲＣ＿ＳＴを活性化させる。ＣＲＣ演算ロジック１４０は制御信号Ｆ＿ＣＲＣ＿ＳＴに応答してバッファメモリ１２０に貯蔵されたデータに対するＣＲＣ演算動作を実行する（図５Ｂの（VII）参照）。この時、ＣＲＣ演算ロジック１４０はバッファメモリ１２０に対するCRC演算の時、データオフセットを自動的に増加させながらＣＲＣ演算動作を実行する。ＣＲＣ演算動作が完了すれば、２バイトの演算結果はＣＲＣレジスタ１５０に貯蔵される（図５Ｂの（VIII）参照）。ＣＲＣ演算動作はプログラム動作が実行される間に実行される。
【００６１】
以後、プログラム動作が完了した後、選択されたページのデータに対するＣＲＣ演算動作が実行される（Ｓ１５０）。より具体的に説明すれば、次の通りである。
【００６２】
バッファメモリ１２０に貯蔵されたデータに対するＣＲＣ演算動作が完了した後、プログラム時間が完了したことを知らせるフラッグ信号ＦＳＴＥが高電圧発生及びセルフタイマブロック５０５からデータコピー及び制御ロジック１４０に出力される。データコピー及び制御ロジック１４０はフラッグ信号ＦＳＴＥに応答して制御信号Ｆ＿ＣＲＣ＿ＳＴを発生し、ＣＲＣ演算ロジック１４０は制御信号Ｆ＿ＣＲＣ＿ＳＴによって初期化される。初期化された後、ＣＲＣ演算ロジック１４０は行アドレス情報を利用して保安データストレージ５００の選択されたページからデータを直接取り出し、取り出したデータに対するＣＲＣ演算動作を実行する（図５Ｂの（IX）参照）。ＣＲＣ演算動作が完了すれば、２バイトの演算結果はＣＲＣレジスタ１５０に貯蔵される（図５Ｂの（Ｘ）参照）。
【００６３】
いったん、ＣＲＣ演算動作が完了すれば、ＣＲＣ演算ロジック１４０はフラッグ信号ＦＣＲＣ＿ＥＮＤを発生する。データコピー及び制御ロジック１３０はフラッグ信号ＦＣＲＣ＿ＥＮＤに応答して制御信号ＦＣＯＭＰ２を発生する。比較器１６０は制御信号ＦＣＯＭＰ２に応答してＣＲＣレジスタ１５０に貯蔵されたＣＲＣ値ＣＲＣ１、ＣＲＣ２が一致するか否かを判別する（Ｓ１６０）（図５Ｂの（Ｘ）参照）。ここで、ＣＲＣ値ＣＲＣ１はプログラム動作が実行される以前に選択されたページのデータをバッファメモリ１２０にコピーし、バッファメモリ１２０をＲＡＭ３００のプログラムデータでアップデートさせた後、実行されたＣＲＣ演算動作の結果値を示し、ＣＲＣ値ＣＲＣ２はプログラム動作が完了した後、選択されたページのデータに対するＣＲＣ演算動作の結果値を示す。ＣＲＣレジスタ１５０に貯蔵されたＣＲＣ値ＣＲＣ１、ＣＲＣ２が一致すれば、比較器１６０はフラッグ信号ＦＣＲＣ＿ＯＫを発生する。訂正／検出制御ロジック１８０はフラッグ信号ＦＣＲＣ＿ＯＫに応答してプログラム終了信号ＰＧＭ＿ＥＮＤを発生し、その結果、プログラム動作が終了する。この時、ページバッファ５０４とレジスタ１７１の高電圧活性化ビットがクリアされる。これは外部攻撃によるデータの不正操作なしにプログラム動作が正常的に完了したことを意味する。
【００６４】
ＣＲＣレジスタ１５０に貯蔵されたＣＲＣ値ＣＲＣ１、ＣＲＣ２が一致しなければ、比較器１６０はフラッグ信号ＦＣＲＣ＿ＮＯＫを発生する。フラッグ信号ＦＣＲＣ＿ＮＯＫの生成はある原因（例えば、高電圧を発生する回路の劣化、メモリセルの劣化、など）によってメモリセルにデータが正常的に書き込まれたか否かを示す。この場合、プログラム動作が終了されるかプログラム動作がまた実行される。より具体的に説明すれば、次の通りである。まず、フラッグ信号ＦＣＲＣ＿ＮＯＫが生成される時、レジスタ１７２の［１］ビットがロジック‘１’の値に設定されたか否かによって再プログラム動作が実行されるかプログラム動作が終了する。例えば、レジスタ１７２の［１］ビットがエラー検出機能の選択を知らせるロジック‘０’の値に設定された場合、ＡＮＤゲート１８１の出力が活性化される。これはプログラム動作が終了するようにプログラム終了信号ＰＧＭ＿ＥＮＤが活性化されるようにする（Ｓ１７０）。プログラム動作の終了手続きは前記と同一の方式によって実行され、そのため、それに対する説明は省略する。これと同時に、レジスタ１７２の［６］ビットがプログラムエラーが発生したことを示すロジック‘１’の値に設定される。インタラプト信号ＦＩＱはレジスタ１７２の［５］ビットがロジック‘１’の値に設定される時にのみＡＮＤゲート１８３を通じて生成される。
【００６５】
一方、レジスタ１７２の［１］ビットがエラー訂正機能の選択を知らせるロジック‘１’の値に設定された場合、ＡＮＤゲート１８２の出力すなわち、再プログラム信号ＦＲＰＧＭが活性化される。再プログラム信号ＦＲＰＧＭが活性化されることによってプログラム動作がまた実行される（Ｓ１８０）。再プログラム動作を実行するための手続きはＳ１４０段階に進行する。この場合、バッファメモリ１２０に選択されたページのデータをコピーし、バッファメモリ１２０をプログラムデータでアップデートさせ、バッファメモリ１２０のデータに対するＣＲＣ演算動作を実行する過程は省略する。なぜなら、以前のプログラム動作を実行する時生成されたＣＲＣ値ＣＲＣ１がＣＲＣレジスタ１５０に貯蔵されているためである。以後、プログラム手続きは前記と同一に実行され、そのため、それに対する説明は省略する。
【００６６】
本発明の範囲または技術的思想を逸脱せず、本発明の構造が多様に修正または変更されることができるのはこの分野に熟練された者に自明である。上述した内容を考慮すると、もし本発明の修正及び変更が請求項及び同等物の範囲内に属すれば、本発明がこの発明の変更及び修正を含む。
【図面の簡単な説明】
【００６７】
【図１】本発明による集積回路装置を概略的に示すブロック図である。
【図２】本発明の例示的な実施形態による図１に示した制御ユニットを示すブロック図である。
【図３】図２に示したレジスタ１７２の設定情報を説明するための図である。
【図４】本発明によるスマートカードの検証動作を説明するためのフローチャートである。
【図５Ａ】スマートカードの検証動作による制御流れを示す図である。
【図５Ｂ】スマートカードの検証動作による制御流れを示す図である。
【符号の説明】
【００６８】
１００  制御ユニット
１１０  ランダム遅延制御ロジック
１２０  バッファメモリ
１３０  データコピー及び制御ロジック
１４０  ＣＲＣ演算ロジック
１５０  ＣＲＣレジスタ
１６０  比較器
１７１、１７２  レジスタ
１８０  訂正／検出制御ロジック
１９０  信号発生器
２００  インターフェース
３００  ＲＡＭ
４００  ＲＯＭ
５００  保安データストレージ
【図１】
2007183937.tif 000003
【図２】
2007183937.tif 000004
【図３】
2007183937.tif 000005
【図４】
2007183937.tif 000006
【図５Ａ】
2007183937.tif 000007
【図５Ｂ】
2007183937.tif 000008