(57)【要約】【課題】発行工程において、不具合カードが発生したら、発生原因、日付、場所などを特定するための情報をカード閉塞時でも確実に取得できるＩＣチップを提供すること。【解決手段】リーダライタとの間で通信コマンドを送受信して発行工程を実行する発行手段と、前記発行手段がリーダライタと送受信した前記通信コマンドを可逆演算する可逆演算ロジックにより演算して演算結果を得る可逆演算手段と、前記可逆演算手段による演算結果をＡＴＲ情報の一部として記録するＡＴＲ情報記録手段とを備えることを特徴するＩＣチップである。【選択図】図２
2017200064.tif 000002
【特許請求の範囲】
【請求項１】
リーダライタとの間で通信コマンドを送受信して発行工程を実行する発行手段と、
前記発行手段がリーダライタと送受信した前記通信コマンドを可逆演算する可逆演算ロジックにより演算して演算結果を得る可逆演算手段と、
前記可逆演算手段による演算結果をＡＴＲ情報の一部として記録するＡＴＲ情報記録手段とを備えることを特徴するＩＣチップ。
【請求項２】
２つの認証モードを設定可能であって、カードへの情報の追加・変更・削除をするアクセスおよび該情報を読み出しするアクセスに対し、前記２つの認証モードのいずれであるかに応じて、許可または不許可の制御をするアクセス管理手段と、
前記発行手段における発行処理に平行して、前記発行手段がリーダライタと送受信した前記通信コマンドを記録する通信コマンド記録手段とを備え、
前記アクセス管理手段は、前記通信コマンド記録手段による通信コマンドの記録を第１の認証モードにおいてのみ許可し、カード閉塞時には、第１の認証モードによるアクセスは不許可としつつ、第２の認証モードにおいて、前記情報の読み出しをするアクセスを許可することを特徴とする請求項１記載のＩＣチップ。
【請求項３】
請求項１または２に記載のＩＣチップとの間で通信コマンドを送受信するリーダライタであって、
前記ＩＣチップに記録されたＡＴＲ情報を取得するＡＴＲ情報取得手段と、
前記取得したＡＴＲ情報の一部を逆演算ロジックにより演算して、演算結果を得る逆演算手段とを備えることを特徴とするリーダライタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＣチップに関する。さらに詳細には、ＩＣカード発行工程において、不具合カードが発生したら、不具合の発生原因、発生日付、発生場所などを確実に特定するための情報が取得できるＩＣチップに関する。
【背景技術】
【０００２】
ＩＣカードの発行工程は、０次、１次、２次発行の順に、ＩＣカードにデータを書き込んでいくことからなる。ここで、０次、１次、２次の発行の内容を簡単に説明する。０次発行では、ＩＣチップメーカーの輸送鍵と照合・認証を行い、工場コード、処理日付等の設定をして、チップの基本機能を検査し、専用のプログラムを書き込み、０次と１次発行間の輸送鍵を設定する。１次発行では、０次と１次発行間の輸送鍵と照合・認証を行い、ＩＣチップにファイルの階層構造を創生し、各ファイルにセキュリティ属性を設定して、初期データを書き込み、１次と２次発行間の輸送鍵を設定する。２次発行では、１次と２次発行間の輸送鍵と照合・認証を行い、個別データ（ＩＤ番号、氏名、写真データなど）を書き込む。２次発行では、セキュリティを高めるため、輸送鍵の閉塞を行うことがある。
【０００３】
従来のＩＣカードの発行方法では、不具合カードが発生したら、不具合の発生原因、発生日付、発生場所を特定するのは、ＩＣチップの個別仕様に依存している。例えば、ＩＣチップ内ＣＰＬＣデータ（Ｃａｒｄ  Ｐｒｏｄｕｃｔｉｏｎ  Ｌｉｆｅ  Ｃｙｃｌｅ）を利用する手法が知られている。この手法では、ＩＣカードを発行する際に、ＣＰＬＣデータエリアに各発行工程を示す工場コード、日付データを記録、更新していく。不具合カードが発生した時には、ＩＣカードからＣＰＬＣデータを読出し、ＣＰＬＣデータ情報を元に、０次、１次、２次発行時工場コード、発行日付を特定できる。また、シリアル番号などから発行履歴も調査できる。発行履歴とは、ＩＣカード発行時に、発行装置とカードの間で通信された実際のコマンドとレスポンスが記録されたデータのことをいう。
【０００４】
また、別の手法として、ＩＣチップ内Ｃａｒｄ  Ｌｉｆｅ  ＣｙｃｌｅというカードのＣＬＣモードフラグを利用する手法も知られている。この手法では、ＩＣカードを発行する際に、各発行工程で行ったモード遷移状況をＣａｒｄ  Ｌｉｆｅ  Ｃｙｃｌｅモードフラグとして記録、更新していく。ＣＬＣモードフラグは例えば、初期化モード、製造モード、セキュアモード、運用モードなどがある。
【０００５】
不具合カードが発生した時には、ＩＣカードからＣＬＣモードフラグを読出し、ＣＬＣモードフラグを元に、カードのモード状態を特定できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−１６０５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＣＰＬＣデータを利用する手法では、ＩＣカードからＣＰＬＣデータを読出し、ＣＰＬＣデータ情報を元に、０次、１次、２次発行時工場コード、発行日付を特定できるが、不具合カードの発生原因を特定できないことが多い。例えば、発行時に誤りデータを設定したのか、データ照合エラーかを特定できなかったりすることがある。
【０００８】
また、ＣＰＬＣデータは全ての種類のＩＣチップが持つものではなく、発行時にＣＰＬＣデータを正しく更新、記録する確約がない。
【０００９】
一方のＣＬＣモードフラグを利用する手法では、ＣＰＬＣデータを利用する手法と同じく、ＣＬＣモードフラグを元に、カードのモード状態を特定できるが、不具合カードの発生原因、発行日付を特定できないことが多い。
【００１０】
また、ＣＬＣモードフラグも全て種類のＩＣチップが持つものではなく、モード状態が特定されていでも、エラー発行場所（工場）を特定できないことがある。
【００１１】
さらに、上記いずれの手法でも、不具合カードが発生した時、ＩＣカードが閉塞状態（ロックされている）になっている場合が多くある。この場合、ＩＣカードとの相互認証できず、ＩＣカードから情報を読み出しすることはできないことが多いので、ＣＰＬＣデータやＣＬＣモードフラグを読み出すことができない。従って、エラー発生原因、日付、場所などを特定できなくなる。例えば、２次発行時ＩＣカード輸送鍵認証エラーが発生し、ＩＣカードが閉塞状態になっている場合、ＩＣカードから情報を読み出せない。この閉塞状態（ロック状態）が何処で発生したかを切り分けできない。１次発行終了間際か、２次発行開始時かを特定することができない。また、１次発行時に誤り輸送鍵が設定されたか、２次発行時に誤り輸送鍵を用いて照合したかなどの発生場所、原因を特定できない。
【００１２】
本発明はかかる従来の問題に鑑みてなされたものであって、本発明の課題は、発行工程において、不具合カードが発生したら、発生原因、日付、場所などを特定するための情報をカード閉塞時でも確実に取得できるＩＣチップを提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、一実施形態に記載の発明は、リーダライタとの間で通信コマンドを送受信して発行工程を実行する発行手段と、前記発行手段がリーダライタと送受信した前記通信コマンドを可逆演算する可逆演算ロジックにより演算して演算結果を得る可逆演算手段と、前記可逆演算手段による演算結果をＡＴＲ情報の一部として記録するＡＴＲ情報記録手段とを備えることを特徴するＩＣチップである。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のＩＣカード発行システムのハードウェア構成を示す図である。
【図２】本実施形態のＩＣカードおよびリーダライタの機能構成を示す図である。
【図３】ＡＴＲ情報の構造を示す図である。
【図４】０次発行工程における各工程を示す図である。
【図５】カードリセット工程においてＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図６】チップメーカー輸送鍵照合工程においてＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図７】チップメーカー輸送鍵照合工程においてなされる可逆演算を示す図である。
【図８】工場コード、処理日付設定工程においてＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図９】工場コード、処理日付設定工程においてなされる可逆演算を示す図である。
【図１０】テストメモリ工程においてＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図１１】テストメモリ工程においてなされる可逆演算を示す図である。
【図１２】インストールアプリ工程においてＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図１３】インストールアプリ工程においてなされる可逆演算を示す図である。
【図１４】不具合発生時にＩＣカードとリーダライタとの間で送受信される通信コマンドを示す図である。
【図１５】不具合発生時の逆演算を示す図である。
【図１６】不具合発生時の逆演算を示す図である。
【図１７】第２の実施形態のＩＣカードの機能ブロック図である。
【図１８】第２の実施形態におけるカード発行時の処理流れを示す図である。
【図１９】第２の実施形態における不具合発生時の処理流れを示す図である。
【図２０】第３の実施形態のＩＣカードの機能ブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、詳細に説明する。
【００１６】
［第１の実施形態］
本実施の形態のＩＣカード発行システムでは、ＩＣカード発行工程において、ＩＣカードと発行装置（リーダライタ）との間で送受信する情報を可逆演算ロジックにより演算し、得られた演算結果を初期応答情報（ＡＴＲ（Ａｎｓｗｅｒ  Ｔｏ  Ｒｅｓｅｔ）情報）の一部として記録する。
【００１７】
ＩＣカードは、０次発行、１次発行、２次発行の各工程を含む発行工程を経て発行される。これらの各工程では、ＩＣカードとリーダライタとの間でコマンドとレスポンス（通信コマンドともいう）を送受信する。本実施形態のＩＣカードでは、送受信したコマンドおよびレスポンスの内容、処理日付、処理順序番号、および処理工場コードなどの情報を通信情報として用いて、この通信情報を演算元データとして可逆演算ロジックに従い計算して情報の暗号化を図り、得られた演算結果をＡＴＲ情報の一部として記録する。
【００１８】
ＡＴＲ情報は、リーダライタによるリセット信号または電力供給に対して、カード閉塞にかかわらず、ＩＣカードから確実に取得できる情報であり、ＩＣチップの種類に依存せず、すべてのＩＣチップが持っている基本情報である。したがって、ＩＣカード発行工程において不具合カードが発生した時、ＩＣカードからＡＴＲ情報を読出し、このＡＴＲ情報の一部から逆演算すると各通信コマンドの内容、処理日付、処理順序番号、処理工場コードを含む通信情報を得られることとなる。不具合カードが発生したら、その発生の原因、発生日付、発生場所などをこれらの通信情報に基づいて特定することができる。
【００１９】
まず、本実施形態のＩＣカード発行システムの構成について説明する。図１は本実施形態のＩＣカード発行システムのハードウェア構成を示す図である。図１において、ＩＣカード発行システムは、ＩＣカード１とリーダライタ２とを備えている。ＩＣカード１は、ＩＣモジュール（ＩＣチップ）１０と通信インタフェース１１とを搭載している。ＩＣモジュール１０は、各種処理を行なうＣＰＵ１２と、プログラムやデータなどが記録される、ＲＡＭ１３、ＲＯＭ１４、ＥＥＰＲＯＭ１５とを備えて構成される。リーダライタ２は、処理モジュール２０と通信インタフェース２１とを搭載している。処理モジュール２０は、各種処理を行なうＣＰＵ２２と、プログラムやデータなどが記録される、ＲＡＭ２３、ＲＯＭ２４、ＥＥＰＲＯＭ２５とを備えて構成される。
【００２０】
本実施形態において、例えばＲＯＭ１４に格納されたプログラムをＣＰＵ１２が実行することにより、通信情報の記録が行なわれ、ＲＯＭ２４に格納されたプログラムをＣＰＵ２２が実行することにより、通信情報の読み出しが行なわれる。通信情報を特定することで不具合の原因等が特定できる。
【００２１】
本実施形態のＩＣカード１は、接触式、非接触式のいずれの形態のＩＣカードでもよく、通信インタフェース１１、２１として、例えば、接触式の場合は接点端子、非接触式の場合はアンテナコイルなどを用いることができる。
【００２２】
図２は本実施形態のＩＣカードおよびリーダライタの機能構成を示す図である。図１において、ＩＣカード１は、ＩＣカード発行手段１０１と、可逆演算手段１０２と、ＡＴＲ情報記録手段１０３とを備えて構成され、リーダライタ２は、ＩＣカード発行手段２０１と、ＡＴＲ情報取得手段２０２と、逆演算手段２０３とを備えて構成される。
【００２３】
ＩＣカード１のＩＣカード発行手段１０１は、リーダライタ２のＩＣカード発行手段２０１からのコマンドに基づいて発行処理を行い、レスポンスを返信する。ＩＣカード発行手段１０１は、コマンドおよびレスポンスを含む通信コマンドを送受信して、０次発行、１次発行、２次発行の各工程を含む発行工程を実行する。
【００２４】
可逆演算手段１０２は、０次発行、１次発行、２次発行の各工程において、リーダライタと送受信した各通信コマンドの内容、処理日付、処理順序番号、および処理工場コードを含む通信情報とＡＴＲ情報の一部を演算元データとして可逆演算ロジックに従って計算して、通信情報が暗号化された第１の演算結果を得る。さらに逆演算ロジックにより得られた第１の演算結果と、暗号演算用鍵とを用いて追加暗号演算ロジックを実行して、暗号化された最終的な演算結果を得る。ＡＴＲ情報は、カード閉塞時でもアクセスできる情報であるので、容易にアクセス可能にしつつ暗号化することによってセキュリティの向上を図ることができる。
【００２５】
可逆演算ロジックは暗号化できる可逆演算である例えばＸＯＲなどを用いることができる、追加暗号演算ロジックは暗号演算用鍵を用いた暗号化である例えば２ｋｅｙのＴＤＥＳを用いることができる。可逆演算ロジックは汎用的な演算ロジックを用いることができ、暗号化可逆演算以外にも非暗号化可逆演算も用いることができる。ここでは、例として暗号化可逆演算を用いており、セキュリティの向上を図っている。
【００２６】
ＡＴＲ情報記録手段１０３は、可逆演算手段１０２における演算結果をＡＴＲ情報の一部として記録する。ＡＴＲ情報記録手段１０３は、具体的には、０次発行、１次発行、２次発行の各工程においてＡＴＲ情報の一部を可逆演算手段１０２における演算結果で逐次更新（上書き）し、更新する際に、更新内容をＡＴＲ情報の管理情報バイト履歴エリアに追加記録することができる。
【００２７】
ここでＡＴＲ情報の構造について説明する。図３は、ＡＴＲ情報の構造を示す図である。
【００２８】
ＡＴＲ情報は、開始バイトと、構成表示バイトと、接続情報バイトと、管理情報バイトと、検査バイトとを有している。開始バイトは、その後のすべてのバイト情報の符号規約を設定する情報を格納する領域である。構成表示バイトは、接続情報バイト及び管理バイトの有無・個数を示す情報を格納する領域である。接続情報バイトは、ＩＣチップ内のパラメータ・伝送プロトコルのパラメータを示す情報を格納する領域である。ＡＴＲ情報の接続情報バイトはＩＣチップ伝送プロトコルのパラメータであるので、変更、上書きできない。管理情報バイトは、製造企業のコード、チップのＲＯＭバージョンなど一般情報を示す情報を格納する領域である。検査バイトは、Ｔ０〜ＴＣＫのすべての排他的論理和が“００”になるように設定する情報を格納する領域である。ＡＴＲ情報記録手段１０３は、ＡＴＲ情報の管理情報バイトに演算結果を記録する。また、管理情報バイトの履歴（発行履歴）は図示しない管理情報バイト履歴エリアに記録される。
【００２９】
リーダライタ２のＩＣカード発行手段２０１は、ＩＣカード１にコマンドを送信し、ＩＣカード１のＩＣカード発行手段１０１からのレスポンスを受け取る。リーダライタ２のＩＣカード発行手段２０１は、処理日付、処理順序番号、処理工場コードを含む通信情報の一部を保持しており、これらの通信情報のうちで必要な内容を、０次発行、１次発行、２次発行の各工程で、ＩＣカード発行時のコマンドに含めてＩＣカード１へ送信する。
【００３０】
ＡＴＲ情報取得手段２０２は、ＩＣカード１のＡＴＲ情報記録手段１０３に記録されたＡＴＲ情報を取得（読み出し）する。ＡＴＲ情報は、ＩＣカードに対してリセット信号を送信した返信として取得される。ＡＴＲ情報の管理情報バイト履歴エリアに記録されている情報については、読み出し方法は上記のコマンド方式以外にも、ハードウェア方式でもよい。ハードウェア方式とは、ＩＣカードのリセット端子を有効状態電圧に保ち、次に電源端子に規定の電圧を与えて、クロック端子に適切なクロック信号を供給することにより、ＩＣカード内部活性化まで、ＩＣカードのＩ／ＯよりＡＴＲ情報を受信する手法である。カード閉塞状態（ロック状態）の時、すなわちコマンドを利用してアクセスできない場合は、ハードウェアからＡＴＲ情報の履歴エリアを取得することができる。
【００３１】
逆演算手段２０３は、取得したＡＴＲ情報に基づいて逆演算ロジックを実行し、通信情報を得る。具体的には、取得したＡＴＲ情報の管理情報バイトのうちの前半８バイトと復号演算用鍵を元に、復号演算ロジックに従って計算して、中間結果を得る。さらに、得られた中間結果とＡＴＲ情報の管理情報バイトのうちの後半８バイトとを用いて、逆演算ロジックを実行して復号された演算結果を得る。この演算結果は、可逆演算を行なう前の通信情報である。復号演算ロジックは、例えば２ｋｅｙのＴＤＥＳを用いることができ、逆演算ロジックは例えばＸＯＲを用いることができる。また、復号演算用鍵は、暗号演算用鍵と共通するものを用いることができ、例えば予め用意した「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」の２つの鍵を用いることができる。
【００３２】
次に図２、図４を参照しながら、本実施形態におけるＩＣカードシステムにおける発行処理について説明する。本実施形態では、０次発行工程を例に挙げて以下説明する。図４は０次発行工程における各工程を示す図である。０次発行工程においては、ＩＣカード発行手段１０１は例えば、カードリセット（Ｓ１）と、チップメーカー輸送鍵照合（Ｓ２）と、工場コード、処理日付設定（Ｓ３）と、テストメモリ（Ｓ４）と、インストールアプリ（Ｓ５）と、０次・１次間輸送鍵設定（Ｓ６）との各工程を実行する。
【００３３】
図５、図６、図８、図１０、図１２は、Ｓ１からＳ５の各工程のそれぞれにおいて、ＩＣカードとリーダライタとの間で送受信される通信情報を示す図である。図７、図９、図１１、図１３は、Ｓ２からＳ５の各工程のそれぞれにおいてなされる可逆演算を示す図である。これらの図において、リーダライタ側から送信したものを送信コマンド、リーダライタ側において受信したものを受信コマンドという。
【００３４】
（カードリセット：Ｓ１）
カードリセット工程においては、ＩＣカード１とリーダライタ２との間で、図５に示す信号が送受信される。図５では、ＩＣカード発行手段１０１が、リーダライタ２からリセット信号“１４８Ｃ”を受信すると、カードリセット処理を行ない、ＡＴＲ値“３ＢＦＤ９４００００８１３１８０４３８０３１８０６５Ｂ０８５０２００ＣＦ８３０１９０００Ａ４”を返信する。ここでのＡＴＲ値は、一例を示しており、実際にはチップメーカーで設定されたデフォルト値（初期ＡＴＲ値）である。図５のＡＴＲ情報の管理情報バイトは“８０３１８０６５Ｂ０８５０２００ＣＦ８３０１９０００”となっている。
【００３５】
（チップメーカー輸送鍵照合：Ｓ２）
チップメーカー輸送鍵照合工程においては、ＩＣカード１とリーダライタ２との間で、図６に示す信号が送受信される。図６の送信コマンド列の略語は、以下の通りである。
【００３６】
ＣＬＡ：      クラス・バイト
ＩＮＳ：        命令・バイト
Ｐ１：        パラメータ・バイト
Ｐ２：        パラメータ・バイト
Ｌｃ：          Ｄａｔａの長さ
Ｄａｔａ：      データ、（この工程では照合鍵）
ＳＷ１：      ステータス・バイト
ＳＷ２：      ステータス・バイト
【００３７】
ＩＣカード１では、ＩＣカード発行手段１０１が図６に示すコマンド受信およびレスポンス送信を実行すると、可逆演算手段１０２は、図７に示すような演算を行い、演算結果を得る。
【００３８】
図７に示すように、可逆演算手段１０２は、演算元データとして、コマンドＮｏ、工場コード、処理日付、送信コマンドの一部、受信コマンド列の一部を含む通信情報と、ＡＴＲの管理情報バイトとを用い、可逆演算ロジックを実行する。
【００３９】
図７において「コマンドＮｏ」は、コマンドの順番を示す情報であり、０１〜ＦＦ（１バイト）が設定できる。「工場コード」は、コマンドを実行した工場を示す情報であり、００〜ＦＦ（１バイト）が設定できる。「処理日付」は、コマンドを実行した日付を示す情報であり、２０００．０１．０１を０として、経過した日数を表す（１６進数２バイトの場合）値を設定できる。「送信コマンドの一部」は、送信コマンドの先頭２バイト（ＣＬＡとＩＮＳ）を設定できる。「受信コマンドの一部」は、受信コマンドのステータスバイト（２バイト）を設定できる。「管理情報バイト」は、取得したＡＴＲ値の管理情報バイトの先頭８バイトを設定できる。初回演算時、工場コード、処理日付などの情報が設定されない場合は、デフォルトデータを使用することができる。また、初回取得したＡＴＲ値の管理情報バイトは８バイト未満の場合、末尾“００”をパディングする。
【００４０】
図７の例では、「コマンドＮｏ」は０１、「工場コード」はＡ０、「処理日付」は１２３４、「送信コマンドの一部」は００２０、「受信コマンドの一部」は９０００、「管理情報バイト」は現在の管理情報先頭８バイト“８０３１８０６５Ｂ０８５０２００”が元データとして用いられ、可逆演算ロジックＸＯＲが実行される。
【００４１】
可逆演算手段１０２が可逆演算ロジックＸＯＲを実行すると、第１の演算出力結果「８１９１９２５１Ｂ０Ａ５９２００」が得られ、可逆演算手段１０２はさらにこの第１の演算出力結果と暗号演算用鍵「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」とを用いてさらに暗号演算ロジックを行ない、第２の演算出力結果「Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ」を得る。暗号演算ロジックとしては例えば２ＫｅｙのＴＤＥＳを用いることができる。暗号演算用鍵は、任意のものを用いることができるが、復号側における復号演算ロジックで用いる復号演算用鍵と共通するものが用いられる。
【００４２】
ＡＴＲ情報記録手段１０３は、第２の演算出力結果「Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ」を演算結果としてこの演算結果と演算元データの管理情報先頭８バイト（８０３１８０６５Ｂ０８５０２００）を、新しいＡＴＲ情報の管理情報バイトの履歴エリアに記録し、同時に、演算結果／演算元データの管理情報先頭８バイト（Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ８０３１８０６５Ｂ０８５０２００）をＡＴＲ情報の管理情報バイトエリアに上書き（更新）する。
【００４３】
（工場コード、処理日付設定：Ｓ３）
工場コード、処理日付設定工程においては、ＩＣカード１とリーダライタ２との間で、図８に示す信号が送受信される。図８において、Ｄａｔａに対応するバイト”Ｂ１”は工場コードであり、”３４５６”は処理日付である。
【００４４】
ＩＣカード１では、ＩＣカード発行手段１０１が図８に示すコマンド受信およびレスポンス送信を実行すると、可逆演算手段１０２は、図９に示すような演算を行い、演算結果を得る。
【００４５】
図９の例では、「コマンドＮｏ」は０２、「工場コード」はＢ１、「処理日付」は３４５６、「送信コマンドの一部」は８０Ｅ１、「受信コマンドの一部」は９０００、「管理情報バイト」は管理情報先頭８バイト“Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ”が元データとして用いられ、可逆演算ロジックＸＯＲが実行される。
【００４６】
可逆演算手段１０２が可逆演算ロジックＸＯＲを実行すると、第１の演算出力結果「Ａ６Ｅ１１８５ＢＣＥＥ４７２ＢＢ」が得られ、可逆演算手段１０２はさらにこの第１の演算出力結果と暗号演算用鍵「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」とを用いて暗号演算ロジックＴＤＥＳ（２ｋｅｙ）を行ない、第２の演算出力結果「７８Ｄ７１０Ｆ７２Ｅ１６０４５６」を得る。
【００４７】
ＡＴＲ情報記録手段１０３は、第２の演算出力結果「７８Ｄ７１０Ｆ７２Ｅ１６０４５６」を演算結果としてこの演算結果と演算元データの管理情報先頭８バイト（Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ）を新しいＡＴＲ情報の管理情報バイトの履歴エリアに記録し、同時に、演算結果／演算元データの管理情報先頭８バイト（７８Ｄ７１０Ｆ７２Ｅ１６０４５６Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ）をＡＴＲ情報の管理情報バイトエリアに上書き（更新）する。
【００４８】
（テストメモリ：Ｓ４）
テストメモリ工程においては、ＩＣカード１とリーダライタ２との間で、図１０に示す信号が送受信される。
【００４９】
ＩＣカード１では、ＩＣカード発行手段１０１が図１０に示すコマンドを実行すると、可逆演算手段１０２は、図１１に示すような演算を行い、演算結果を得る。
【００５０】
図１１の例では、「コマンドＮｏ」は０３、「工場コード」はＢ１、「処理日付」は３４５６、「送信コマンドの一部」は８０Ｅ６、「受信コマンドの一部」は９０００、「管理情報バイト」は“７８Ｄ７１０Ｆ７２Ｅ１６０４５６”が元データとして用いられ、可逆演算ロジックＸＯＲが実行される。
【００５１】
可逆演算手段１０２が可逆演算ロジックＸＯＲを実行すると、第１の演算出力結果「７Ｂ６６２４Ａ１ＥＦ０９４５６」が得られ、可逆演算手段１０２はさらにこの第１の演算出力結果と暗号演算用鍵「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」とを用いて暗号演算ロジックＴＤＥＳ（２ｋｅｙ）を行ない、第２の演算出力結果「８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２」を得る。
【００５２】
ＡＴＲ情報記録手段１０３は、第２の演算出力結果「８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２」を演算結果としてこの演算結果と演算元データの管理情報先頭８バイト（７８Ｄ７１０Ｆ７２Ｅ１６０４５６）を新しいＡＴＲ情報の管理情報バイトの履歴エリアに記録し、同時に、演算結果／演算元データの管理情報先頭８バイト（８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２７８Ｄ７１０Ｆ７２Ｅ１６０４５６）をＡＴＲ情報の管理情報バイトエリアに上書き（更新）する。
【００５３】
（インストールアプリ：Ｓ５）
インストールアプリ工程においては、ＩＣカード１とリーダライタ２との間で、図１２に示す信号が送受信される。
【００５４】
ＩＣカード１では、ＩＣカード発行手段１０１が、図１２に示すコマンドを実行すると、可逆演算手段１０２は、図１３に示すような演算を行い、演算結果を得る。
【００５５】
図１３の例では、「コマンドＮｏ」は０４、「工場コード」はＢ１、「処理日付」は３４５６、「送信コマンドの一部」は８０Ｄ１、「受信コマンドの一部」は４３Ｆ２、「管理情報バイト」は“８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２”が元データとして用いられ、可逆演算ロジックＸＯＲが実行される。
【００５６】
可逆演算手段１０２が可逆演算ロジックＸＯＲを実行すると、第１の演算出力結果「８０１４３ＦＤＤＦＦ０ＦＥ０」が得られ、可逆演算手段１０２はさらにこの第１の演算出力結果と暗号演算用鍵「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」とを用いて暗号演算ロジックＴＤＥＳ（２ｋｅｙ）を行ない、第２の演算出力結果「４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ」を得る。
【００５７】
ＡＴＲ情報記録手段１０３は、第２の演算出力結果「４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ」を演算結果としてこの演算結果と演算元データの管理情報先頭８バイト（８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２）を新しいＡＴＲ情報の管理情報バイトの履歴エリアに記録し、同時に、演算結果／演算元データの管理情報先頭８バイト（４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２）をＡＴＲ情報の管理情報バイトエリアに上書き（更新）する。
【００５８】
（エラーステータスの受信）
上記の例では、リーダライタ２は、図１３に示すように、インストールアプリの工程（Ｓ５）において、不具合発生を示すエラーステータス（４３Ｆ２）を受信コマンド（レスポンス）を受信している。ここで不具合発生時における通信情報の取得手法について説明する。図１４は不具合発生時にＩＣカード１とリーダライタ２との間で送受信される通信コマンドを示す図である。図１５、１６は不具合発生時の逆演算を示す図である。
【００５９】
まずリーダライタ２がエラーステータスを受信すると、不具合発生と判断し、発行作業が中断する。リーダライタ２は、この不具合カードの発生原因、発生日付、発生場所などを特定するために、ＩＣカード１から初期応答情報ＡＴＲを読出し、ＡＴＲの管理情報バイトを逆演算する。具体的には、リーダライタ２のＡＴＲ情報取得手段２０２が図１４に示すリセット信号をＩＣカード１に送信すると、ＩＣカード１はリーダライタ２にＡＴＲ値“３ＢＦＤ９４００００８１３１８０４３４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２６５”を返信する。リーダライタ２は、受信したＡＴＲ値に基づいて逆演算を行い、リーダライタ２とＩＣカード１との間で送受信した通信情報を得る。
【００６０】
図１４に示す例では、リーダライタ２が受信したＡＴＲ値の管理情報バイトは“４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２”となっている。逆演算手段２０３は、この管理情報バイトを前後８バイトに分割し、逆演算を行なう。
【００６１】
図１５は逆演算の例を示す図である。逆演算手段２０３がＡＴＲ管理情報バイトの前半８バイト“４１Ａ８２Ａ６５２７３ＡＦ６６Ｂ”と２つの暗号演算用鍵「３１３２３３３４３５３６３７３８」、「３８３７３６３５３４３３３２３１」とを用いて、復号演算ロジックＴＤＥＳ（２ｋｅｙ）を実行すると、中間結果「８０１４３８ＦＤＤＦＦ０ＦＥ０」を得られ、逆演算手段２０３がさらにこの中間結果とＡＴＲ管理情報バイトの後半８バイト“８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２”を用いて演算ロジックＸＯＲを行ない、逆演算結果“０４Ｂ１３４５６８０Ｄ１４３Ｆ２”を得る。
【００６２】
得られた逆演算結果は、可逆演算前の通信情報である。すなわち逆演算の結果“０４Ｂ１３４５６８０Ｄ１４３Ｆ２”から、エラー発生時、処理コマンドの順番：０４、工場コード：Ｂ１、処理日付（２０００．０１．０１を０として、経過した日数）：３４５６、送信コマンドのＣＬＡとＩＮＳ：８０Ｄ１、エラーステータス：４３Ｆ２などが得られる。この例では、送信コマンドのＣＬＡとＩＮＳ：８０Ｄ１から、“インストールアプリ”指令を送信する際に、エラーステータス：４３Ｆ２が発生したことが判る。
【００６３】
さらに処理コマンドの順番０３について詳細な発行状況を精査したい場合、ＡＴＲ情報取得手段２０２は、ＡＴＲ情報の管理情報バイト履歴エリアに記憶されている情報“８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２７８Ｄ７１０Ｆ７２Ｅ１６０４５６”を読み出す。読み出し方法はコマンド方式かハードウェア方式２案がある。カード閉塞状態（ロック状態）時、コマンドを利用してアクセスできない場合、ハードウェアからＡＴＲ情報の履歴エリアを取得すればよい。
【００６４】
図１６に示すように取得したデータ“８４Ａ５０ＣＡＢ５Ｆ２１Ｂ３１２７８Ｄ７１０Ｆ７２Ｅ１６０４５６”から逆演算して、処理コマンドの順番０３の処理状況を特定できる。
【００６５】
この逆演算の結果から、エラー発生時、処理コマンドの順番：０３、工場コード：Ｂ１、処理日付（２０００．０１．０１を０として、経過した日数）：３４５６、送信コマンドのＣＬＡとＩＮＳ：８０Ｅ６、受信ステータス：９０００などが得られる。この例では、送信コマンドのＣＬＡとＩＮＳ：８０Ｅ６から、“テストメモリ”指令を送信する際に、受信したステータス：９０００であることが判る。
【００６６】
さらに処理コマンドの順番０２について詳細な発行状況を精査したい場合も、順番０３と同様に、ＡＴＲ情報の管理情報バイト履歴エリアに記憶されている情報“７８Ｄ７１０Ｆ７２Ｅ１６０４５６Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ”を読み出す。図１６に示すように取得データ“７８Ｄ７１０Ｆ７２Ｅ１６０４５６Ａ４５０２Ｃ０Ｄ４Ｅ０５Ｅ２ＢＢ”から逆演算して、処理コマンドの順番０２の処理状況を特定できる。
【００６７】
このように本実施形態のＩＣカードによれば、ＩＣカード発行工程において、不具合カードが発生したら、発生原因、日付、場所などを特定するための情報をカード閉塞時でも確実に取得できる。不具合の発生原因が特定できれば、発行工程中適切な対策を取ることができ、工程の不良率を削減できる。不具合の発生原因・日付・場所が特定できれば、不良原因を究明する時間を短縮でき、工程の効率向上に貢献できる。また、ＩＣカード発行工程以外では、輸送途中カードの盗難、紛失などによる、権限を持たない者による不正な輸送鍵の照合、不正な情報書き込みを検知・特定できる。不正な照合・書き込みの検知・特定は、逆演算して得られたエラーステータスより特定できる。例えば、ＩＣカード発行手段１０１がリーダライタ２に返信するレスポンスとして、ＩＣカードに不正な鍵照合があった場合をエラーステータス“６３Ｃ４”とし、権限を持たない者が不正な書き込みがなされた場合をエラーステータス“６８Ｄ２”とすればよい。
【００６８】
［第２の実施形態］
第１の実施形態において、可逆演算手段とＡＴＲ情報記録手段により、リーダライタ２とＩＣカード１との間で送受信した通信コマンドを含む通信情報を可逆演算し、ＡＴＲ情報の一部として記録することによりカード閉塞時でも通信コマンドの確認可能としていた。本実施形態では、最初に２つの認証モードを設定して、カード発行時には、通常状態ではアクセス制限のない一方のモードで通信コマンドを記録し、カード閉塞時には、アクセス制限があるがカード閉塞時でも読み出しは可能な他方のモードに切り替えることにより、カード閉塞時でも通信コマンドの確認可能としている。
【００６９】
本実施形態でも、図１に示す構成のＩＣカード発行システムを用いることができるが、ＩＣカードの機能構成は図１７に示す構成となる。図１７は、第２の実施形態のＩＣカードの機能ブロック図である。図１７に示すように、本実施形態のＩＣカード１は、ＩＣカード発行手段１０１と、アクセス管理手段１０４と、通信コマンド記録手段１０５とを備えている。第１の実施形態と異なる構成についてのみ説明する。
【００７０】
アクセス管理手段１０４は、カードへの各種データ、ファイル階層構造、セキュリティ属性などの情報を追加・変更・削除をするアクセスおよびこれを読み出しするアクセスに対し、許可または不許可の制御をしている。アクセス管理手段１０４は、カード発行の最初の段階である０次発行工程において、一般用認証モードと管理者用認証モードとの２つの認証モードを設定する。
【００７１】
一般用認証モードは、カードへの情報の追加・変更・削除をするアクセスおよび情報の読み出しするアクセスを許可するモードである。しかし、一般用の認証モードで複数回の認証エラーが発生するなどの所定の条件となった場合に、カード閉塞状態とし、全てのアクセスを不許可とするモードである。
【００７２】
管理者用認証モードは、セキュリティの観点からカードへの情報の追加・変更・削除はできないが、カードのＩＣモジュール内の情報を読み出しするアクセスを許可するモードである。この管理者用認証モードでは、カード閉塞して、一般用認証モードではカードがロック状態である場合でも各種情報、ファイル構造、セキュリティ属性等を読み出しするアクセスを許可する。
【００７３】
通信コマンド記録手段１０５は、カード発行手段１０１によるカード発行工程の処理に平行して、ＩＣカードとリーダライタとの間で送受信したコマンドとレスポンス（通信コマンド）を記録する。通信コマンド記録手段１０５は、一般用認証モードで動作可能である。
【００７４】
次に図１７、１８を参照しながら、本実施形態におけるＩＣカードシステムにおける発行処理および不具合が発生した場合の原因等の特定手法について説明する。図１８は、カード発行時の処理流れを示す図である。図１９は不具合発生時の処理流れを示す図である。
【００７５】
ＩＣカード発行手段１０１において、０次発行工程が開始され、チップメーカー輸送鍵照合段階が実行されると、アクセス管理手段１０４は、２つの認証モードの設定を行なう（Ｓ１０）。アクセス管理手段１０４は、デフォルトでは一般用認証モードでのアクセス制御を行なう。
【００７６】
次いで、ＩＣカード発行手段１０１が０次発行工程の他の処理工程を実行し、１次発行工程用輸送鍵を設定する（Ｓ１１）。一方、通信コマンド記録手段１０５は、０次発行工程でＩＣカード１とリーダライタ２とが送受信した通信コマンドを記録する（Ｓ２１）。
【００７７】
ＩＣカード発行手段１０１は、０次発行工程に次いで、１次発行工程の各処理を実行する（Ｓ１２）。一方、通信コマンド記録手段１０５は、１次発行工程でＩＣカード１とリーダライタ２とが送受信した通信コマンドを記録する（Ｓ２２）。
【００７８】
ＩＣカード発行手段１０１は、１次発行工程に次いで、２次発行工程の各処理を実行する（Ｓ１３）。一方、通信コマンド記録手段１０５は、２次発行工程でＩＣカード１とリーダライタ２とが送受信した通信コマンドを記録する（Ｓ２３）。
【００７９】
このように、本実施形態では、通信コマンド記録手段１０５により、ＩＣカードとリーダライタとの間で送受信した通信コマンドを全て記録する。
【００８０】
ここで不具合が発生し、カードが閉塞状態となった場合、アクセス管理手段１０４が、認証モードとして管理者用認証モードの選択を受け付ける（Ｓ３１）と、アクセス管理手段１０４は、管理者用認証を実施する（Ｓ３２）。管理者用認証は、所定の認証方式により、管理者によるアクセスであることを認証する。
【００８１】
管理者用認証が承認されると、アクセス管理手段１０４は、管理者モードへ切り替えて記録された通信コマンドを読み出しする（Ｓ３３）。
【００８２】
また、必要に応じて、ＩＣモジュール内に記録されているファイル構造、セキュリティ属性、ファイル内容を読み出しする（Ｓ３４）。
【００８３】
本実施形態のＩＣカードによれば、ＩＣカード発行工程において、不具合カードが発生したら、発生原因、日付、場所などを特定するための情報をカード閉塞時でも確実に取得できる。
【００８４】
［第３の実施形態］
この実施形態は、第１の実施形態のＩＣカードと第２の実施形態のＩＣカードの機能が組み合わされた形態である。図２０は本実施形態のＩＣカードの機能構成を示す図である。本実施形態のＩＣカードは、ＩＣカード発行手段１０１と、可逆演算手段１０２と、ＡＴＲ情報記録手段１０３と、アクセス管理手段１０４と、通信コマンド記録手段１０５とを備えている。図２０の各手段は、第１の実施形態および第２の実施形態と同様の処理を実行する。
【００８５】
この実施形態のＩＣカードでは、ＡＴＲ情報記録手段１０３によるＡＴＲ情報の一部としての通信コマンドの記録と、通信コマンド記録手段１０５による通信コマンドの記録とが平行して行なわれる。
【００８６】
かかるＩＣカードによれば、ＩＣカード発行工程において不具合カードが発生しても、発生原因、日付、場所などをより確実に特定できる。
【００８７】
以上のいずれの実施形態でも、ＩＣカードを例に挙げて説明したが、ＩＣカードの形態に限らず、上記に説明したＩＣカードのＩＣモジュール部分をＩＣチップとして搭載した装置であればよく、例えばスマートフォン、携帯電話機や時計などの形態でもよい。
【符号の説明】
【００８８】
１      ＩＣカード
１０    ＩＣモジュール（ＩＣチップ）
１１    通信インタフェース
１２    ＣＰＵ
１３    ＲＡＭ
１４    ＲＯＭ
１５    ＥＥＰＲＯＭ
２      リーダライタ
２０    処理モジュール
２１    通信インタフェース
２２    ＣＰＵ
２３    ＲＡＭ
２４    ＲＯＭ
２５    ＥＥＰＲＯＭ
１０１  ＩＣカード発行手段
１０２  可逆演算手段
１０３  ＡＴＲ情報記録手段
２０１  ＩＣカード発行手段
２０２  ＡＴＲ情報取得手段
２０３  逆演算手段
【図１】
2017200064.tif 000003
【図２】
2017200064.tif 000004
【図３】
2017200064.tif 000005
【図４】
2017200064.tif 000006
【図５】
2017200064.tif 000007
【図６】
2017200064.tif 000008
【図７】
2017200064.tif 000009
【図８】
2017200064.tif 000010
【図９】
2017200064.tif 000011
【図１０】
2017200064.tif 000012
【図１１】
2017200064.tif 000013
【図１２】
2017200064.tif 000014
【図１３】
2017200064.tif 000015
【図１４】
2017200064.tif 000016
【図１５】
2017200064.tif 000017
【図１６】
2017200064.tif 000018
【図１７】
2017200064.tif 000019
【図１８】
2017200064.tif 000020
【図１９】
2017200064.tif 000021
【図２０】
2017200064.tif 000022