(57)【特許請求の範囲】
【請求項１】
複数の処理要求に応じて所定のデータ処理を行う半導体回路と、前記半導体回路との間で行われる手続き処理に用いられるデータを記憶する記憶部を有する複数の集積回路、或いは当該集積回路との間でデータ入出力を行う複数の通信装置とを有するデータ処理システムにおいて、前記半導体回路が前記複数の集積回路或いは前記複数の通信装置から前記複数の処理要求を受信して行うデータ処理方法であって、
前記半導体回路が、前記複数の集積回路或いは前記複数の通信装置から受信した前記複数の処理要求に応じた処理を構成する複数のジョブの実行順番を示すジョブ実行順番データと、前記複数のジョブの実行の進行状態を、前記集積回路に対して前記ジョブの実行に関する命令を発行する前の状態と発行した後の状態とを区別して示すステータスデータとを含むジョブ管理用データを、前記複数の処理要求のそれぞれについて生成する第１の工程と、
前記半導体回路が、前記第１の工程において生成された複数のジョブ管理用データから一つのジョブ管理用データを選択する第２の工程と、
前記半導体回路が、前記第２の工程において選択したジョブ管理用データの前記ステータスデータおよび前記ジョブ実行順番データに基づいて、次に実行を行うジョブを決定する第３の工程と、
前記半導体回路が、前記第３の工程において決定したジョブを実行し、当該ジョブの実行に応じて、前記選択したジョブ管理用データの前記ステータスデータを更新する第４の工程と、
を有し、
前記第４の工程は、
前記第３の工程において決定した前記ジョブの実行に関する命令を前記集積回路或いは前記通信装置に発行した後に、他の集積回路或いは他の通信装置から受信した処理要求に対応するジョブを選択して実行する第５の工程と、
前記第２の工程において選択したジョブ管理用データの前記ステータスデータが、前記命令を発行した後の状態を示している場合には、当該発行した命令に対応する処理結果を前記集積回路或いは前記通信装置から受信して当該選択したジョブ管理用データに書き込む第６の工程と、
を有するデータ処理方法。
【請求項２】
前記半導体回路が、前記第２の工程において選択したジョブ管理用データの前記ステータスデータを更新した後に、前記複数のジョブ管理データから一つのジョブ管理用データを選択する第７の工程
をさらに有する請求項１に記載のデータ処理方法。
【請求項３】
前記半導体回路が、前記処理要求に応じた処理を構成する全てのジョブの実行が終了した前記ジョブ管理用データを消去する第８の工程
をさらに有する請求項１に記載のデータ処理方法。
【請求項４】
前記第１の工程において、前記半導体回路が、前記集積回路との間でポーリングを行った後に、前記ジョブ管理用データを生成する
請求項１に記載のデータ処理方法。
【請求項５】
前記第１の工程において、前記半導体回路が、前記集積回路を用いて行う所定のサービスを提供する複数のサービス提供者にそれぞれ対応した複数のアプリケーションプログラムを実行し、前記処理要求に応じて、当該処理要求に対応する前記サービス提供者を特定し、前記特定したサービス提供者に対応したアプリケーションプログラムを実行するための前記ジョブ管理用データを生成する
請求項１に記載のデータ処理方法。
【請求項６】
前記半導体回路は、前記ジョブ管理用データに識別子を付け、当該識別子を用いて複数のジョブ管理用データを管理する
請求項１に記載のデータ処理方法。
【請求項７】
所定の手続き処理に用いられるデータを記憶する記憶部を有する複数の集積回路、或いは当該集積回路との間でデータ入出力を行う複数の通信装置から前記手続き処理に係わる複数の処理要求を受信してデータ処理を行う半導体回路であって、
前記複数の集積回路或いは前記複数の通信装置から受信した前記複数の処理要求に応じた処理を構成する複数のジョブの実行順番を示すジョブ実行順番データと、前記複数のジョブの実行の進行状態を、前記集積回路に対して前記ジョブの実行に関する命令を発行する前の状態と発行した後の状態とを区別して示すステータスデータとを含むジョブ管理用データを、前記複数の処理要求のそれぞれについて生成し、
生成した複数のジョブ管理用データから一つのジョブ管理用データを選択し、
選択したジョブ管理用データの前記ステータスデータおよび前記ジョブ実行順番データに基づいて、次に実行を行うジョブを決定し、
決定したジョブの実行に応じて、前記選択したジョブ管理用データの前記ステータスデータを更新し、
決定した前記ジョブの実行に関する命令を前記集積回路或いは前記通信装置に発行した後に、他の集積回路或いは他の通信装置から受信した処理要求に対応するジョブを選択して実行し、
前記選択したジョブ管理用データの前記ステータスデータが、前記命令を発行した後の状態を示している場合には、当該発行した命令に対応する処理結果を前記集積回路或いは前記通信装置から受信して当該選択したジョブ管理用データに書き込む
半導体回路。
【請求項８】
前記集積回路を用いて行う所定のサービスを提供する複数のサービス提供者にそれぞれ対応した複数のアプリケーションプログラムを実行し、前記処理要求に応じて、当該処理要求に対応する前記サービス提供者を特定し、前記特定したサービス提供者に対応したアプリケーションプログラムを実行するための前記ジョブ管理用データを生成する
請求項７に記載の半導体回路。
【請求項９】
前記集積回路は、カードに搭載されており、
前記通信装置は、前記カード内のデータを読み書きするデータリーダ・ライタである
請求項７に記載の半導体回路。
【請求項１０】
前記半導体回路は、耐タンパ性の半導体回路である
請求項７に記載の半導体回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の処理要求に応じた処理を柔軟かつ効率的に行うことができるデータ処理方法および半導体回路に関する。
【０００２】
【従来の技術】
現在、ＩＣカードを用いてインターネットなどのネットワークを介した取り引きを行う通信システムが開発されている。
このような通信システムでは、サーバ装置が、例えばＩＣカードのリーダ・ライタやＰＣ(Personal Computer) からＩＣカードを用いた処理要求を受け、ユーザ認証やデータの暗号化及び復号などの処理を行う。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述したような通信システムでは、多数のＩＣカードについての処理要求を同時あるいは短時間にサーバ装置が受けることが想定される。
この場合に、サーバ装置において、このような処理要求に効率的に応える必要がある。
また、サーバ装置は、複数の決済事業者に係わる手続き処理をそれぞれ行う複数のアプリケーションプログラムを実行し、処理要求に応じて、選択したアプリケーションプログラムを用いた処理を行う場合があるが、このような処理要求にも効率的に応える必要がある。
【０００４】
本発明は、多数の処理要求に応じた処理を効率的に行うことができるデータ処理方法および半導体回路を提供することを目的とする。
【０００５】
上述した目的を達成するために、本発明のデータ処理方法は、複数の処理要求に応じて所定のデータ処理を行う半導体回路と、前記半導体回路との間で行われる手続き処理に用いられるデータを記憶する記憶部を有する複数の集積回路、或いは当該集積回路との間でデータ入出力を行う複数の通信装置とを有するデータ処理システムにおいて、前記半導体回路が前記複数の集積回路或いは前記複数の通信装置から前記複数の処理要求を受信して行うデータ処理方法であって、前記半導体回路が、前記複数の集積回路或いは前記複数の通信装置から受信した前記複数の処理要求に応じた処理を構成する複数のジョブの実行順番を示すジョブ実行順番データと、前記複数のジョブの実行の進行状態を、前記集積回路に対して前記ジョブの実行に関する命令を発行する前の状態と発行した後の状態とを区別して示すステータスデータとを含むジョブ管理用データを、前記複数の処理要求のそれぞれについて生成する第１の工程と、前記半導体回路が、前記第１の工程において生成された複数のジョブ管理用データから一つのジョブ管理用データを選択する第２の工程と、前記半導体回路が、前記第２の工程において選択したジョブ管理用データの前記ステータスデータおよび前記ジョブ実行順番データに基づいて、次に実行を行うジョブを決定する第３の工程と、前記半導体回路が、前記第３の工程において決定したジョブを実行し、当該ジョブの実行に応じて、前記選択したジョブ管理用データの前記ステータスデータを更新する第４の工程と、を有し、前記第４の工程は、前記第３の工程において決定した前記ジョブの実行に関する命令を前記集積回路或いは前記通信装置に発行した後に、他の集積回路或いは他の通信装置から受信した処理要求に対応するジョブを選択して実行する第５の工程と、前記第２の工程において選択したジョブ管理用データの前記ステータスデータが、前記命令を発行した後の状態を示している場合には、当該発行した命令に対応する処理結果を前記集積回路或いは前記通信装置から受信して当該選択したジョブ管理用データに書き込む第６の工程と、を有する。
【０００６】
また、本発明の半導体回路は、所定の手続き処理に用いられるデータを記憶する記憶部を有する複数の集積回路、或いは当該集積回路との間でデータ入出力を行う複数の通信装置から前記手続き処理に係わる複数の処理要求を受信してデータ処理を行う半導体回路であって、前記複数の集積回路或いは前記複数の通信装置から受信した前記複数の処理要求に応じた処理を構成する複数のジョブの実行順番を示すジョブ実行順番データと、前記複数のジョブの実行の進行状態を、前記集積回路に対して前記ジョブの実行に関する命令を発行する前の状態と発行した後の状態とを区別して示すステータスデータとを含むジョブ管理用データを、前記複数の処理要求のそれぞれについて生成し、生成した複数のジョブ管理用データから一つのジョブ管理用データを選択し、選択したジョブ管理用データの前記ステータスデータおよび前記ジョブ実行順番データに基づいて、次に実行を行うジョブを決定し、決定したジョブの実行に応じて、前記選択したジョブ管理用データの前記ステータスデータを更新し、決定した前記ジョブの実行に関する命令を前記集積回路或いは前記通信装置に発行した後に、他の集積回路或いは他の通信装置から受信した処理要求に対応するジョブを選択して実行し、前記選択したジョブ管理用データの前記ステータスデータが、前記命令を発行した後の状態を示している場合には、当該発行した命令に対応する処理結果を前記集積回路或いは前記通信装置から受信して当該選択したジョブ管理用データに書き込む。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照して説明する。
図１は、本実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、サーバ装置２、ＩＣカード３、カードリーダ・ライタ４、パーソナルコンピュータ５、ＡＳＰ(Application Service Provider)サーバ装置６、ＳＡＭ(Secure Application Module) ユニット９を用いて、インターネット１０を介して通信を行ってＩＣカード３（本発明の集積回路）を用いた決済処理などの手続き処理を行う。
ＳＡＭユニット９は、外部メモリ７およびＳＡＭチップ（本発明の半導体回路）８を有する。
【００１９】
ＳＡＭチップ８は、図２に示すようなソフトウェア構成を有している。
図２に示すように、ＳＡＭチップ８は、下層から上層に向けて、ＨＷ(Hardware)層、ＯＳ層、下位ハンドラ層、上位ハンドラ層およびＡＰ層を順に有している。
下位ハンドラ層には、ドライバ層が含まれる。
ここで、ＡＰ層には、図１に示すクレジットカード会社などの事業者１５＿１，１５＿２，１５＿３によるＩＣカード３を用いた手続きを規定したアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３がある。
ＡＰ層では、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３相互間、並びに上位ハンドラ層との間にファイアウォールＦＷが設けられている。
【００２０】
アプリケーションプログラムＡＰ＿１は、外部メモリ７に記憶された後述するサービス定義テーブルデータ（対応指示データ）２０＿１およびスクリプトプログラム（動作記述プログラム）２１＿１によって規定される。
また、アプリケーションプログラムＡＰ＿２は、外部メモリ７に記憶された後述するサービス定義テーブルデータ２０＿２およびスクリプトプログラム２１＿２によって規定される。
また、アプリケーションプログラムＡＰ＿３は、外部メモリ７に記憶された後述するサービス定義テーブルデータ２０＿３およびスクリプトプログラム２１＿３によって規定される。
【００２１】
ＳＡＭチップ８は、ＳＣＳＩまたはＥｔｈｅｒｎｅｔなどを介してＡＳＰサーバ装置６に接続される。ＡＳＰサーバ装置６は、インターネット１０を介して、エンドユーザのパーソナルコンピュータ５、事業者１５＿１，１５＿２，１５＿３のパーソナルコンピュータ１６＿１，１６＿２，１６＿３を含む複数の端末装置に接続される。
パーソナルコンピュータ５は、例えば、シリアルまたはＵＳＢを介してＤｕｍｂ型のカードリーダ・ライタ４に接続されている。カードリーダ・ライタ４が、ＩＣカード３との間で物理レベルに相当する例え無線通信を実現する。
ＩＣカード３への操作コマンドおよびＩＣカード３からのリスポンスパケットは、ＳＡＭユニット９側で生成および解読される。よって、その中間に介在するカードリーダ・ライタ４、パーソナルコンピュータ５およびＡＳＰサーバ装置６は、コマンドやリスポンス内容をデータペイロード部分に格納して中継する役割を果たすのみで、ＩＣカード３内のデータの暗号化や復号および認証などの実操作には関与しない。
【００２２】
パーソナルコンピュータ１６＿１，１６＿２，１６＿３は、後述するスクリプトプログラムをＳＡＭチップ８にダウンロードすることで、それぞれアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３をカスタマイズできる。
【００２３】
以下、図１に示す構成要素について説明する。
〔ＩＣカード３〕
図３は、ＩＣカード３の機能ブロック図である。
図３に示すように、ＩＣカード３は、記憶部５０および処理部５１を備えたＩＣ(Integrated Circuit)３ａを有する。
記憶部５０は、図４に示すように、クレジットカード会社などの事業者１５＿１が使用する記憶領域５５＿１、事業者１５＿２が使用する記憶領域５５＿２、並びに事業者１５＿３が使用する記憶領域５５＿３を有する。
また、記憶部５０は、記憶領域５５＿１へのアクセス権限を判断するために用いられる鍵情報、記憶領域５５＿２へのアクセス権限を判断するために用いられる鍵情報、並びに記憶領域５５＿３へのアクセス権限を判断するために用いられる鍵情報を記憶している。当該鍵情報は、相互認証や、データの暗号化および復号などに用いられる。
また、記憶部５０は、ＩＣカード３あるいはＩＣカード３のユーザの識別情報を記憶している。
【００２４】
以下、ＳＡＭユニット９について詳細に説明する。
〔外部メモリ７〕
図５は、図１に示す外部メモリ７に記憶されるデータおよびプログラムを説明するための図である。
図５に示すように、外部メモリ７には、事業者１５＿１のサービス定義テーブルデータ２０＿１と、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１とが記憶されている。
また、外部メモリ７には、事業者１５＿２のサービス定義テーブルデータ２０＿２と、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿２とが記憶されている。
また、外部メモリ７には、事業者１５＿３のサービス定義テーブルデータ２０＿３と、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿３とが記憶されている。
サービス定義テーブルデータ２０＿１，２０＿２，２０＿３は、同じフォーマットを有している。
また、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１，２１＿２，２１＿３は、共通のマクロコマンドを用いて記述されている。
また、サービス定義テーブルデータ２０＿１，２０＿２，２０＿３およびＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１，２１＿２，２１＿３は、スクランブルされて外部メモリ７に記憶されている。当該スクランブルされたデータおよびプログラムは、ＳＡＭチップ８内でデスクランブルされる。
【００２５】
本実施形態では、スクリプトプログラム２１＿１，２１＿２，２１＿３は、それぞれ図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３を用いて、事業者１５＿１，１５＿２，１５＿３によって作成され、ＳＡＭチップ８を介して外部メモリ７にダウンロードされる。
また、サービス定義テーブルデータ２０＿１，２０＿２，２０＿３は、それぞれ事業者１５＿１，１５＿２，１５＿３からの指示を受けてＳＡＭユニット９の管理者によって作成される。
【００２６】
図６は、サービス定義テーブルデータ２０＿１を説明するための図である。
図６に示すように、サービス定義テーブルデータ２０＿１は、サービスタイプエレメント（操作名）、アドレス、サービス番号（操作コード）、鍵バージョン情報、並びに鍵情報のエントリを有している。
サービスタイプエレメントは、事業者１５＿１のアプリケーションプログラムによって提供されるサービスに付けられた名前を示す。サービスタイプエレメントは、事業者１５＿１のアプリケーションプログラムが使用できるサービスのサービス番号の替わりに参照される識別子である。
本実施形態では、図６に示すように、事業者１５＿１に対応するサービス定義テーブルデータ２０＿１のサービスタイプエレメントとしては、”Ｒｃ”、”Ｒｄ”、”Ｗｄ”および”Ｗｃ”が用されている。
本実施形態では、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１において、複数のサービスタイプエレメントを組み合せたサービス内容を規定し、これを後述するＩＣカードエンティティデータ（ジョブ管理用データ）に反映させることで、複数のサービスタイプエレメントに対応するサービスを組み合わせたをサービスを提供できる。
例えば、ＩＣカード３からデータ読出しを行うサービスと、サーバ装置２にデータ書込みを行うサービスとを組み合わせたサービスを、ＩＣカードエンティティデータ内に定義できる。
【００２７】
サービス定義テーブルデータ２０＿１内のサービス番号は、事業者１５＿１によって提供されるサービスを行う際に、ＩＣカード３に発行するＩＣカード３が解釈可能な操作コマンドである。
【００２８】
サービス定義テーブルデータ２０＿１内のアドレスは、対応するサービスタイプエレメントに係わる手続きに関するデータが記憶されているアドレスを示している。
サービス定義テーブルデータ２０＿１内の鍵バージョン情報は、当該サービスを提供するにあたって用いられる鍵情報のバージョンを示している。
サービス定義テーブルデータ２０＿１内の鍵情報は、当該サービスを提供するあたって用いられる鍵情報である。
例えば、サービス定義テーブルデータ２０＿１では、図３に示すＩＣカード３のＩＣ３ａの記憶領域５５＿１にアクセスが行われる際に用いられる鍵情報が設定されている。
また、サービス定義テーブルデータ２０＿２では、ＩＣ３ａの記憶領域５５＿２にアクセスが行われる際に用いられる鍵情報が設定されている。
また、サービス定義テーブルデータ２０＿３では、ＩＣ３ａの記憶領域５５＿３にアクセスが行われる際に用いられる鍵情報が設定されている。
【００２９】
以下、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１について説明する。
スクリプトプログラム２１＿１は、ＳＡＭチップ８上で動作する事業者１５＿１のアプリケーションプログラム、並びに当該アプリケーションプログラムの実行時にＩＣカード３が行う処理の手続きを規定するためのプログラムである。
本実施形態では、後述するように、図７に示すように、ＳＡＭチップ８内で、サービス定義テーブルデータ２０＿１およびスクリプトプログラム２１＿１を用いて、事業者１５＿１に関する手続きに用いられるＩＣカードエンティティテンプレートデータ３０＿１、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４が生成される。
【００３０】
図８は、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１，２１＿２，２１＿３の記述に用いられるコマンドを説明するための図である。
当該コマンドは、ＳＡＭチップ８自身に対してのコマンドは、第１文字が「Ｓ」となり、ＩＣカード３の操作に係わるコマンドは第１文字が「Ｃ」となっている。
また、第２文字は、用途により使い分けられ、例えば、ＩＣカード３の発行元設定宣言は「Ｉ」、サービスタイプエレメント宣言は「Ｓ」、ＩＣカード３からの単純読み込み宣言は「Ｒ」、ＩＣカード３への単純書き込み宣言は「Ｗ」、サービスタイプエレメント間演算定義は「Ｆ」になっている。
【００３１】
スクリプトプログラム２１＿１，２１＿２，２１＿３の記述に用いられるコマンドには、ＳＣコマンド、ＳＯコマンド、ＳＩコマンド、ＳＬコマンド、ＳＦコマンド、ＣＩコマンド、ＣＳコマンド、ＣＲコマンド、ＣＷコマンドがある。
ＳＣコマンドは、ＳＡＭチップ８が同時に処理することができる最大数のＩＣカードエンティティデータの数を宣言するコマンドである。
例えば、ＳＡＭチップ８が１０００個のＩＣカードエンティティデータを同時に処理可能な場合には、「ＳＣ：１０００」と記述される。
【００３２】
ＳＯコマンドは、後述するＩＣカードエンティティデータに基づいてＩＣカード３を用いた処理を行う際に、ＳＡＭチップ８内で用意されたデータブロックのうち、ＩＣカード３から読み取ったデータが格納される出力用データブロック３２＿ｘ２となるデータブロックを宣言するコマンドである。
例えば、データブロック１〜１０が用意されている場合に、ＩＣカード３から読み取ったデータをデータブロック１に格納する場合には、「ＳＯ：１」と記述される。
【００３３】
ＳＩコマンドは、後述するＩＣカードエンティティデータに基づいてＩＣカード３を用いた処理を行う際に、ＳＡＭチップ８内で用意されたデータブロックのうち、ＩＣカード３に書き込むデータが格納される入力用データブロック３１＿ｘ１となるデータブロックを宣言するコマンドである。
例えば、データブロック１〜１０が用意されている場合に、ＩＣカード３に書き込むデータをデータブロック２，３に格納する場合には、「ＳＩ：２，３」と記述される。
【００３４】
ＳＬコマンドは、後述するＩＣカードエンティティデータに基づいてＩＣカード３を用いた処理を行う際に、ＳＡＭチップ８内で用意されたデータブロックのうち、操作に係わるログデータを格納するログ用データブロック３３＿ｘ３となるデータブロックを宣言するコマンドである。
例えば、データブロック１〜１０が用意されている場合に、ログデータをデータブロック４に格納する場合には、「ＳＬ：４」と記述される。
【００３５】
ＳＦコマンドは、ＩＣカード３に係わる相互のサービスタイプエレメント間の関係を定義を記述する演算定義用データブロック３４＿ｘ４となるデータブロックを用意するためのコマンドである。
演算定義用データブロック３４＿ｘ４の内容は、ＩＣカードエンティティデータの処理前情報となる。
【００３６】
ＣＩコマンドは、ＩＣカード３の発行元（事業者）を宣言するためのコマンドである。
ＣＩコマンドで定義された事業者を特定する情報は、ＩＣカードエンティティデータのＩＣカード種別情報となる。
【００３７】
ＣＳコマンドは、サービスタイプエレメントを引用して、ＩＣカード３への複数のサービスの同時操作を行うことを宣言するコマンドである。ＣＳコマンドでは、さらに、サービスタイプエレメント間の演算を規定する関数を宣言できる。
例えば、「ＣＳ：”Ｒｃ”＋”Ｗｃ”＋”Ｗｄ”」などの宣言を行える。
ＣＳコマンドの内容に基づいて、ＩＣカードエンティティデータのサービスタイプエレメント指定情報、並びに処理順番情報が決定される。
【００３８】
ＣＲコマンドは、サービスタイプエレメント間の関係の定義が行われていない場合（ＳＦコマンドが記述されていない場合）に、ＩＣカード３から読み出したデータを指定したデータブロックに格納することを宣言する。
例えば、ＩＣカード３から読み出したデータをデータブロック１に格納する場合には「ＣＲ：ＳＯ：１＝”Ｒｃ”」と記述する。
【００３９】
ＣＷコマンドは、サービスタイプエレメント間の関係の定義が行われていない場合に、指定したデータブロックに格納したデータをＩＣカード３に書き込むことを宣言する。
例えば、データブロック２に格納されたデータをＩＣカード３に書き込む場合には「ＣＷ：ＳＩ：２＝”Ｗｃ”」と記述する。
【００４０】
ＣＦコマンドは、サービスを跨がった演算内容を記述するデータブロックを宣言する。
例えば、サービスを跨がった演算内容をＳＦデータブロック１に記述する場合には、ＣＦ：ＣＥＳ＿ＦＵＮＣ＝ＳＦ：１」とする。
そして、ＳＦデータブロック１内に、例えば、「“Ｗｃ”＝Ｉｆ（“Ｗｃ”＞１０）ｔｈｅｎ（“Ｗｃ”−１０；“Ｗｄ”＝“Ｗｃ”＊０．０８＋“Ｗｄ”）」と記述する。本式は、サービスＷｃの残数が１０よりも大きいときにＷｃの値を１０減算し、Ｗｃの８％に相当するポイント数として蓄積ポイントとしてＷｄに加算する操作を表現している。
【００４１】
〔ＳＡＭチップ８〕
図９は、図１に示すＳＡＭチップ８の機能ブロック図である。
図９に示すように、ＳＡＭチップ８は、ＡＳＰＳ通信インタフェース部６０、外部メモリ通信インタフェース部６１、バススクランブル部６２、乱数発生部６３、暗号・復号部６４、記憶部６５およびＣＰＵ６６を有する。
ＳＡＭチップ８は、耐タンパ性のモジュールである。
【００４２】
ＡＳＰＳ通信インタフェース部６０は、図１に示すＡＳＰサーバ装置６との間のデータ入出力に用いられるインタフェースである。
外部メモリ通信インタフェース部６１は、外部メモリ７との間のデータ入出力に用いられるインタフェースである。
バススクランブル部６２は、外部メモリ通信インタフェース部６１を介してデータを入出力する際に、出力するデータをスクランブルし、入力したデータをデスクランブルする。
乱数発生部６３は、認証処理を行う際に用いられる乱数を発生する。
暗号・復号部６４は、データの暗号化、並びに暗号化されたデータの復号を行う。
記憶部６５は、後述するように、ＣＰＵ６６によって用いられるタスク、プログラム、並びにデータを記憶する。
ＣＰＵ６６は、後述するスクリプトダウンロードタスク、スクリプト解釈タスク、エンティティ生成タスク（ジョブ管理用データ作成タスク）およびＩＣカード手続管理タスク（ジョブ管理用データ管理タスク）などのタスクを実行する。
【００４３】
以下、記憶部６５に記憶されるタスク、プログラムおよびデータについて説明する。
図１０は、記憶部６５に記憶されるタスク、プログラムおよびデータを説明するための図である。
図１０に示すように、スクリプトダウンロードタスク６９、スクリプト解釈タスク７０、エンティティ生成タスク７１、ＩＣカード手続管理タスク７２、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１〜２１＿３、サービス定義テーブル２０＿１〜２０＿３、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３、ＩＣカードエンティティデータ７３＿ｘ、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３、並びに演算定義用データブロック３４＿ｘ４を記憶している。
【００４４】
スクリプトダウンロードタスク６９は、図７に示すように、サービス定義テーブルデータ２０＿１〜２０＿３を、例えば、各事業者のコンピュータからダウンロードし、これをＳＡＭチップ８に取り込む。
【００４５】
スクリプト解釈タスク７０は、各事業者毎に、サービス定義テーブルデータおよびスクリプトプログラムを用いて、ＩＣカードエンティティプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックを生成する。
各事業者毎に生成されるデータブロックの数は特に限定されない。
【００４６】
エンティティ生成タスク７１は、例えば、ＡＳＰサーバ装置６からエンティティ作成要求を受けると、ＩＣカード３との間でポーリングを行った後に、当該ＩＣカード３と事業者との間の手続き処理に用いるＩＣカードエンティティデータを、当該事業者に対応するＩＣカードエンティティプレートデータを用いて生成する。このとき、ＩＣカードエンティティプレートデータがクラスとなり、当該クラスのインスタンスとして、ＩＣカードエンティティデータが生成される。
エンティティ生成タスク７１によるＩＣカードエンティティデータの生成処理について後に詳細に説明する。
【００４７】
ＩＣカード手続管理用タスク７２は、記憶部６５内に存在する単数または複数のＩＣカードエンティティデータ７３＿ｘを用いて、ＩＣカード３と事業者１５＿１〜１５＿３との間の手続き処理を実行する。
本実施形態では、複数のＩＣカード３と事業者１５＿１〜１５＿３との間で行われる複数の手続き処理が同時に進行する。
ＩＣカード手続管理用タスク７２は、これら複数の手続き処理を並行して実行する。
ＩＣカード手続管理用タスク７２は、一連の手続きを終了したＩＣカードエンティティデータ７３＿ｘを消去する。
ＩＣカード手続管理用タスク７２の処理については後に詳細に説明する。
【００４８】
スクリプトプログラム２１＿１〜２１＿２は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、記憶部６５に記憶される。
サービス定義テーブルデータ２０＿１〜２０＿３は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、記憶部６５に記憶される。
【００４９】
ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３は、スクリプト解釈タスク７０によって生成され、それぞれの事業者に関する手続きのＩＣカードエンティティデータ７３＿ｘを生成する際のテンプレート（クラス）として用いられる。
ＩＣカードエンティティデータ７３＿ｘは、エンティティ生成タスク７１によって、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３を例えばクラスとして用い、当該クラスのインスタンスとして生成される。
【００５０】
入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４は、スクリプト解釈タスク７０によって生成される。
【００５１】
以下、ＩＣカードエンティティデータ７３＿ｘについて説明する。
ＩＣカードエンティティデータ７３＿ｘは、例えば、ＡＳＰサーバ装置６からＩＣカード３と所定の事業者のアプリケーションプログラムを用いた処理の処理要求をＳＡＭチップ８が受けたときに、ＳＡＭチップ８内のエンティティ生成タスク７１が、既に生成されている対応する事業者のＩＣカードエンティティテンプレートデータを用いて生成する。
【００５２】
図１１は、ＩＣカードエンティティデータ７３＿ｘのフォーマットを説明するための図である。
図１１に示すように、ＩＣカードエンティティデータ７３＿ｘは、管理用ポインタ情報８０、エンティティＩＤ情報８１、エンティティステータス情報（ステータスデータ）８２、ＩＣカード種別情報８３、サービスタイプエレメント指定情報８４、処理順番情報（処理順番データ）８５、処理前情報８６および処理後情報８７を有する。
【００５３】
管理用ポインタ情報８０には、記憶部６５内でＩＣカードエンティティデータ７３＿ｘを管理するための双方向ポインタである。
エンティティＩＤ情報８１は、ＩＣカードエンティティデータ７３＿ｘの生成要求、進行状況の確認、削除などのＩＣカードエンティティデータ７３＿ｘを用いた一連の処理に用いられる。エンティティＩＤ情報８１は、エンドユーザに渡される返り値ともなる。エンティティＩＤ情報８１は一般的なファイルシステム上のファイルオープン時のディスクリプタに相当する。
【００５４】
エンティティステータス情報８２は、ＩＣカード３に関する手続きの進行状態を示す。
ＩＣカードエンティティデータ７３＿ｘが持つ基本的な状態には、図１２に示すように、ＩＣカード３が利用できるサービスを調べる処理の状態（ＲＳ）、ＳＡＭチップ８がＩＣカード３を認証する処理の状態（Ａ１）、ＩＣカード３がＳＡＭチップ８を認証する処理の状態（Ａ２）、ＩＣカード３からデータ読み出す処理の状態（Ｒ）、ＩＣカード３にデータ書き込む処理の状態（Ｗ）がある。
本実施形態では、事業者を調べる処理、ＳＡＭチップ８がＩＣカード３を認証する処理、ＩＣカード３がＳＡＭチップ８を認証する処理、ＩＣカード３からデータ読み出す処理、並びにＩＣカード３にデータ書き込む処理のそれぞれがジョブに対応している。
当該ジョブは、後述するように、ＩＣカード手続管理用タスク７２によって、実行順番が決定される処理の単位になる。
なお、Ａ１，Ａ２によって、ＩＣカード３とＳＡＭチップ８との間の相互認証処理が構成される。
【００５５】
また、本実施形態では、インターネット１０での通信時間を考慮して、前述した各基本的な状態を図１２の状態遷移図に示されるように、起動後（コマンド発行後）の状態と完了（応答受け取り後）状態とに分けて管理する。
具体的には、インスタンス生成（ＩＣカードエンティティデータ生成）状態、ＲＳ起動後状態、ＲＳ完了状態、Ａ１起動後状態、Ａ１完了状態、Ａ２起動後状態、Ａ２完了状態、Ｒ起動状態、Ｒ完了状態、Ｗ起動状態、Ｗ完了状態、並びにインスタン（ＩＣカードエンティティデータ）消去状態によって、ＩＣカードエンティティデータ７３＿ｘを用いた処理状態が管理される。
【００５６】
ＩＣカード種別情報８３は、当該ＩＣカード３を発行した事業者を特定する情報である。
ＩＣカード種別情報８３には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のＣＩコマンドによって規定された情報が設定される。
【００５７】
サービスタイプエレメント情報８４は、ＩＣカードエンティティデータ７３＿ｘを用いた処理で利用する、サービス定義テーブルデータ内で定義されたサービスのサービスタイプエレメントを示す。
サービスタイプエレメント情報８４には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のＣＳコマンドで指定された単数または複数のサービスタイプエレメントが設定される。
【００５８】
処理順番情報８５は、ＩＣカードエンティティデータ７３＿ｘを用いた処理で利用するサービス（ジョブ）を実行する順番、すなわち、図１２に示す遷移状態を示す。
すなわち、処理順番情報８５は、サービスタイプエレメントを用いて、ＩＣカード３の基本的な操作に対応するジョブの実行順番を示す。
ここで、ジョブは、前述したように、図１２に示すＲＳ，Ａ１，Ａ２，Ｒ，Ｗに相当する。ＩＣカード３への具体的操作は、ジョブを用いて指定された処理順番により実現される。例えば、相互認証無しの読み込みのみのＩＣカード３を用いた処理については、処理順番情報８５には「ＲＳ→Ｒ」が設定される。また、相互認証有りの読み込みおよび書き込みの場合には、処理順番情報８５には、「ＲＳ→Ａ１→Ａ２→Ｒ→Ｗ」が設定される。
処理順番情報８５には、ＩＣカードエンティティデータ７３＿ｘの生成時に、前述したスクリプトプログラム内のＣＳコマンド内で指定されたサービスエレメントの順番に対応する図１２に示すジョブの順番が設定される。
【００５９】
処理前情報８６には、ＡＳＰサーバ装置６側から、ＩＣカードエンティティデータ７３＿ｘを用いた処理を行うための管理用データが設定される。
例えば、処理前情報８６には、ＳＦデータブロック内に指定されたサービスの演算式のポイントが設定される。
また、サービス間演算機能が定義されていない場合には、処理前情報８６には、要求処理金額が設定される。
例えば、決済の場合であれば、課金額や付与ポイント数などに関する状態が設定される。
【００６０】
処理後情報８７は、ＡＳＰサーバ装置６側で必要な、ＩＣカードエンティティデータ７３＿ｘの処理結果のデータが設定される。例えば決済の場合であれば、決済の正常終了の有無などを示すデータが設定される。
【００６１】
以下、図１０に示すＩＣカード手続管理用タスク７２による、複数のＩＣカードエンティティデータ７３＿ｘを用いて、複数のＩＣカード３に係わる処理を行う手順を説明する。
ＩＣカード手続管理用タスク７２は、例えば、図９に示すＳＡＭチップ８のＣＰＵ６６上で常に起動されている。
図１３は、ＩＣカード手続管理用タスク７２が行う処理のフローチャートである。
ステップＳＴ１：
ＩＣカード手続管理用タスク７２は、記憶部６５内に存在する複数のＩＣカードエンティティデータ７３＿ｘのうち、次に処理を実行する一つのＩＣカードエンティティデータ７３＿ｘを選択する。
当該ＩＣカードエンティティデータ７３＿ｘの選択方法は、記憶部６５内に存在するＩＣカードエンティティデータ７３＿ｘを順番に選択してもよいし、優先順位を付けて高い優先順位のものを優先的に選択してもよい。
【００６２】
、
ステップＳＴ２：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘのジョブが既に起動されているか否かを判断し、起動されていると判断した場合にはステップＳＴ５の処理に進み、起動されていないと判断した場合にはステップＳＴ３の処理に進む。
【００６３】
ステップＳＴ３：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘの図１１に示すエンティティステータス情報８２から、当該エンティティデータに関する処理が図１２に示す状態遷移図の何れの状態にあるかを判断し、処理順番情報８５から、次に実行するジョブを決定する。
このとき処理順番情報８５には、前述したように、サービス定義テーブルデータに設定されたサービスエレメントを用いてジョブの実行順番が規定されている。
【００６４】
ステップＳＴ４：
ＩＣカード手続管理用タスク７２は、ステップＳＴ３で選択したジョブを起動する。
ＩＣカード手続管理用タスク７２は、図７を用いて前述した入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４のうち、当該ジョブに関係するデータブロックを用いて当該ジョブを実行する。
【００６５】
このとき、ＩＣカード手続管理用タスク７２は、ジョブの実行に当たってＩＣカード３にコマンドを発行する場合に、当該ジョブに対応するサービスエレメントをキーとしてサービス定義テーブルデータを検索し、当該サービスエレメントに対応するサービス番号（ＩＣカード３が解釈可能なＩＣカード３の操作コマンド）を得る。そして、ＩＣカード手続管理用タスク７２は、当該得られたサービス番号を用いてＩＣカード３にコマンドを発行する。
また、ＩＣカード手続管理用タスク７２は、図４を用いて説明したように、ＩＣカード３のＩＣ３ａの記憶領域へのアクセスに鍵情報が必要な場合には、当該ジョブに対応するサービスエレメントをキーとしてサービス定義テーブルデータを検索し、当該サービスエレメントに対応する鍵情報を得る。そして、ＩＣカード手続管理用タスク７２は、当該鍵情報を用いて、ＩＣカード３との間で相互認証、データの暗号化および復号などの処理を行い、ＩＣカード３の所定の記憶領域にアクセスを行う権限を得る。
【００６６】
ステップＳＴ５：
ステップＳＴ５が行われるのは、ＩＣカード手続管理用タスク７２が、ＩＣカード３にコマンドを発行し、ＩＣカード３の処理結果を待っているときである。
ＩＣカード手続管理用タスク７２は、ＩＣカード３から処理結果を受け取ると、これをＩＣカードエンティティデータ７３＿ｘに設定する。
【００６７】
ステップＳＴ６：
ＩＣカード手続管理用タスク７２は、図１１に示すＩＣカードエンティティデータ７３＿ｘのエンティティステータス情報８２を更新する。
【００６８】
このように、本実施形態では、ＩＣカード手続管理用タスク７２によって、ＳＡＭチップ８内に存在する複数のＩＣカード３についてのＩＣカードエンティティデータ７３＿ｘを順に選択しながら、複数のＩＣカード３についての処理を並行して行う。そのため、ＳＡＭチップ８は、複数のＩＣカード３を用いた手続きの処理要求を受けた場合でも、これらの処理を同時に進行することができる。
【００６９】
以下、図１に示す通信システム１の全体動作について説明する。
図１４および図１５は、図１に示す通信システム１の全体動作を説明するための図である。
【００７０】
ステップＳＴ２１：
事業者１５＿１〜１５＿３あるいはこれら事業者の依頼を受けた者が、当該事業者がＩＣカード３を用いて行う取り引きについての処理を記述したスクリプトプログラム２１＿１，２１＿２，２１＿３を、例えば、図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３上で作成する。
また、ＳＡＭチップ８の管理者が、事業者１５＿１〜１５＿３のそれぞれに対応するサービス定義テーブルデータ２０＿１，２０＿２，２０＿３を作成する。
【００７１】
ステップＳＴ２２：
ステップＳＴ２１で作成されたサービス定義テーブルデータ２０＿１，２０＿２，２０＿３が外部メモリ７に記憶される。
また、ステップＳＴ２１で作成されたスクリプトプログラム２１＿１，２１＿２，２１＿３が、パーソナルコンピュータ１６＿１，１６＿２，１６＿３から、インターネット１０、ＡＳＰサーバ装置６およびＳＡＭチップ８を介して、外部メモリ７にダウンロードされる。当該ダウンロードの処理は、図７に示すように、ＳＡＭチップ８内のスクリプトダウンロードタスク６９によって管理される。
【００７２】
ステップＳＴ２３：
図７に示すＳＡＭチップ８内のスクリプト解釈タスク７０によって、各事業者毎に、サービス定義テーブルデータおよびスクリプトプログラムを用いて、ＩＣカードエンティティプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックが生成される。
これら生成されたデータは、図９に示すＳＡＭチップ８の記憶部６５に格納される。
【００７３】
ステップＳＴ２４：
ユーザにＩＣカード３が発行される。
図４に示すように、ＩＣカード３のＩＣ３ａには、ユーザが契約を行った事業者との取り引きに用いられる鍵情報が記憶されている。
なお、ユーザと事業者との間の契約は、ＩＣカード３の発行後に、インターネット１０などを介して行ってもよい。
【００７４】
ステップＳＴ２５：
例えば、ユーザがパーソナルコンピュータ５を用いてインターネット１０を介してサーバ装置２にアクセスを行い、商品を購入しようとした場合に、サーバ装置２がインターネット１０を介してＡＳＰサーバ装置６に処理要求を出す。
ＡＳＰサーバ装置６は、サーバ装置２から処理要求を受けると、インターネット１０を介してパーソナルコンピュータ５にアクセスを行う。そして、図１６（Ａ）に示すように、カードリーダ・ライタ４が出したＩＣカード３についての処理要求が、パーソナルコンピュータ５、インターネット１０およびＡＳＰサーバ装置６を介してＳＡＭチップ８に送信される。
【００７５】
ステップＳＴ２６：
ＡＳＰサーバ装置６からＳＡＭチップ８にエンティティ作成要求が出される。
当該エンティティ作成要求には、ＩＣカード３の発行元を示す情報が格納されている。
【００７６】
ステップＳＴ２７：
ＳＡＭチップ８は、エンティティ作成要求を受けると、図１６（Ｂ）に示すように、ＩＣカード３との間でポーリングを行う。
【００７７】
ステップＳＴ２８：
ＳＡＭチップ８のエンティティ生成タスク７１は、ポーリング終了後に、ＳＡＭチップ８内に存在するＩＣカードエンティティデータ７３＿ｘの数が、スクリプトプログラムのＳＣコマンドによって規定された最大数以内であるか否かを判断し、最大数以内であればステップＳＴ２９の処理に進み、そうでない場合には処理を終了する。
【００７８】
ステップＳＴ２９：
エンティティ生成タスク７１が、例えば、エンティティ作成要求に格納されたＩＣカード３の発行元を示す情報に基づいて、何れの事業者のＩＣカードエンティティプレートデータを用いるかを特定し、当該特定したＩＣカードエンティティプレートデータ用いて、ＩＣカードエンティティデータ７３＿ｘを生成する。
これは、図１２に示すインスタンス生成に対応している。
【００７９】
ステップＳＴ３０：
ＳＡＭチップ８からＡＳＰサーバ装置６に、ステップＳＴ２９で生成したＩＣカードエンティティデータ７３＿ｘのエンティティＩＤが出力される。
【００８０】
ステップＳＴ３１：
ＳＡＭチップ８のＩＣカード手続管理用タスク７２によって、ＩＣカード３で利用可能なサービスが調べられる。
これは、図１２に示すジョブＲＳに対応した処理である。
【００８１】
ステップＳＴ３２：
ＳＡＭチップ８のＩＣカード手続管理用タスク７２がＩＣカード３の正当性を認証する。
これは、図１２に示すジョブＡ１に対応した処理である。
【００８２】
ステップＳＴ３３：
ＩＣカード３がＳＡＭチップ８の正当性を認証する。
これは、図１２に示すジョブＡ２に対応した処理である。
ステップＳＴ３２，ＳＴ３３によって、ＩＣカード３とＳＡＭチップ８との間の相互認証が行われる。これは、図１６（Ｃ）に対応している。
【００８３】
ステップＳＴ３４：
ＳＡＭチップ８のＩＣカード手続管理用タスク７２が、ＩＣカード３との間で、手続きに必要なデータの読み書きを行う。
これは、図１２に示すジョブＲ，Ｗ、並びに図１６（Ｄ），（Ｅ）に対応した処理である。
また、ＩＣカード手続管理用タスク７２は、ＩＣカードエンティティデータ７３＿ｘの処理前情報８６に基づいて特定した演算式を用いて、ＩＣカード３から読み出したデータを用いて所定の演算処理を行う。
【００８４】
ステップＳＴ３５：
図１６（Ｆ）に示すように、ＳＡＭチップ８のＩＣカード手続管理用タスク７２が、ステップＳＴ３４の処理結果をＡＳＰサーバ装置６に出力する。
【００８５】
ステップＳＴ３６：
例えば、ＩＣカード手続管理用タスク７２が、ＩＣカードエンティティデータ７３＿ｘを消去する。
【００８６】
以上説明したように、通信システム１によれば、ＩＣカード３との間で発生する手続き処理毎にＩＣカードエンティティデータ７３＿ｘを生成し、ＩＣカード手続管理用タスク７２によって、複数のＩＣカードエンティティデータ７３＿ｘを用いて、複数のＩＣカード３についての処理を同時に進行することができる。
また、認証システム１によれば、ＩＣカード３についての処理に実際に用いられているＩＣカードエンティティデータ７３＿ｘを記憶部６５に記憶すれば良いため、記憶部６５の記憶領域を効率的に利用できる。
また、認証システム１によれば、図１２に示すように、ＩＣカード手続管理用タスク７２が処理するジョブの実行状態を、起動後状態と完了状態とに分離して管理するため、一のジョブの実行を開始後にＩＣカード３からのデータを待っている状態で、他のジョブに関する処理を開始できる。そのため、インターネット１０を介してＩＣカード３との間でデータを送受信することによる待ち時間を無くすことができる。
【００８７】
また、認証システム１によれば、サービス定義テーブルデータ内に、各事業者が提供するサービスの種類を示す名前であるサービスタイプエレメント、ＩＣカード３内で用いられる当該サービスの番号、並びに当該サービスを提供するに際に用いられる鍵情報をサービス定義テーブルデータ内に記述し、これを外部メモリ７に保持する。そのため、ＳＡＭチップ８の開発者でない、事業者１５＿１〜１５＿３が、ＳＡＭチップ８上で動作する自らのアプリケーションプログラムを、スクリプトプログラム２１＿１，２１＿２，２１＿３を作成してＳＡＭチップ８を介して外部メモリ７にダウンロードすることでカスタマイズできる。すなわち、鍵情報やＩＣカード３を直接操作する操作コマンドなどの秘匿性の高い情報を事業者１５＿１〜１５＿３に知らせることなく、これらの事業者が自らのアプリケーションプログラムをカスタマイズできる。また、事業者は、アプリケーションプログラムをカスタマイズする際に、鍵情報やカード操作用コマンドを知る必要がないため、事業者の負担が軽減される。
また、認証システム１によれば、複数のサービスにまたがった処理内容を定義できるため、ＩＣカード３側で許容されると同時に実行されるサービスの範囲内で、複数のサービスを組み合わせた多様なサービスを提供できる。
また、認証システム１によれば、データブロックの概念を導入することで、ＩＣカード３との間で入出力されるデータ、並びにログデータの管理が容易に行える。
【００８８】
図１７は、図９に示すＳＡＭチップ８の機能ブロックをより具体的にした機能ブロック図である。
図９に示すように、ＳＡＭチップ８は、内部バス９０を介して、ＡＳＰＳ通信インタフェース部６０、外部メモリ通信インタフェース部６１、バススクランブル部６２、乱数発生部６３、暗号・復号部６４、記憶部６５およびＣＰＵ６６が接続されている。
【００８９】
図１７に示すＳＡＭチップ８では、例えば図１８に示すように、内部バス９０に接続されたカードＩ／Ｆ部９１を、ＳＡＭチップ８の外部のＲＦ送受信部９２に接続し、ＲＦ送受信部９２のアンテナ９２ａを介して、ＩＣカード３との間で非接触方式でデータを送受信してもよい。
【００９０】
【発明の効果】
以上説明したように、本発明によれば、多数の処理要求に応じた処理を効率的に行うことができるデータ処理方法および半導体回路を提供できる。
【図面の簡単な説明】
【図１】図１は、本発明の実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すＳＡＭチップのソフトウェア構成を説明するための図である。
【図３】図３は、図１に示すＩＣカードのＩＣの機能ブロック図である。
【図４】図４は、図３に示す記憶部に記憶される情報を説明するための図である。
【図５】図５は、図１に示すＳＡＭユニットの外部メモリに記憶されている情報を説明するための図である。
【図６】図６は、図５に示すサービス定義テーブルデータを説明するための図である。
【図７】図７は、図５に示すサービス定義テーブルデータおよびスクリプトプログラムを用いたＳＡＭチップ内の処理を説明するための図である。
【図８】図８は、スクリプトプログラムで用いられるコマンドを説明するための図である。
【図９】図９は、図１に示すＳＡＭチップの機能ブロック図である。
【図１０】図１０は、図９に示す記憶部に記憶されるデータを説明するための図である。
【図１１】図１１は、ＳＡＭチップで生成されるＩＣカードエンティティデータのフォーマットを説明するための図である。
【図１２】図１２は、図１１に示すＩＣカードエンティティデータの状態遷移図である。
【図１３】図１３は、図１０に示すＩＣカード手続管理タスクの処理手順を説明するための図である。
【図１４】図１４は、図１に示す通信システムの全体動作を説明するための図である。
【図１５】図１５は、図１に示す通信システムの全体動作を説明するための図である。
【図１６】図１６は、ＩＣカードとＳＡＭチップとの間の通信プロトコルを説明するための図である。
【図１７】図１７は、図９に示すＳＡＭチップの機能ブロックをより具体的にした機能ブロック図である。
【図１８】図１８は、ＳＡＭチップのその他の使用形態を説明するための図である。
【符号の説明】
１…通信システム、２…サーバ装置、３…ＩＣカード、４…カードリーダ・ライタ、５…パーソナルコンピュータ、６…ＡＳＰサーバ装置、７…外部メモリ、８…ＳＡＭチップ、９…ＳＡＭユニット、１０…インターネット、１５＿１，１５＿２，１５＿３…クレジットカード事業者、１６＿１，１６＿２，１６＿３…パーソナルコンピュータ
【図１】
0004670158.tif 000002
【図２】
0004670158.tif 000003
【図３】
0004670158.tif 000004
【図４】
0004670158.tif 000005
【図５】
0004670158.tif 000006
【図６】
0004670158.tif 000007
【図７】
0004670158.tif 000008
【図８】
0004670158.tif 000009
【図９】
0004670158.tif 000010
【図１０】
0004670158.tif 000011
【図１１】
0004670158.tif 000012
【図１２】
0004670158.tif 000013
【図１３】
0004670158.tif 000014
【図１４】
0004670158.tif 000015
【図１５】
0004670158.tif 000016
【図１６】
0004670158.tif 000017
【図１７】
0004670158.tif 000018
【図１８】
0004670158.tif 000019