(57)【要約】【課題】悪意の使用者から保安情報への任意の接近を防止し、保安機能が強化されたスマートカードを提供する。【解決手段】応用プログラム実行中に、プログラムメモリアドレス値が特定値になる場合に、保安プログラムを活性化させて、応用プログラムの実行中に保安プログラムへの直接接近を防止するよう構成する。【選択図】　　　図１
2004005679.tif 000002
【特許請求の範囲】
【請求項１】
第１、第２、及び第３メモリ領域を含み、
前記第１メモリ領域は前記第２メモリ領域に対する少なくとも一つ以上のサブルーチン呼び出しを含む少なくとも一つ以上の一般応用プログラムを貯蔵し、
前記第２メモリ領域は前記第３メモリ領域に対する少なくとも一つ以上のサブルーチン呼び出しを貯蔵し、
前記第３メモリ領域は前記第２メモリ領域からのサブルーチン呼び出しによって呼び出される少なくとも一つ以上の保安応用プログラムを貯蔵し、
前記第２メモリ領域に対するサブルーチン呼び出しを含む前記第１メモリ領域で一般応用プログラムを実行するように、そして前記第１メモリ領域から前記第２メモリ領域へのサブルーチン呼び出しが実行されれば、前記第３メモリ領域をアンロックするように構成された処理システム、を含むことを特徴とするコンピュータシステム。
【請求項２】
前記処理システムは、前記第１メモリ領域で一般応用プログラムが実行される時に、前記第３メモリ領域をアンロックすることを防止するようにさらに構成される、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記処理システムは、接近されるメモリの住所を伝達するアドレスバスをさらに含み、前記処理システムは、前記アドレスバスが前記第２メモリ領域のアドレスを伝達する時には前記第３メモリ領域をアンロックし、前記第１メモリ領域のアドレスを伝達する時には、前記第３メモリ領域をロックする、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項４】
前記処理システムは、アドレスデコーダロジック及びラッチをさらに含み、前記アドレスデコーダロジックは、前記アドレスバスにロードされる前記第２メモリ領域のアドレスに応答してセット信号を発生し、前記ラッチは、前記アドレスデコーダロジックのセット信号に応答して前記第３メモリ領域に対する選択信号を活性化させる、ことを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記アドレスデコーダロジックは、前記アドレスバスにロードされる前記第１メモリ領域のアドレスに応答してリセット信号を発生し、前記ラッチは、前記アドレスデコーダロジックのリセット信号に応答して前記第３メモリ領域に対する選択信号を不活性化させる、ことを特徴とする請求項４に記載のコンピュータシステム。
【請求項６】
前記第１メモリ領域のアドレスの最上位ビットと前記第３メモリ領域のアドレスの最上位ビットとは互いに相補的であり、
前記アドレスバスにロードされる最上位ビットは、前記第３メモリ領域にはそのまま提供され、前記第１メモリ領域には反転されて提供され、前記第３メモリ領域は、前記選択信号及び前記アドレスバスの最上位ビットの組み合わせによって活性化される、ことを特徴とする請求項３に記載のコンピュータシステム。
【請求項７】
前記第１メモリ領域に、前記少なくとも一般応用プログラムによって処理されるデータを貯蔵する第４メモリ領域をさらに含み、
前記第３メモリ領域に、前記少なくとも保安応用プログラムによって処理されるデータを貯蔵する第５メモリ領域をさらに含み、
前記処理システムは、前記第１メモリ領域から前記第２メモリ領域へのサブルーチン呼び出しが実行されれば、前記第５メモリ領域をロックするように構成される、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項８】
前記第１メモリ領域で、前記処理システムは、一般応用プログラムが実行されている間には前記第５メモリ領域がアンロックされることを防止するように、前記処理システムが構成される、ことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記少なくとも一つの保安応用プログラムのうち一つは使用者確認プログラムである、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項１０】
前記第１、第２及び第３メモリ領域、そして前記処理システムは、スマートカードに含まれている、ことを特徴とする請求項１にコンピュータシステム。
【請求項１１】
前記第１メモリ領域は一般コード領域であり、前記第２メモリ領域はベクタテーブル領域であり、前記第３メモリ領域は保安コード領域である、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項１２】
前記第３メモリ領域で保安応用プログラムが実行されている時に、前記第３メモリ領域のアンロックを維持するように構成される、ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項１３】
前記処理システムは、前記第３メモリ領域から前記第１メモリ領域へのサブルーチン呼び出しが実行されれば、前記第３メモリ領域をロックするように構成される、ことを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１４】
コンピュータシステムのメモリ構造において、
第１メモリ領域と、
第２メモリ領域と、
第３メモリ領域と、を含み、
前記第１メモリ領域は、前記第２メモリ領域に対する多数のサブルーチン呼び出しを含む少なくとも一つの一般応用プログラムを貯蔵し、
前記第２メモリ領域は、前記第３メモリ領域に対する多数のサブルーチン呼び出しを貯蔵し、
前記第３メモリ領域は、前記第２メモリ領域からのサブルーチン呼び出しによって呼び出される多数の保安応用プログラムを貯蔵する、
ことを特徴とするメモリ構造。
【請求項１５】
前記第１メモリ領域に、少なくとも一つ以上の一般応用プログラムによって実行されるデータを貯蔵する第４メモリ領域と、
前記第３メモリ領域に前記保安応用プログラムによって実行されるデータを貯蔵する第５メモリ領域と、をさらに含む、ことを特徴とする請求項１４に記載のメモリ構造。
【請求項１６】
前記保安応用プログラムの少なくとも一つ以上は使用者確認プログラムである、ことを特徴とする請求項１４に記載のメモリ構造。
【請求項１７】
前記第１メモリ領域の住所の最上位ビット、及び前記第３メモリ領域の住所の最上位ビットは、互いに相補的である、ことを特徴とする請求項１４に記載のメモリ構造。
【請求項１８】
前記第１、第２、及び第３メモリ領域は、全部スマートカードに含まれている、ことを特徴とする請求項１４に記載のメモリ構造。
【請求項１９】
前記第１メモリ領域は一般コード領域であり、前記第２メモリ領域はベクタテーブル領域であり、前記第３メモリ領域は保安コード領域である、ことを特徴とする請求項１４に記載のメモリ構造。
【請求項２０】
コンピュータシステムにおいて、
第１、第２、及び第３メモリ領域を含み、
前記第１メモリ領域は、前記第２メモリ領域に対する少なくとも一つ以上のサブルーチン呼び出しを含む少なくとも一つ以上の一般応用プログラムを貯蔵し、前記第２メモリ領域は、前記第３メモリ領域に対する少なくとも一つ以上のサブルーチン呼び出しを貯蔵し、
前記第３メモリ領域は、前記第２メモリ領域からのサブルーチン呼び出しによって呼び出される少なくとも一つ以上の保安応用プログラムを貯蔵し、
前記第２メモリ領域へのサブルーチン呼び出しを含む前記第１メモリ領域で一般応用プログラムを実行する実行手段と、
前記第１メモリ領域から前記第２メモリ領域へのサブルーチン呼び出しが実行されれば、前記第３メモリ領域をアンロックするアンロック手段と、を含む、
ことを特徴とするコンピュータシステム。
【請求項２１】
前記第１メモリ領域で一般応用プログラムを実行する時に、第３メモリ領域のアンロックを防止するための手段をさらに含む、ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
前記実行手段は、接近されているメモリの住所を伝送するための伝送手段を含み、
前記アンロック手段は、前記伝送手段が前記第２メモリ領域に位置するメモリの住所を伝達する時に、前記第３メモリ領域をロックするロック手段を含む、ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２３】
前記第１メモリ領域に、少なくとも一つ以上の一般応用プログラムによって実行されるデータを貯蔵する第４メモリ領域と、
前記第３メモリ領域に、少なくとも一つ以上の保安応用プログラムによって実行されるデータを貯蔵する第５メモリ領域と、
前記第１メモリ領域から前記第２メモリ領域へのサブルーチン呼び出しが実行されれば、前記第５メモリ領域をアンロックするアンロック手段とをさらに含む、ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２４】
前記第１メモリ領域で一般応用プログラムが実行される時に、前記第５メモリ領域のアンロックを防止するための手段をさらに含む、ことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２５】
前記第１、第２、及び第３メモリ領域、前記実行手段及びアンロック手段は、全部スマートカードに含まれている、ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２６】
前記第３メモリ領域で保安応用プログラムが実行されている時に、第３メモリ領域のアンロック状態を維持するための維持手段をさらに含む、ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２７】
前記第３メモリ領域から前記第１メモリ領域へのサブルーチン呼び出しが実行されれば、前記第３メモリ領域をロックするためのロック手段をさらに含む、ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２８】
応用プログラムを実行しながら、保安プログラムを実行する方法であって、
前記応用プログラムを実行すること、
前記保安プログラムの少なくとも一つ以上のサブルーチン呼び出しを含むベクタテーブル領域へのサブルーチン呼び出しを実行すると、前記保安プログラムをアンロックすること、
アンロックされた前記保安プログラムを実行すること、
を含む、ことを特徴とするプログラムを実行する方法。
【請求項２９】
前記保安プログラムから前記応用プログラムへのサブルーチン呼び出しが実行されれば、前記保安プログラムをロックすること、をさらに含む、ことを特徴とする請求項２８に記載のプログラムを実行する方法。
【請求項３０】
前記応用プログラムの実行、前記保安プログラムのアンロック、前記保安プログラムの実行は、全部スマートカード内で実行される、ことを特徴とする請求項２８に記載のプログラムを実行する方法。
【請求項３１】
前記保安プログラムをアンロックすることは、前記保安プログラムの実行中に前記保安プログラムのアンロックを維持することを含む、ことを特徴とする請求項２８に記載のプログラムを実行する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理システム及びデータ処理システムの保安（セキュリティー）方法に関するものである。より詳細には、保安情報及び保安プログラムに対する任意の接近を制限するスマートカード、及びスマートカード内でメモリに貯蔵された情報を保護する方法、に関するものである。
【０００２】
【従来の技術】
スマートカードは、中央処理装置ＣＰＵまたはマイクロプロセッサ、運営体制（Ｃｈｉｐ　Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ：ＣＯＳ）、及び安定した貯蔵領域としてのＥＥＰＲＯＭなどを含む集積回路ＩＣチップが、一般的な信用カードと同一の材質とサイズであるプラスティックカードの表面に付着された電子式カードである。スマートカードでは、単純にメモリのみ内蔵されたメモリカードとは異なり、カード内で情報の貯蔵と処理が可能である。
【０００３】
スマートカードが有している一番基本的な長所は、高信頼性／保安性、大容量データの貯蔵、電子財布（Ｅ−ｐｕｒｓｅ）機能と共に多様なアプリケーションを搭載することができることである。このスマートカードは、双方向通信、分散処理、情報の安全保護など情報の入出力が可能であるので、金融、流通、工場自動化、事務自動化、医療、交通、産業、社会保障、移動通信、公衆電話、ケーブルＴＶ、電力、ガス、水道、教育、信用カード、キャッシュカード、プリペイドカード、都市ガス管理、情報保安、ホームバンキングなどにその適用分野も飛躍的に発展している。そして、前記のようなサービスが一つのカードに統合していく趨勢がある。このような趨勢に応じて、金融決裁手段などとして使用されるスマートカードを、より便利性に具備させて使用することができ、前記スマートカードと関連した多様なサービスを、使用者に、より便利にして提供することができる装置、及びそれのためのサービス方法が要求されている。
【０００４】
スマートカード内に貯蔵されたデータ及びプログラムに対する読み出し、書き込み、消去作業、及びスマートカードとその外部の間の通信は、スマートカード自体の物理的な保安と精巧な暗号技法を通じて、厳格に統制・保護がなされる。こようなスマートカードの特徴により、近来にはスマートカードの使用が増加し、かつ、スマートカードＩＣに対する保安（セキュリティー）技術が多く登場しているが、それに反して、保安技術を破って金銭的な利益などを得ようとするアタック技術も非常に多様なものが登場している。
【０００５】
最近のハッキング技術の発達により、悪意の使用者が運営体制プログラムの実行中にジャンプ命令を実行して、スマートカードが有する複雑な暗号障壁をバイパスして、保安情報への直接的な接近を試みることができる。例えば、運営体制プログラム実行中に、保安プログラムへのジャンプ命令、または、ロードや貯蔵命令による保安情報の流出及び毀損などが行われる可能性がある。すなわち、保安プログラムに使用されるコード及びデータが流出したり、またはそれが捏造されたりすることが起こる。
【０００６】
【発明が解決しようとする課題】
本発明の目的は、悪意の使用者から保安情報への任意の接近を防止することができ、保安機能が強化されたスマートカード、及び、それの保安情報を保護する方法を提供することである。
【０００７】
本発明の他の目的は、多重応用プログラム間の保安を維持することができるシステムを提供することである。
【０００８】
【課題を解決するための手段】
前述の目的を達成するための本発明の一特徴によると、中央処理装置（またはマイクロプロセッサ）による使用者運営体制プログラムの実行中には、保安が要求されるメモリのチップ選択信号がディセーブル状態になるようにすることによって、前記保安要求メモリへの接近を完全に遮断する。運営体制プログラムの実行中に、プログラムカウンタがプログラムメモリ内の所定のコード領域（例えば、‘ベクタテーブル領域’）を指定する場合のみに、保安プログラム（Ｓｅｃｕｒｉｔｙ　Ｐｒｏｇｒａｍ）活性化手段により、前記保安要求メモリのチップ選択信号がイネーブル状態になる。前記プログラムメモリは、一般コード領域、ベクタテーブル領域、及び保安コード領域を含む。
【０００９】
前記保安プログラム活性化手段は、アドレスデコーダロジックとラッチロジックを具備する。アドレスデコーダロジックは、プログラム実行中のメモリアドレス（すなわち、プログラムカウンタ）が特定メモリアドレスになる時に、これをデコーディングしてラッチロジックをセットさせる。ラッチロジックの出力信号が、保安が要求される保安装置、例えば、保安コード領域、保安専用プロセッサ、保安データ領域に印加されて、これらを活性化させる。
【００１０】
前記ベクタテーブル領域は、前記保安コード領域にジャンプするジャンプコード（以下、‘関数ジャンプコード’）のみを貯蔵する。前記保安コード領域は、データメモリの保安データ領域に貯蔵された保安データを操作するためのコードセット（以下、‘保安関数コード’）を貯蔵する。前記一般コード領域は、データメモリの一般データ領域に貯蔵された一般データを操作するためのコードセット（以下、‘一般コード’）を含み、また、前記ベクタテーブル領域の各関数ジャンプコードにジャンプするコード（以下、‘ベクタジャンプコード’）を含む。
【００１１】
前記アドレスデコーダロジックは、プログラムカウンタ値が前記ベクタテーブル領域のアドレス値を指定する時に、前記ラッチロジックをセットさせる。これによって、ラッチロジックは、イネーブル状態のチップ選択信号を出力して前記保安コード領域及び保安情報領域を接近可能に活性化させる。すなわち、一般コード領域で使用者運営体制プログラムが実行されて、ベクタテーブル領域にジャンプするベクタジャンプコードの実行によって、プログラムカウンタ値が前記ベクタテーブル領域のアドレス値を指定すると、前記保安プログラム活性化手段が前記保安コード及び保安情報領域に対するチップ選択信号をイネーブルさせる。
【００１２】
前記ベクタジャンプコードが実行されれば、前記ベクタテーブル領域の特定関数ジャンプコードにジャンプし、次に、保安コード領域の保安関数コードにジャンプする。これによって、保安プログラムが実行され、保安情報領域のデータを処理する。
【００１３】
上述の目的を達成するための本発明の他の特徴によると、多重応用プログラム（Ｍｕｌｔｉｐｌｅ　Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ）を搭載したデータ処理システムは、データを貯蔵するためのデータメモリと、応用プログラム（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ）を貯蔵するためのプログラムメモリと、前記プログラムメモリのうち他の応用プログラムから保護されるべきである保安プログラム（Ｓｅｃｕｒｉｔｙ　Ｐｒｏｇｒａｍ）を貯蔵する保安プログラム領域にジャンプするジャンプコードのみを貯蔵するベクタテーブル領域と、応用プログラムの実行中にプログラムカウンタ値が前記ベクタテーブル領域のアドレスを指定する場合に、前記保安プログラムを実行して前記データメモリの保安データを処理するプロセッサと、を含む。
【００１４】
前記データ処理システムは、アドレスデコーダロジック及びラッチロジックで構成された保安プログラム活性化手段を、さらに含む。この時に、前記プログラムカウンタ値が変わって前記ベクタテーブル領域のアドレスを指定すると、前記アドレスデコーダロジックは、前記変化したプログラムカウンタ値を出コーディングしてセット信号を発生し、これに応答して前記ラッチロジックはセットされ、イネーブル状態のチップ選択信号を出力して前記保安プログラム及び保安データ領域に印加する。
【００１５】
上述の目的を達成するためのスマートカードは、一般プログラムが実行される一般コード領域及び保安プログラムが実行される保安コード領域を含むプログラムメモリと、一般データ領域及び保安データ領域を含むデータメモリと、中央処理装置の制御によって現在実行されているプログラムメモリのコード領域のアドレスを出コーディングしてセットまたはリセット信号を出力するアドレスデコーダロジックと、そして、前記アドレスデコーダロジックの出力信号に応答してセットまたはリセットされて前記保安コード領域及び保安データ領域を活性化または非活性化させるラッチロジックと、を含む。この時に、前記一般コード領域は、前記保安コード領域にジャンプする関数ジャンプコードを貯蔵するベクタテーブル領域を含み、前記アドレスデコーダロジックは、現在実行されているプログラムメモリのコード領域のアドレスが前記ベクタテーブル領域のアドレスに該当する場合のみにセット信号を出力する。
【００１６】
望ましくは、前記関数ジャンプコードは、前記保安コード領域の正当の使用者であるか否かを確認する認証コードに、ジャンプする。
【００１７】
前記一般コード領域は、前記ベクタテーブル領域にジャンプするベクタジャンプコードを含む。また、前記ベクタジャンプコードにジャンプするまた他のジャンプコードを含むことができる。
【００１８】
実施の形態に従って、前記保安プログラムの実行を制御する保安専用プロセッサをさらに含むことができる。
【００１９】
前記ラッチロジックの出力信号は、前記保安コード領域及び保安データ領域の各々に印加されて、これら領域を活性化または非活性化させるチップ選択信号として作用する。ラッチロジックがセットされれば、チップ選択信号は活性化の状態になり、リセットされれば、非活性化状態になる。
【００２０】
望ましい実施の形態において、前記一般コード領域及び保安コード領域のアドレス最上位ビットは互いに相補的であり、現在実行されているプログラムメモリのコード領域のアドレスの最上位ビットが、前記一般コード領域及び保安コード領域に印加されて、また他のチップ選択信号として作用し、前記一般コード領域には反転されて印加され、これによって、前記チップ選択信号または他のチップ選択信号の論理倍によって、前記保安コード領域が活性化または非活性化される。
【００２１】
上述のように、本発明によると、プログラムカウンタが指定するアドレス値が特定領域のアドレス値になる場合に、保安を必要にする領域を選択してこれを活性化させる。したがって、保安等級が異なる互い異なる応用プログラムを同一のスマートカードチップ内に搭載することができる。
【００２２】
【発明の実施の形態】
以下、添付した図面を参照して、本発明の望ましい実施の形態を詳細に説明する。
【００２３】
図１は、本発明によるスマートカードを概略的に示している。スマートカードは、入出力段１、マイクロプロセッサまたはＣＰＵ（中央処理装置、２）プログラムメモリ３、及び、データメモリ７、及び、保安プログラム活性化手段１０を含む。プログラムメモリ３は、スマートカードチップを運営するカード運営体制ＣＯＳがプログラムされているメモリとして、例えば、ＲＯＭに記録されている。ＣＰＵ２は、データメモリ７、プログラムメモリ３、及びＲＡＭ（図示せず）など、チップのすべての構成要素に接近するために通過する内部通路を制御する。データメモリ７は、ＣＰＵ２及びカード運営体制により外部の接近に対して保護される使用者データ領域である保安データ領域８と一般データ領域９を含むメモリとして、例えば、電気的に読み出し／書き込みが可能なＥＥＰＲＯＭとして設計される。使用者データ領域８は、オペレーション、カード発行者データ、使用者データを有しているデータセット、各種アプリケーションで実現可能な関数を含む。
【００２４】
図１に概略的に示したように、本発明によるプログラムメモリ３は、使用者（一般）コード領域６、保安コード領域４、及び前記保安コード領域４にジャンプのみする特別のコードである関数ジャンプコードからなるベクタテーブル領域５を含む。これら領域は、一つのメモリで物理的に互いに異なる位置に位置するように分けることができ、または、各々互いに異なるメモリで構成されることができる。
【００２５】
保安プログラム活性化手段１０は、保安コード領域４及び保安データ領域８に接近可能または接近不可能にチップ選択信号ＣＳをイネーブル、またはディセーブルさせる。前記保安プログラム活性化手段１０は、アドレスデコーダロジック１１及びここに連結されたラッチロジック回路１２からなる。
【００２６】
インタフェースのために、すべてのメモリ領域４，５，６，８，９は、アドレスバス１３によりＣＰＵ２に連結されている。図示しないが、データ交換のためにデータバスをさらに具備する。または、アドレスバスをデータバスとして使用することもできる。そして、保安プログラム活性化手段１０のアドレスデコーダロジック１１は、アドレスバス１３にロードされるプログラムメモリ３の該当アドレス（現在実行されているプログラムコードのアドレス、プログラムカウンタ）をデコーディングするために、アドレスバス１３に連結される。ラッチロジック１２は、アドレスデコーダロジック１１の出力信号（セットまたはリセット信号）に応答して、その出力を保安データ領域８に印加する。ラッチロジック１２の出力信号は、前記保安コード領域４及び保安データ領域８をイネーブルまたはディセーブルさせるチップ選択信号ＣＳとして作用する。
【００２７】
このようなメモリ構造による本発明の保安プログラム作動概念を説明する。本発明によると、プログラムメモリ領域３でプログラム実行中にプログラムカウンタが特定値に変わる場合のみに、保安プログラム活性化手段１０により保安コード領域４及び保安データ領域８が活性化される。
【００２８】
一般コード領域８で、ＣＰＵ２の制御により使用者運営体制プログラム（一般プログラム）が実行される。この時に、実行されるプログラムコードのアドレス（プログラムカウンタ）が特定値、すなわち、ベクタテーブル領域のアドレス値ではないので、保安プログラム活性化手段１０は、保安コード領域４及び保安データ領域８を活性化させない。すなわち、これらに対する接近が不可能である。一方、一般プログラムの実行が続けながら、プログラムカウンタが変わって、ベクタテーブル領域５のアドレス値になれば、これを保安プログラム活性化手段１０のアドレスデコーダロジック１１が、デコーディングして、セット信号を発生する。アドレスデコーダロジック１１が発生したセット信号に応答して、ラッチロジック１２がセットされて、保安コード領域４及び保安データ領域８を活性化させるチップ選択信号ＣＳがイネーブル状態になる。ここで、ベクタテーブル領域５は、保安コード領域４にジャンプのみするコードで構成されているので、保安コード領域４でプログラムが実行される。したがって、保安データ領域８の保安情報を処理することができるようになる。
【００２９】
本発明のスマートカードはまた、保安プログラムを制御する暗号専用プロセッサ１５をさらに含むこともできる。この場合に、暗号専用プロセッサ１５も保安プログラム活性化手段１０によって活性化される。
【００３０】
保安情報に対する処理が終わり、保安プログラムが終了して、再び一般コード領域６のアドレスに対応するようにプログラムカウンタが変わると、保安プログラム活性化手段１０のアドレスデコーダロジック１１が、アドレス値をデコーディングしてリセット信号を出力し、これによって、ラッチロジック１２がリセットされて、チップ選択信号ＣＳがディセーブル状態になる。これによって、保安データ領域８及び保安コード領域４は非活性化されて、接近が不可能な状態になる。
【００３１】
図２を参照して、本発明をより詳細に説明する。図２は本発明を説明するためのプログラムメモリ構成の一例を示している。図２を参照すると、スマートカードのプログラムメモリ３は、上述のように、一般コード領域６、ベクタテーブル領域５及び保安コード領域４で構成される。各領域は所定の住所範囲を有する。例えば、前記一般コード領域６は、プログラムメモリアドレス００００００ｈから０２３ＦＦＦｈとの間の領域であり、前記ベクタテーブル領域５は、プログラムメモリアドレス０２４０００ｈから０２４１ＦＦｈとの間の領域であり、前記保安コード領域４は、プログラムメモリアドレス０２４２００ｈから０２７ＦＦＦｈとの間の領域である。このようなメモリアドレス及びその大きさは、本発明をより明確に説明するために一例を挙げたものであって、スマートカード応用プログラムに従って多様に変更することができる。
【００３２】
前記ベクタテーブル領域５は、本発明の一特徴として、前記保安コード領域４の特定部分にジャンプするコード、すなわち、関数ジャンプコードのみからなる。一例として、Ｖｅｃｔｏｒ＿Ｅ１：ＪＭＰ　Ｆ１、及び、Ｖｅｃｔｏｒ＿Ｅ２：ＪＭＰ　Ｆ２、二つの関数ジャンプコードが示している。前記保安コード領域４は、前記ベクタテーブル領域５の関数ジャンプコードＶｅｃｔｏｒ＿Ｅ１：ＪＭＰ　Ｆ１、及び、Ｖｅｃｔｏｒ＿Ｅ２：ＪＭＰ　Ｆ２などがジャンプする保安関数コード、Ｆ１，Ｆ２などからなる。一方、前記一般コード領域６は、一般情報を処理する一般コード、例えば、ＬＤ　ｒ０，ｒ１，ＬＤ　ｒ２，ｒ０，ＬＤｒ３，ｒ２などの三つのロード命令コードと、前記ベクタテーブル領域５の関数ジャンプコード、Ｖｅｃｔｏｒ＿Ｅ１，Ｖｅｃｔｏｒ＿Ｅ２に各々ジャンプするベクタジャンプコードＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ１，ＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ２を含む。選択的に、ベクタジャンプコード、例えば、ＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ１を呼び出すベクタジャンプコードＣａｌｌ　ＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ１を、さらに含むことができる。結局、一般コード領域から保安コード領域への移動は、サブルーチン（ｓｕｂｒｏｕｔｉｎｅ）呼び出し（ジャンプ）によってのみ可能である。
【００３３】
再び、図１を参照して、中央処理装置２は、コントロールユニット（図示せず）とデータパスまたは実行ユニット（図示せず）とに分けられる。コントロールユニットは、実行される次のインストラクションをフェッチするためのプログラムメモリアドレスを有するレジスタであるプログラムカウンタ（ＰｒｏｇｒａｍＣｏｕｎｔｅｒ：ＰＣ）と、メモリからフェッチしたインストラクションを貯蔵するためのレジスタであるインストラクションレジスタ（Ｉｎｓｔｒｕｃｔｉｏｎ　Ｒｅｇｉｓｔｅｒ：ＩＲ）と、を含む。データパスは、ＡＬＵ（算術論理ユニット：Ａｒｉｔｈｍｅｔｉｃ　Ｌｏｇｉｃ　Ｕｉｎｔ）、ＡＣ（累算器：Ａｃｃｕｍｕｌａｔｏｒ）を含む。また、コントロールユニットは、メモリとのインタフェースのためにメモリアクセスの間プログラムメモリアドレスを保管するメモリアドレスレジスタ（ＭＡＲ：Ｍｅｍｏｒｙ　Ａｄｄｒｅｓｓ　Ｒｅｇｉｓｔｅｒ）とを含む。一方、データパスは、ＣＰＵ内部動作からメモリをディカップさせるためのメモリバッファレジスタ（ＭＢＲ：Ｍｅｍｏｒｙ　Ｂｕｆｆｅｒ
Ｒｅｇｉｓｔｅｒ）を含む。
【００３４】
まず、ＣＰＵ２が初期化し、ＣＰＵ２のコントロールユニットがリセットすると、この時に、コントロールユニットのプログラムカウンタも一定の値（例えば、＠）にセットされる。プログラムカウンタＰＣに貯蔵された次の命令フェッチのためのプログラムメモリアドレスが、メモリアドレスレジスタＭＡＲに移り、コントロールユニットにより、メモリ読み出しオペレーションがスタートする。インストラクションパス（ｉｎｓｔｒｕｃｔｉｏｎ　ｐａｔｈ）を通じて、プログラムメモリ３から読み出した後に、インストラクションセットをインストラクションレジスタＩＲに貯蔵する。次に、インストラクションレジスタＩＲに貯蔵された命令書セット、例えば、ロード命令ＬＤ　ｒ０，ｒ１を解釈し、データメモリ（一般情報領域、９）に貯蔵されたデータを読み出してメモリバッファレジスタＭＢＲに貯蔵した後にレジスタｒ０，ｒ１に貯蔵すると、ロードオペレーションが終わる。最後に、プログラムカウンタが増加する（＠−＞＠＋１）。続けて、プログラムカウンタＰＣが指定するプログラムメモリアドレス値（＠＋１）が、メモリアドレスレジスタＭＡＲに移り、プログラムメモリ読み出しオペレーションが再びスタートして、インストラクションセットをインストラクションレジスタＩＲに貯蔵する。次に、インストラクションレジスタＩＲに貯蔵された命令語、例えば、ＬＤ　ｒ２，ｒ０を解釈して、データメモリ（一般情報領域、９）に貯蔵された値をレジスタｒ２，ｒ０に貯蔵してロードオペレーションが終わり、最後のプログラムカウンタＰＣが再び増加する（＠＋１−＞＠＋２）。上述の方法で、続けてプログラムが実行されながら、プログラムカウンタ値が増加する（例えば＠＋２−＞−＞−＞−＞＠＋ｎ）。
【００３５】
続けて、プログラムメモリ３からインストラクションセット、例えば、ＪＭＰＶｅｃｔｏｒ　Ｅ１をフェッチし、これをインストラクションレジスタＩＲに貯蔵する。次に、インストラクションレジスタＩＲに貯蔵されたインストラクションＪＭＰ　Ｖｅｃｔｏｒ　Ｅ１を解釈する。フェッチしたインストラクションがジャンプ命令語であるので、プログラムカウンタＰＣ値が、Ｖｅｃｔｏｒ　Ｅ１が貯蔵されたメモリ領域のアドレス値（ベクタテーブル領域の住所０２４００ｈ〜０２４１ＦＦｈのうちいずれか一つ、例えばＶｅｃｔｏｒ＿Ｅ１にラベリングされた値：図２には０２４０００ｈ）に代替される。前記ベクタテーブル領域５のアドレス値がメモリアドレスレジスタＭＲＡに移り、アドレスバス１３にロードされる。前記アドレスバス１３に連結された保安プログラム活性化手段１０のアドレスデコーダロジック１１が、ベクタテーブル領域のアドレス値０２４０００ｈをデコーディングしてセット信号を発生させ、これに応答してラッチロジック１２がセットされて、保安コード領域４及び保安情報領域８に作用するチップ選択信号ＣＳがイネーブル状態になる。これによって、保安プログラムが活性化される。
【００３６】
一方、プログラムカウンタに貯蔵されたＶｅｃｔｏｒ＿Ｅ１にラベリングされた住所値０２４０００ｈに存在するインストラクションセット、例えば、ＪＭＰＦ１（関数ジャンプコード）が、再びインストラクションレジスタＩＲに貯蔵されてコントロールユニットにより解釈される。上述のように、ベクタテーブル領域５にあるすべてのインストラクションセットは、保安コード領域４にジャンプのみするインストラクションセットで構成されている。したがって、プログラムカウンタが、保安コード領域４のアドレスのうちいずれか一つ（図２ではＦ１にラベリングされた保安関数コードのアドレス０２４２００ｈ）になる。これによって、保安コード領域で保管プログラムが実行される。すなわち、保安関数コードＦ１が実行される。保安関数コードＦ１は、正当の使用者であるか否かを確認する保安認証コード（ＳｅｃｕｒｉｔｙＣｏｄｅ）でスタートすることが望ましい。例えば、保安認証コードとして、ＲＳＡ＿Ｓｉｇｎ関数であり得る。関数内で、次のような機能ルーチンが実行されることができる。
ＲＳＡ（ｉｎｐｕｔ，ｏｕｔｐｕｔ）
｛保安条件の確認、
キーロード
データロード
ＲＳＡ　Ｓｉｇｎ　オペレーション
結果の貯蔵
ｒｅｔｕｒｎ｝
【００３７】
正当の使用者の認証が終わると、保安データ領域８の保安情報を操作する。保安情報の操作が終わると、リターンコードＲＥＴによって、再び一般コード領域６のアドレス値にプログラムカウンタが変わる（例えば、ＬＤ　ｒ３，ｒ２命令が存在する一般コード領域のアドレス０１２０００ｈ）。
【００３８】
プログラムカウンタに貯蔵されたプログラムメモリアドレス０１２０００ｈが、メモリアドレスレジスタＭＡＲを通じて、アドレスバス１３にロードされれば、保安プログラム活性化手段１０のアドレスデコーダロジック１１が、これをデコーディングしてリセット信号を発生させ、これに応答して、ラッチロジック１２がリセットされて、保管コード領域４及び保安データ領域８に作用するチップ選択信号ＣＳが、ディセーブル状態になる。これによって、保安プログラムへの接近が不可能になる。次に、プログラムカウンタが指定するプログラムメモリアドレスに存在するインストラクションセットＬＤ　ｒ３，ｒ２をフェッチし、これを解釈して実行する。
【００３９】
プログラムが一般コード領域６で続けて実行され、再びベクタテーブル領域５にジャンプするプログラムメモリアドレス０１ＦＦＦＦｈに存在する命令語、例えばＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ２をフェッチする。フェッチした命令語がジャンプ命令語であるので、プログラムカウンタが、ＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ２が存在するベクタテーブル領域５のアドレス値に変わり、保安プログラム活性化手段１０により、保安コード４及び保安データ領域８が再び活性化状態になる。これと同時に、ベクタテーブル領域５のジャンプ命令セットＪＭＰ　Ｆ２の実行により、保安コード領域４にプログラムが移動し、そこで保安プログラムが実行されて保安関数コードＦ２が実行される。
【００４０】
上述のように、本発明によると、予め決められた経路を通じてのみ、すなわち、サブルーチン関数呼び出し（ジャンプ）を通じてのみ、保安プログラムが実行される。すなわち、一般コード領域６でベクタジャンプコードＪＭＰ　Ｖｅｃｔｏｒ＿Ｅ１が実行され、これによって、ベクタテーブル領域５の関数ジャンプコードＶｅｃｔｏｒ＿Ｅ１にジャンプし、ＪＭＰ　Ｆ１が実行され、最終的に保安コード領域４にジャンプして、保安関数コードＦ１が実行される。この時に、ベクタジャンプコードによって、ベクタテーブル領域にジャンプするジャンプ命令が実行され、プログラムカウンタが、ベクタジャンプコードが貯蔵されたベクタテーブル領域５のアドレス値に変わると、保安プログラム活性化手段１０がこれをデコーディングして、保安コード４及び保安情報領域８を活性化させる。
【００４１】
したがって、一般コード領域で直接的なジャンプまたはロード命令によっては、保安コード領域及び保安データ領域に接近することができない。すなわち、保安プログラムを実行することができない。
【００４２】
本発明のサブルーチン関数呼び出し（ジャンプ）によって、特定プログラムカウンタ値によって保安プログラムを活性化させるチップ選択信号がイネーブルされる。したがって、これに基づいて、多様な変形例が可能である。例えば、前記方法で、ベクタテーブル領域のアドレス値にプログラムカウンタが変わる時に、但し、保安コード領域に対するチップ選択信号がイネーブルされ、次に、サブルーチン関数ジャンプによって保安コード領域のアドレス値にプログラムカウンタ値が変わる時に、保安データ領域に対するチップ選択信号がイネーブルされることができる。
【００４３】
以下、図３を参照して、本発明の望ましい実施の形態を説明する。図２に示した構成要素と同一の機能を有することに対しては、同一の参照番号を使用するので、これに対する詳細の説明は省略する。図３では、ＣＰＵ２とメモリ４、５、６、８、９の間のデータ伝送のためにすべてのメモリ領域は、ＣＰＵとデータバス（図示せず）により連結されており、ＣＰＵ２とメモリ４、５、６、８、９の間のインタフェースのためのすべてのメモリ領域は、ＣＰＵとアドレスバスＡにより連結されている。図において‘Ａ’はアドレスバスを意味する。一般コード領域６は、論理アドレス０００００ｈから０ＦＥＦＦｈとの間であり、ベクタテーブル領域５は、アドレス０ＦＦ００ｈから０ＦＦＦＦｈとの間の領域であり、保安コード領域４は、アドレス１００００ｈから１ＦＦＦＦｈとの間の領域である。一般コード領域６と保安コード領域５の最上位アドレスビットを互いに相補的にして（すなわち、論理的に互いに相反される状態にして）、これら二領域を区分した。
【００４４】
図３を参照すると、一般データ領域９、保安データ領域８、一般コード領域６、保安コード領域４が、各々二つのチップ選択信号ＣＳ１、ＳＣ２の論理倍によって活性化または非活性化される。また、保安データ領域８及び保安コード領域４に作用するチップ選択信号ＣＳ２（第２チップ選択信号）のみが、保安プログラム活性化手段１０のアドレスデコーダロジック１１によってイネーブル／ディセーブルされる。また、実行されるプログラムのコードアドレスのうち最上位ビットが、一般コード領域６及び保安コード領域４に印加されて、また他のチップ選択信号（第１チップ選択信号）として作用し、一般コード領域６には反転されて印加される。
【００４５】
具体的に説明すると、本発明の望ましい実施の形態において、プログラムメモリアドレスの最上位ビット（ＭＳＢ：Ｍｏｓｔ　ＳｉｇｎｉｆｉｃａｎｔＢｉｔ、Ａｄｄｒｅｓｓ　ｂｉｔ１６）に従って、保安コード領域４及び一般コード領域６に作用する第１チップ選択信号ＣＳ１が、イネーブルまたはディセーブルされる。すなわち、一般コード領域６の場合に、アドレスバスＡにロードされるアドレス最上位ビットＭＳＢの論理状態が反転されて、第１チップ選択信号ＣＳ１として作用し、保安コード領域４の場合に、アドレス最上位ビットの論理状態がそのまま第１チップ選択信号ＣＳ１として作用する。アドレス最上位ビットが‘０’であれば、論理ロー状態であり、‘１’であれば、論理ハイ状態である。一般データ領域９及び保安データ領域８に作用する第１チップ選択信号ＣＳ１は、論理‘１’、すなわち、論理ハイ状態に与えられる。また、一般データ領域９及び一般コード領域６に作用する第２チップ選択信号ＣＳ２も、論理‘１’、すなわち、論理ハイ状態に与えられる。保安プログラム活性化手段１０のアドレスデコーダロジック１１は、アドレスバスＡにロードされるコードアドレス（プログラムカウンタ値）がベクタテーブル領域５のアドレス値になる時（図３で、メモリアドレスの最上位ビットＡｄｄｒｅｓｓ　ｂｉｔ１６が‘０’であり、８番目のビットから１５番目のビットＡｄｄｒｅｓｓ　ｂｉｔ５〜Ａｄｄｒｅｓｓ　ｂｉｔ８が‘１’であれば）、セット信号を発生してラッチロジック１２をセットさせる。これによって、保安データ領域８及び保安コード領域４に作用する第２チップ選択信号ＣＳ２がイネーブル状態になる。
【００４６】
さらに具体的に説明すると、中央処理装置２の制御によって、一般プログラムが一般コード領域６で実行されると仮定すれば、一般コード領域６は、論理アドレス０００００ｈから０ＦＦＦＦＦｈとの間の領域を占めているので、プログラムメモリアドレスの最上位ビットが論理‘０’である。したがって、その状態が反転された論理‘１’がチップ選択信号ＣＳ１として作用するので、第１チップ選択信号ＣＳ１はイネーブル状態である。一方、一般コード領域６の第２チップ選択信号ＣＳ２はイネーブル状態にあるので、これら二チップ選択信号の論理倍によって一般コード領域６は接近可能状態になる。
【００４７】
しかし、保安コード領域４の場合には、プログラムメモリアドレスの最上位ビット論理‘０’が、そのまま第１チップ選択信号ＣＳ１として作用するので、第１チップ選択信号ＣＳ１はディセーブル状態である。また、プログラムメモリアドレスがベクタテーブル領域の値ではないので、アドレスデコーダロジック１１がこれをデコーディングしてリセット信号を発生し、これに応答してラッチロジック１２がリセットされて、保安コード領域４及び保安データ領域８に作用する第２チップ選択信号はディセーブル状態になる。結果的に、保安コード領域４及び保安データ領域８は活性化されない。一般プログラムが実行されている時に、保安コード領域４及び保安データ領域８は非活性化状態になって、根本的に接近が不可能である。
【００４８】
一般プログラムが進行し、サブルーチン関数呼び出し（ジャンプ）によってプログラムカウンタがベクタテーブル領域５のアドレス値（０ＦＦ００ｈから０ＦＦＦＦｈのうちいずれか一つ）に変わると、アドレスバスＡに該当アドレスがロードされる。これによって、保安プログラム活性化手段１０のアドレスデコーダロジック１１によって保安コード領域４及び保安データ領域８に作用する第２チップ選択信号ＣＳ２がイネーブル状態になる。一方、ベクタテーブル領域５は、保安コード領域５にジャンプのみするジャンプコードで構成されているので、プログラムメモリアドレスは、保安コード領域４のアドレスに変わる。保安コード領域４のプログラムメモリアドレス値の最上位ビットは、論理‘１’であるので、保安コード領域４に作用するチップ選択信号ＣＳ１はイネーブル状態である。しかし、一般コード領域６の場合に反転されるので、一般コード領域６に作用するチップ選択信号ＣＳ１はディセーブル状態である。結果的に、サブローチン関数呼び出しが起きて、プログラムが保安コード領域４で実行される時に、一般コード領域は非活性化状態になる。
【００４９】
保安プログラムの実行が終わって、再びプログラムメモリアドレス値にプログラムカウンタ値が変わると、保安コード領域４及び保安データ領域８に作用する第２チップ選択信号ＣＳ２及び保安コード領域４に作用する第１チップ選択信号ＣＳ１がディセーブルされる。これによって、保安コード領域及び保安データ領域は非活性化されて、接近が不可能になる。一方、一般コード領域６に作用する第２チップ選択信号ＣＳ２はイネーブル状態である。また、一般コード領域６のプログラムメモリアドレスの最上位ビットは‘０’であるので、一般コード領域６に作用する第１チップ選択信号ＣＳ１はイネーブル状態である。結果的に、一般コード領域６が活性化されて一般プログラムが実行される。
【００５０】
前記望ましい実施の形態において、保安データ領域８に作用する第２チップ選択信号ＣＳ２が常に論理ハイに与えられた。しかし、実施の形態に従って、保安コード領域４と同一に、プログラムメモリアドレスの最上位ビットを適用することができる。
【００５１】
また、前記実施の形態において、一般データ領域９の場合に、チップ選択信号ＣＳ１、ＣＳ２は常に全部イネーブル状態に与えられた。しかし、一般データ領域９の第１チップ選択信号ＣＳ１にも、一般コード領域６と同一にプログラムメモリアドレスの最上位ビットを反転させて適用することができる。このようにすると、一般データ領域９も常にイネーブル状態ではなく、一般プログラムが実行される時のみイネーブル状態になる。
【００５２】
本発明において、プログラムメモリアドレスの最上位二ビット以上を使用して、チップ選択信号をイネーブル／ディセーブルさせることができ、これによって、保安等級が互いに異なる多様な応用プログラムを、一つのチップに搭載することができる。また、ベクタテーブル領域がジャンプする、保安が必要な保安コード領域を、多様にすることもできる。
【００５３】
図４はこのような変形例を説明するための図面であって、多重応用プログラムを貯蔵するプログラムメモリ５０及びこれに相応するデータメモリ６０の一例を示している。
【００５４】
プログラムメモリ５０は、例えば、応用プログラムＡ領域５２、応用プログラムＢ領域５６、応用プログラムＣ領域５８及びベクタテーブル領域５４を含む。応用プログラムＢ及び応用プログラムＣは、保護が要求される保安プログラム領域として、応用プログラムＡ実行中にこれらに対する接近を禁止する。
【００５５】
一方、データメモリ６０は、応用プログラムＡに対応するデータ領域Ａ６２、応用プログラムＢに対応するデータ領域Ｂ６４、応用プログラムＣに対応するデータ領域Ｃ６６を含み、データ領域Ｂ６４及びデータ領域Ｃ６６は、保護が要求される保安データ領域である。
【００５６】
ベクタテーブル領域５４は、応用プログラムＢ領域５６及び応用プログラムＣ領域５８にジャンプするジャンプコードを貯蔵し、アドレスＡＡからアドレスＢＢとの間の領域である。例えば、図示したように、ベクタテーブル領域５４のメモリアドレスＸＸには、応用プログラムＢ領域５６のアドレスＣＣにジャンプしなさいとのジャンプ命令語が存在する。また、ベクタテーブル領域５４のメモリアドレスＸＸ＋Ｎには、応用プログラムＢ領域５６のアドレスＤＤにジャンプしなさいとのジャンプ命令語が存在する。
【００５７】
これらプログラムメモリの各領域またはデータメモリの各領域は一つのメモリで物理的に互いに異なる位置に位置するように分けることができ、または各々互いに異なるメモリで構成されることができる。
【００５８】
中央処理装置により、応用プログラムＡ領域５２で応用プログラムＡ（一般プログラム）が実行される中に、プログラムカウンタ値が前記ベクタテーブル領域５４のアドレスＸＸに変わると（前記アドレスＸＸにジャンプするジャンプ命令語実行により）、チップ選択信号ＣＳ１がイネーブルされて、応用プログラムＢ及びデータ領域Ｂ６４が活性化される。同様に、プログラムカウンタ値が前記ベクタテーブル領域５４のアドレスＸＸ＋Ｎに変わると（前記アドレスＸＸにジャンプするジャンプ命令語実行により）、チップ選択信号ＣＳ２がイネーブルされて、応用プログラムＣ及びデータ領域Ｃ６６が活性化される。したがって、応用プログラムＡから応用プログラムＢまたは応用プログラムＣへの直接的な接近は不可能である。また、同一の保安プログラムＢ及びＣの間でも、直接的な接近は不可能である。
【００５９】
スマートカードに対して実施の形態を説明したが、本発明の思想はここに限定されず、マイクロプロセッサによりデータを処理する多様なデータ処理システムに適用されることができる。
【００６０】
【発明の効果】
本発明によると、保安プログラムは、サブローチン呼び出し（ジャンプ）により、特定プログラムメモリアドレス値にプログラムカウンタ値が変わる場合のみに、保安コード領域及び保安データ領域に対する接近が許される。したがって、保安プログラムを一般プログラムから完全に分離させることができる。すなわち、一般プログラムでは直接的に保安情報に接近してこれを処理することができず、予め特定された経路を通じて保安プログラムを活性化させることが可能である。
【００６１】
したがって、保安情報及び保安装置を、一般応用プログラムと完全に分離させることができるので、保安情報を安全に保護することができる。また、保安情報及び保安装置は、サービス提供者の役割を果たすことによって、保安強度が異なる応用プログラムを同一のチップ内に搭載することができる。
【図面の簡単な説明】
【図１】本発明によるスマートカードを概略的に示す図面。
【図２】図１のプログラムメモリ構成の一例を示した図面。
【図３】本発明の一実施の形態によるスマートカードを概略的に示した図面。
【図４】本発明による多重応用プログラムが貯蔵されたプログラムメモリ及びデータメモリを概略的に示した図面。
【符号の説明】
１　　入出力段
２　　ＣＰＵ（中央処理装置）
３　　プログラムメモリ
４　　保安コード領域
５　　ベクタテーブル領域
６　　一般コード領域
７　　データメモリ
８　　保安データ領域
９　　一般コード領域
１０　保安プログラム活性化手段
１１　アドレスデコーダロジック
１２　ラッチロジック回路
１３　アドレスバス
１５　暗号専用プロセッサ
５０　プログラムメモリ
６０　データメモリ
【図１】
2004005679.tif 000003
【図２】
2004005679.tif 000004
【図３】
2004005679.tif 000005
【図４】
2004005679.tif 000006