JP4601968B2 - データ整合性検査を省けるicカードおよびicカード用プログラム - Google Patents

データ整合性検査を省けるicカードおよびicカード用プログラム Download PDF

Info

Publication number
JP4601968B2
JP4601968B2 JP2004010211A JP2004010211A JP4601968B2 JP 4601968 B2 JP4601968 B2 JP 4601968B2 JP 2004010211 A JP2004010211 A JP 2004010211A JP 2004010211 A JP2004010211 A JP 2004010211A JP 4601968 B2 JP4601968 B2 JP 4601968B2
Authority
JP
Japan
Prior art keywords
data
error detection
detection code
value
data file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004010211A
Other languages
English (en)
Other versions
JP2005202822A (ja
Inventor
彰 渋谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2004010211A priority Critical patent/JP4601968B2/ja
Publication of JP2005202822A publication Critical patent/JP2005202822A/ja
Application granted granted Critical
Publication of JP4601968B2 publication Critical patent/JP4601968B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Credit Cards Or The Like (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、クレジットカードサイズのプラスチックカードに半導体集積回路(以下、ICチップと記す)を埋め込んだICカードおよびICカード用ソフトウェアに関し、特に前記ICチップ内のメモリへデータを読み書きする技術に関する。
従来より、キャッシュカードや電子マネーといった金融系の用途において、ICカードが広く用いられている。ICカードとは、クレジットカードサイズのプラスチップカードに半導体集積回路(以下、ICチップと記す)を埋め込んだカードである。ICカードには磁気カードに比べて100倍近いデータを記録でき、また使用者の認証機能やデータの暗号化機能を備えることでデータの改竄にも強いカードである。
ICカードはその用途上、特許文献1の発明の実施の形態に記載されているように、通常はICカード内部に記録されているデータの整合性に誤りがあるまま動作することは望まれず、メモリにデータを記録するときは、データと共に誤り検出符号を記録することが一般的である。
前記誤り検出符号はデータ整合性検査に使用されるデータで、データ整合性検査とはメモリ等の記録領域に格納されたデータの誤りを検査することで、メモリに記録するデータと共に前記データを元にある算術式で演算した値すなわち誤り検出符号を付加してメモリに記録し、データの書き込み・読み出しの際はメモリに記録されているデータを元に同じ算術式で誤り検出符号を演算し、メモリに記録されている誤り検出符号と演算した誤り検出符号が一致することを確認する検査である。誤り検出符号の値が一致していればメモリ内に記録されたデータの整合性に誤りは無いと判断し、値が一致しなければメモリ内に記録されたデータの整合性に誤りがあると判断する。
代表的なデータ整合性検査の一つであるチェックサム検査は、算術式として加算式を用い、メモリに記録するデータの加算値を前記データと共にメモリに記録する。データ書き込み・データ読み出しの処理時は、メモリに記録されているデータの加算値を演算し、同じくメモリに記録されている加算値と比較することでデータの整合性を検査する。このチェックサム検査は算術式が単純で処理時間が短いといった利点はあるものの、2つ以上のデータの誤りが同時に発生すると、それぞれの誤りが相殺されて正しい加算値になってしまう場合がある。例えば2つのデータの順序が入れ替わると、データの加算値は変化せず、チェックサム検査では前記データの入れ替りを検査できないことがある。
そこでICカードの分野においては、ファイルに記録されたデータ整合性検査として前記チェックサムではなく巡回冗長検査(CRC:cyclic redundancy check、以下、CRCと記す)を用いるケースが多い。CRCでは、算術式として単純な加算を用いず、生成多項式と呼ばれるデータのシフトや加算等を組み合わせた算術式を用いるため、2つ以上のデータの誤りが同時に発生しても、データの整合性が正しいと判断される確率は極めて低くい。ただしその一方、CRCにおいては複雑な算術式を用いるためチェックサム検査よりも演算量が大幅に増え、結果としてデータ整合性検査に要する時間が増えてしまう問題がある。
CRCの演算時間を短縮する手段としては、非特許文献1に記載されているようなCRC演算専用回路をICチップに設けることが多い。ICカード運用時は、前記CRC演算専用回路によりCRCの演算時間が問題になることは極めて少ないが、一方ICカード製造会社がICカードを発行する際は、前記CRC演算専用回路を具備したICカードであってもCRCの演算時間が問題になる。
例えば個人認証用のICカードには認証機関の電子証明証をICカードに書き込むことがおおく、前記電子証明証のデータ容量は数Kバイトにもおよぶため、ICカード製造会社内におけるICカード発行前であって、メモリに記録されているデータの整合性が問われない状況にあるにも関わらず、前記電子証明証を書き込む前には、前記電子証明証を書込む数Kバイトにおよぶメモリ領域のCRCを演算しなくてはならない。ICカードの発行枚数が少ないときは前記CRCの演算時間は特に問題にならないが、ICカードの発行枚数が多いときは製造処理能力または製造コストの面において、前記CRCの演算時間が問題となっている。
特開平9−231111号公報 「テレビジョン画像情報工学ハンドブック(テレビジョン学会編)第1版」、オーム社発行、1990年、p.628」
前述の通り、ICカード製造会社等のICカードを大量に発行する会社においては、ICカード発行前等のICチップに記録されているデータの整合性が問われない状況では、データ整合性検査に要する時間を短縮することで発行処理能力を向上できる方式が望まれている。加えてICカード運用時等のICチップに記録されているデータの整合性が問われる状況においては、ICカードはICカード内部に記録しているデータの整合性に誤りがあるまま動作しないことが望ましい。
本発明は、前述の課題を鑑みて、発行処理前等のデータの整合性を問われにくい状況においてはデータ整合性検査を省くことで、データ書き込み処理やデータ読み出し処理等の処理時間を短縮できるICカードおよびICカード用プログラムを提供することを目的とする。加えて、ICカード運用時等のICチップに記録しているデータの整合性を問われる状況においては、ICカード内部に記録されているデータの整合性検査を実行するICカードおよびICカード用プログラムを提供することも目的とする。
上記課題を鑑みて、請求項1に記載のICカードは、記録領域に記録されたデータファイルの整合性を,前記データファイルのCRCと該CRCのビットを反転させて結合した4バイトの誤り検出符号を用いて検査するデータ整合性検査手段を具備したICカードにおいて、前記データファイルに書き込み処理を実行する前に、前記データファイルに付与された前記誤り検出符号の値を確認し、前記誤り検出符号の値が4バイトの「00h」である特定値の場合、前記データ整合性検査手段を実行させずに前記書き込み処理を実行し、前記誤り検出符号が前記特定値でない場合、前記データ整合性検査手段を実行させて前記データファイルに付与された前記誤り検出符号を検査させ、前記誤り検出符号の検査結果が正常の場合のみ前記書き込み処理を実行し、前記書き込み処理を実行した後、前記データファイルに書き込んだデータから演算した前記誤り検出符号を前記データファイルに付与する書き込みコマンドを備えている。カード発行前等の記憶領域に格納されているデータの整合性を問われない状況においては、データに付加する誤り検出符号を特定値に設定しておくことで、データ整合検査を省くことができ、書き込みコマンドの処理時間を短縮できる。また、書き込みコマンド処理後に誤り符号を演算値とすることで、カード運用時等ではデータ整合性検査は実行され、ICカード内部に記録されているデータの整合性に誤りがあるままの状態でICカードが動作することを防ぐ。また,前記特定値を前記データ整合性検査手段では演算されない値とすることで、カード運用時に前記演算された誤り符号と前記特定値が一致することはなくなる。
更に,請求項1に記載のICカードは、前記データファイルの内容を読み出し処理を実行する前に、前記データファイルの前記誤り検出符号の値を確認し、該誤り検出符号の値が前記特定値の場合、前記データ整合性検査手段を実行させずに前記読み出し処理を実行し、前記誤り検出符号が前記特定値でない場合、前記データ整合性検査手段を実行させて前記データファイルに付与された前記誤り検出符号を検査させ、前記誤り検出符号の検査結果が正常の場合のみ前記読み出し処理を実行する読み出しコマンドを備えている。このような読み出しコマンドをICカードに備えさせることで、上述した書き込みコマンドと同様に、読み出しコマンドの処理時間を短縮できる。
また,請求項2に記載のICカード用プログラムは、データファイルに書き込み処理を実行する前に、前記データファイルに付与され,前記データファイルのCRCと該CRCのビットを反転させて結合した4バイトの誤り検出符号の値を確認し、前記誤り検出符号の値が4バイトの「00h」である特定値の場合、前記誤り検出符号を用いたデータ整合性検査を実行せずに前記書き込み処理を実行し、前記誤り検出符号が前記特定値でない場合、前記データ整合性検査を実行して、前記データファイルに付与された前記誤り検出符号を検査し、前記誤り検出符号の検査結果が正常の場合のみ前記書き込み処理を実行し、前記書き込み処理を実行した後、前記データファイルに書き込んだデータから演算した前記誤り検出符号を前記データファイルに付与する書き込みコマンドと,前記データファイルの内容を読み出し処理を実行する前に、前記データファイルの前記誤り検出符号の値を確認し、該誤り検出符号の値が特定値の場合、前記誤り検出符号を用いたデータ整合性検査を実行させずに前記読み出し処理を実行し、前記誤り検出符号が前記特定値でない場合、前記データ整合性検査を実行して、前記データファイルに付与された前記誤り検出符号を検査し、前記誤り検出符号の検査結果が正常の場合のみ前記読み出し処理を実行する読み出しコマンドとしてICカードを機能させるためのICカード用プログラムである。本ICカード用プログラムをICカードに実装することで、請求項1に記載のICカードを実現できる。
前述で示した通り本発明によれば、データに付加した誤り検出符号を特定値に設定することで、発行処理前等のデータの整合性を問われにくい状況においてはデータ整合性検査を省くことができ、データ書き込み処理等のコマンド処理時間を短縮できるICカードおよびICカード用プログラムを提供できる。加えて、コマンド処理実行後に前記誤り検出符号を特定値から前記データ整合性検査手段で演算された誤り検出符号に更新することで、カード発行後の運用時等においてはICカード内部に記録されているデータの整合性に誤りがあるまま動作することを防ぐことができる。
以下、本発明の実施の形態として、本発明をデータ書き込みコマンドおよびデータ読み出しコマンドに適用した例について、図を参照しながら詳細に説明する。図1はマルチアプリケーション型ICカードの基本構成図、図2はICチップの構成図、図3はアプリケーションソフトの説明図、図4はアプリケーションデータの説明図、図5はレコードデータの説明図、図6はデータ書き込みコマンドの動作フロー図、図7はEEPROM内部状態の説明図、図8はデータ読み出しコマンドの動作フロー図である。
図1はマルチアプリケーション型ICカードの基本構成図である。本実施の形態のICカードはマルチアプリケーション型ICカードであり、図1に示すように、マルマルチアプリケーション型ICカード10は、ハードウェアとしてICチップ20を、ソフトウェアとしてマルチアプリケーションOS30とアプリケーションソフト40を有している。
図2はICチップ20のハードウェア構成図である。ICチップ20には、外部装置からのデータもしくは電気信号に基いてICチップ内部全体を制御し、データの論理和・論理否定等の演算機能を有する中央演算装置21(以下、CPUと記す。CPUはCentral Processing Unitの略)と、プログラムを記憶する不揮発性の記憶デバイスとして読み出し専用メモリ22(以下、ROMと記す。ROMはRead Only Memoryの略)と、プログラムもしくはデータを記憶する揮発性の記憶デバイスとしてランダムアクセスメモリ23(以下、RAMと記す。RAMはRandom Access Memory の略)と、同じくプログラムもしくはデータの記憶デバイスとして電気的に消去・書き換えできるROM24(以下、EEPROMと記す。EEPROMはElectrically Erasable Programmable Read-Only Memory の略)と、CRCを演算する回路としてCRC演算回路25と、接触端子27を介して外部装置90と通信するための手段としてI/O制御回路26を具備している。
CRC演算回路25は、ITU−T(国際 電気通信連合電気通信標準化部門)の勧告に従ったCRC16生成器である。CRC演算回路25の出力は16ビット、すなわち2バイトの値で、8ビット単位すなわち1バイト単位でデータの誤りを検出できる。CRC演算回路25のインプットレジスタに1バイトのデータを入力すると、CRC演算回路25にてCRCの演算が自動的に行われアウトプットレジスタから演算結果が出力される。前記インプットレジスタに連続して1バイトずつデータを入力することで、任意のデータ長のCRCを演算することができる。
マルチアプリケーションOS30とは、図1に示すように1枚のICカードに複数のアプリケーション40を搭載できるOSである。マルチアプリケーションOS30は、I/O制御回路26を制御し接触端子27を介して外部装置90とデータ通信するプログラム等のアプリケーションソフト40で共通に利用できる関数と、アプリケーションソフト40をEEPROM24に書き込む機能等の基本機能を有し、マルチアプリケーションOS30のコードはROM22に記録されている。電気的にデータの消去・書き換えが行えるEEPROM24にアプリケーションソフト40を搭載することで、前記マルチアプリケーションOS30ではカード発行後においてもアプリケーションソフト40の削除・追加が行えることが特徴である。
アプリケーションソフト40はクレジットや電子マネーなどのプログラムであり、アプリケーションソフト40ごとにデータ書き込みコマンドまたはデータ読み出しコマンドなどのアプリケーションソフト40で使用するコマンドや、データ整合性検査方式またはデータファイル構造などを独自に定義できる。本発明を適用したデータ書き込みコマンドおよびデータ読み出しコマンドはこのアプリケーションソフト40で定義されたコマンドであり、マルチアプリケーションOS30の種別は問わない。
図3はEEPROM24に搭載するアプリケーションソフト40の構造図である。アプリケーションソフト40は、アプリケーションのプログラムであるアプリケーションコード410と、アプリケーションコード410が使用するアプリケーションデータ420から構成されている。
アプリケーションコード410には、データの整合性を検査するデータ整合性検査コード411、EEPROM24にデータを書込むデータ書き込みコマンドコード412、EEPROM24からデータを読み出すデータ読み出しコマンドコード413およびその他アプリケーションソフト40で必要なプログラムコード414が記録されている。データ整合性検査コード411は、CPU21が有する演算機能とCRC演算回路25を利用して誤り検出符号を演算し、EEPROM24に記録されたデータの整合性検査を実行するデータ整合性検査手段である。なおデータ書き込みコード412およびデータ読み出しコード413は、それぞれ本発明を適用したプログラムである。
アプリケーションデータ420は、複数のデータファイル421から構成されている。各データファイル421には、アプリケーションが使用するクレジット番号、電子マネーの金額、電子証明証等の情報がデータとして記憶される。
図4はデータファイル421の構造図である。データファイル421は複数のレコードデータ430が連なった構造になっている。
図5はレコードデータ430の構造図である。レコードデータ430はレコードデータ430の属性を示す1バイトのTAGフィールド431、データの長さを示す1バイトのLENフィールド432、LENフィールドで示された長さのデータを有するデータフィールド433、レコードデータの整合性検査に使用する誤り検出符号としてとして4バイトのEDCフィールド434から構成されている。
本実施の形態で用いる誤り検出符号は、TAGフィールド431、LENフィールド432およびデータフィールド433に記録されたデータからCRC演算回路25を用いて演算した2バイトのCRC演算値と、前記CRC演算値のすべてのビットを反転した2バイトの値とから構成されている。データ整合性検査コード411は、EEPROM24に記録された前述のデータから前記誤り検出符号を演算し、EEPROM24に記録されたEDCフィールド434の値と比較する。データ整合性検査コード411は、演算した誤り検出符号とEDCフィールドの値が一致していればデータの整合性に誤りは無いと判断し、値が一致しなければデータの整合性に誤りが有ると判断する。
CRC演算値の2バイトに前記CRC演算値のすべてのビットを反転した2バイトを加えた4バイトのデータを誤り検出符号とすることで、「00000000h」の4バイトの値は、データ整合性検査の算術アルゴリズム上において演算されない値となるため、「00000000h」は特定値として使用される。なぜならCRC演算値が「0000h」の時は、誤り検出符号は「0000FFFFh」となり特定値とは一致せず、それ以外のCRC値の場合はCRC演算値自体が「0000h」でないため特定値とは一致しないため、前記算出アルゴリズムで演算される誤り検出符号は特定値と一致することはない。
ここから、本発明を適用したデータ書き込みコマンドの動作について図6と図7を参照しながら説明する。図6は本発明を適用したデータ書き込みコード412の動作フロー図、図7はデータファイル450のEEPROM24の内部状況を表した図である。図7においては、本発明の要点を明確にするために、アプリケーションデータ420のデータファイルはデータファイル450の1つ、データファイル450に含まれるレコードデータはレコードデータ460、470の2つとしている。
図7(a)は、データファイル450がマルチアプリケーションOS30によって書込まれた直後のデータファイル450のメモリ領域を示した図である。図7(a)に示すように、データファイル450には2つのレコードデータ460、470が初期状態で記録されている。
レコードデータ460のTAGフィールドには「01h」、LENフィールドには「08h」、データフィールドには初期値として「FFFFFFFFFFFFFFFFh」が記録されている。レコードデータ470のTAGフィールドには「02h」、LENフィールドには「08h」、データフィールドには初期値として「FFFFFFFFFFFFFFFFh」が記録されている。またレコードデータ460、470のEDCフィールドには、それぞれ特定値として「00000000h」が記録されている。
まず初めに図7(a)の状態においてレコードデータ460にデータを書き込む処理フローについて図6を参照しながら説明する。マルチアプリケーションOS30が外部装置からレコードデータ460に対しデータを書き込むデータ書き込みコマンドを受信すると、マルチアプリケーションOS30は前記データ書き込みコマンドで送信されたデータをRAM23に展開する。ここで前記RAM23に展開されたデータは、レコードデータ460のTAGフィールド、LENフィールドおよびデータフィールドを少なくとも含んでいるデータである。マルチアプリケーションOS30はRAM23にデータを展開した後、アプリケーションソフト40に前記データ書き込みコマンド処理を依頼する。アプリケーションソフト40は、アプリケーションコード410に記録されているデータ書き込みコマンドコード412を実行しレコードデータ460に対しデータ書き込み処理を開始する(S10)。
データ書き込み処理においては、まず、はじめにレコードデータ460のEDCフィールドの値と特定値すなわち「00000000h」を比較する。(S11)。図7(a)においてレコードデータ460のEDCフィールドの値は特定値すなわち「00000000h」と一致しているため、レコードデータ460のデータ整合性検査S12をスキップし、レコードデータ460のデータ書き込み処理S14へ進む。
データ書き込み処理においては、前記RAM23に展開されたデータのTAGフィールドおよびLENフィールドに対応する値とレコードデータ460に記録されているそれぞれの値を比較し、各々の値が一致していれば、同じく前記RAM23に展開されたデータフィールドに対応する値をレコードデータ460のデータフィールドに書き込む処理を行う(S14)。
書き込み終了後、レコードデータ460のデータフィールドに書込んだデータを読み出し、前記RAM23に展開されているデータと一致することを確認する(S15)。
前記フィールドに書き込まれたデータとRAM23に展開されたデータがすべて一致していれば、レコードデータ460のTAGフィールド、LENフィールドおよびデータフィールドに記録されたデータをCRC演算回路25のインプットレジスタに入力し、CRC演算回路25のアウトプットレジスタからCRC演算値を取得する。前記CRC演算値のすべてのビットを反転させた値をCPU21の論理否定演算機能を用いて計算し、前記CRC演算値と前記CRC演算値のすべてのビットを反転させた値の合計4バイトを、レコードデータ460のEDCフィールドに記録し(S16)、次のステップに進む。
データ書き込み処理が正常に終了した場合は、データ書き込みコマンドが正常に終了したことを示すメッセージをマルチアプリケーションOS30に返信し(S17)、レコードデータ460に対するデータ書き込みコマンド処理を終了する(S20)。
前記データフィールドに書き込まれたデータと前記RAM23に展開されたデータが一致しなければ、データ書き込みコマンドが異常に終了したことを示すメッセージをマルチアプリケーションOS30に返信し(S18)、レコードデータ460に対するデータ書き込みコマンド処理を終了する(S20)。
図7(b)は、レコードデータ460に前記データ書き込みコマンドにて「0001020304050607h」を書き込んだ後のデータファイル450のメモリ領域を示した図である。図7(b)においてはレコードデータ460のデータフィールドには前記データが書き込まれ、EDCフィールドには特定値ではない誤り検出符号「E4D11B2E」が書き込まれている。またレコードデータ470のデータはすべて初期状態のままである。
以下に図7(b)の状態において、レコードデータ460に「1011121314151617h」を書き込む処理について説明する。前述のようにマルチアプリケーションOS30がRAM23にデータを展開した後、アプリケーションソフト40にてデータ書き込みコマンド412が実行される(S10)。
まず始めにレコードデータ460のEDCフィールドの値と特定値すなわち「00000000h」を比較する(S11)。図7(b)においてはレコードデータ460のEDCフィールドは「E4D11B2E」であり特定値すなわち「00000000h」と一致しておらず、レコードデータ460のデータ整合性検査(S12)へ進む。
データ整合性検査においては、データ整合性検査コード411がレコードデータ460のTAGフィールド、LENフィールドおよびデータフィールドのデータをCRC演算回路25にインプットしCRC演算値を取得する。前記CRC演算値に前記CRC値演算値のすべてのビットを反転させたデータを加えた合計4バイトの値をレコードデータ460のEDCフィールドの値と比較する(S12)。値が一致しているときはレコードデータ460のデータ整合性検査を正常としS14へ進み、一致していないときはデータの整合検査を異常としS18へ進む(S13)。
データ整合性検査が正常の場合の処理、すなわちS14以降の処理は前述の手順と同じである。
データ整合性検査が異常の場合は、マルチアプリケーションOS30にデータの整合性異常を示すメッセージを返信し(S18)、レコードデータ460の書き込み処理を終了する(S20)。
図7(c)はレコードデータ460のデータフィールドに「1011121314151617h」を書込んだ後の図である。図7(c)においては、レコードデータ460のデータフィールドおよびEDCフィールドの値がそれぞれ更新されている。なおレコードデータ470の各フィールドは初期状態が保たれている。
上述のように、本発明を適用したデータ書き込みコマンドにおいては、書き込み対象の誤り検出符号が特定値の場合にはデータ書き込み前のデータ整合性検査は実行されず、特定値と異なる場合にデータ書き込み前のデータ整合性検査は実行される。またデータ書き込み処理実行後はデータ整合性検査が実行されるため、対象とするデータの整合性に誤りがある場合はデータの書き込み処理は実行されない。
次にデータ読み出しコマンド処理について説明する。図8はデータ読み出しコマンドの動作フロー図である。まず始めに図7(c)の状態において、レコードデータ460のデータ読み出し処理について説明する。
マルチアプリケーションOS30がレコードデータ460のデータを読み出すデータ読み出しコマンドを受信すると、マルチアプリケーションOS30は前記データ読み出しコマンド処理をアプリケーションソフト40に依頼する。アプリケーションソフト40はアプリケーションコード410に記録されているデータ読み出しコマンドコード413を実行し、レコードデータ460に対してデータ読み出し処理を開始する(S30)。
データ読み出し処理においては、まず始めにレコードデータ460のEDCフィールドの値と特定値すなわち「00000000h」を比較する(S31)。図7(c)においてレコードデータ460のEDCフィールドは「810A7EF5」であり特定値すなわち「00000000h」と一致しておらず、レコードデータ460のデータ整合性検査(S32)へ進む。
データ整合性検査においては、データ整合性検査コード411がレコードデータ460のTAGフィールド、LENフィールドおよびデータフィールドのデータをCRC演算回路25にインプットしCRC演算値を取得する。前記CRC演算値に前記CRC値演算値のすべてのビットを反転させたデータを加えた合計4バイトの値とレコードデータ460のEDCフィールドの値を比較する(S32)。値が一致しているときはレコードデータ460のデータ整合性検査を正常としデータ読み出し処理S34に進み、一致していないときはデータ整合検査を異常としS36へ進む(S33)。
データ整合性検査が正常の場合は、レコードデータ460のTAGフィールド、LENフィールドおよびデータフィールドの値を読み出しRAM23に展開し(S34)、データ読み出しコマンド正常終了のメッセージをマルチアプリケーションOS30に返信し、マルチアプリケーションOS30にRAM23に展開したデータを外部装置90に送信する処理を依頼した後(S37)、データ読み出しコマンドの処理を終了する(S38)。
データ整合性検査が異常の場合は、マルチアプリケーションOS30にデータ読み出しコマンドの異常終了を返信した後(S36)、データ読み出しコマンドの処理を終了する(S38)。
ここからレコードデータ470のデータを読み出す処理に内容について説明する。前に述べた手順でアプリケーションソフト40はデータ読み出しコマンドコード413を開始する(S30)。
データ読み出し処理においては、まず始めにレコードデータ460のEDCフィールドの値と特定値すなわち「00000000h」を比較する。(S31)。図7(c)においてレコードデータ470のEDCフィールドは「00000000h」であり特定値すなわち「00000000h」と一致しているため、レコードデータ470のデータ整合性検査S32はスキップし、データ読み出し処理S34へ進む。S34以降の手順は、前に述べた通りである。
上述のように、本発明を適用したデータ読み出しコマンドにおいては、読み出し対象の誤り検出符号が特定値の場合にはデータ読み出し前のデータ整合性検査は実行されず、特定値と異なる場合にはデータ読み出し前のデータ整合性検査は実行される。
これまで述べたように、ICカード発行時等のデータの整合性が問われにくい場合には、誤り検出符号を特定値に設定することで、本発明を適用したデータ書き込みコマンドまたはデータ読み出しコマンド等の処理時においてはデータ整合性検査を省くことができコマンドの処理時間を短縮することができる。また発行後等は、前記誤り検出符号が特定値からデータ整合性検査手段で演算された値に更新されるため、前記コマンド処理時にはデータ整合性検査が実行され、データの整合性に誤りがあるまま前記コマンド処理が実行されることはない。
また本実施の形態においては、データ整合性検査に用いる算術アルゴリズムとしてCRCを用いが、他の算術アルゴリズム、例えばチェックサムや水平冗長検査でも良い、また本実施の形態ではマルチアプリケーション型OSに適用した例を示したが、アプリケーションをROMに格納する専用OS(NativeOs)でも本発明は適用できる。加えてデータファイル毎にデータファイル全体の整合性検査に用いる誤り検出符号を付加し、本発明を適用しても構わない。
マルチアプリケーション型ICカードの基本構造図 ICチップの構造図 アプリケーションソフトの説明図 アプリケーションデータの説明図 レコードデータの説明図 データ書き込みコマンドの動作フロー図 データファイル内部状態の説明図 データ読み出しコマンドの動作フロー図
10 マルチアプリケーション型ICカード
20 ICチップ
21 CPU
22 ROM
23 RAM
24 EEPROM
25 CRC演算回路
26 I/O制御回路
27 接触端子
30 マルチアプリケーションOS
40 アプリケーションソフト
410 アプリケーションコード
411 データ整合性検査コード
412 データ書き込みコマンドコード
413 データ読み出しコマンドコード
420 アプリケーションデータ
421 データファイル
430 レコードデータ
431 TAGフィールド
432 LENフィールド
433 データフィールド
434 EDCフィールド
450 データファイル
460 レコードデータ
470 レコードデータ

Claims (2)

  1. 記録領域に記録されたデータファイルの整合性を,前記データファイルのCRCと該CRCのビットを反転させて結合した4バイトの誤り検出符号を用いて検査するデータ整合性検査手段を具備したICカードにおいて、前記データファイルに書き込み処理を実行する前に,前記データファイルに付与された前記誤り検出符号の値を確認し,前記誤り検出符号の値が4バイトの「00h」である特定値の場合,前記データ整合性検査手段を実行させずに前記書き込み処理を実行し,前記誤り検出符号が前記特定値でない場合,前記データ整合性検査手段を実行させて前記データファイルに付与された前記誤り検出符号を検査させ,前記誤り検出符号の検査結果が正常の場合のみ前記書き込み処理を実行し,前記書き込み処理を実行した後,前記データファイルに書き込んだデータから演算した前記誤り検出符号を前記データファイルに付与する書き込みコマンドと,前記データファイルの内容を読み出し処理を実行する前に,前記データファイルの前記誤り検出符号の値を確認し,該誤り検出符号の値が前記特定値の場合,前記データ整合性検査手段を実行させずに前記読み出し処理を実行し,前記誤り検出符号が前記特定値でない場合,前記データ整合性検査手段を実行させて前記データファイルに付与された前記誤り検出符号を検査させ,前記誤り検出符号の検査結果が正常の場合のみ前記読み出し処理を実行する読み出しコマンドを備えたことを特徴とするICカード。
  2. データファイルに書き込み処理を実行する前に,前記データファイルに付与され,前記データファイルのCRCと該CRCのビットを反転させて結合した4バイトの誤り検出符号の値を確認し,前記誤り検出符号の値が4バイトの「00h」である特定値の場合,前記誤り検出符号を用いたデータ整合性検査を実行せずに前記書き込み処理を実行し,前記誤り検出符号が前記特定値でない場合,前記データ整合性検査を実行して,前記データファイルに付与された前記誤り検出符号を検査し,前記誤り検出符号の検査結果が正常の場合のみ前記書き込み処理を実行し,前記書き込み処理を実行した後,前記データファイルに書き込んだデータから演算した前記誤り検出符号を前記データファイルに付与する書き込みコマンドと,前記データファイルの内容を読み出し処理を実行する前に,前記データファイルの前記誤り検出符号の値を確認し,該誤り検出符号の値が特定値の場合,前記誤り検出符号を用いたデータ整合性検査を実行させずに前記読み出し処理を実行し,前記誤り検出符号が前記特定値でない場合,前記データ整合性検査を実行して,前記データファイルに付与された前記誤り検出符号を検査し,前記誤り検出符号の検査結果が正常の場合のみ前記読み出し処理を実行する読み出しコマンドとしてICカードを機能させるためのICカード用プログラム。
JP2004010211A 2004-01-19 2004-01-19 データ整合性検査を省けるicカードおよびicカード用プログラム Expired - Fee Related JP4601968B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004010211A JP4601968B2 (ja) 2004-01-19 2004-01-19 データ整合性検査を省けるicカードおよびicカード用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004010211A JP4601968B2 (ja) 2004-01-19 2004-01-19 データ整合性検査を省けるicカードおよびicカード用プログラム

Publications (2)

Publication Number Publication Date
JP2005202822A JP2005202822A (ja) 2005-07-28
JP4601968B2 true JP4601968B2 (ja) 2010-12-22

Family

ID=34823006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004010211A Expired - Fee Related JP4601968B2 (ja) 2004-01-19 2004-01-19 データ整合性検査を省けるicカードおよびicカード用プログラム

Country Status (1)

Country Link
JP (1) JP4601968B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102559A (ja) * 2005-10-05 2007-04-19 Toshiba Corp 携帯可能電子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165487A (ja) * 1990-10-29 1992-06-11 Dainippon Printing Co Ltd Icカードにおけるエラーチェック方法
JPH09231113A (ja) * 1995-12-22 1997-09-05 Dainippon Printing Co Ltd Icカード
JP2003188798A (ja) * 2001-12-18 2003-07-04 Fujitsu Ltd 半導体装置、携帯端末装置および間欠受信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165487A (ja) * 1990-10-29 1992-06-11 Dainippon Printing Co Ltd Icカードにおけるエラーチェック方法
JPH09231113A (ja) * 1995-12-22 1997-09-05 Dainippon Printing Co Ltd Icカード
JP2003188798A (ja) * 2001-12-18 2003-07-04 Fujitsu Ltd 半導体装置、携帯端末装置および間欠受信方法

Also Published As

Publication number Publication date
JP2005202822A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
US8751817B2 (en) Data processing apparatus and validity verification method
KR940007351B1 (ko) 휴대가능 전자장치
US20160210063A1 (en) Data writing method and system
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法
JP4601968B2 (ja) データ整合性検査を省けるicカードおよびicカード用プログラム
JP4764034B2 (ja) 携帯可能電子装置、icカードおよび携帯可能電子装置の自己診断方法
JP5259507B2 (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ処理方法
JP4863472B2 (ja) メモリ管理方法
JP6314859B2 (ja) 電子制御装置及びソフトウェア書き換えシステム
JP4266742B2 (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
JP2910745B2 (ja) 記憶装置及びデータ処理方法
JP5699651B2 (ja) 情報処理装置
JP2006107363A (ja) 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
CN101911088B (zh) 安全数据传递方法
KR101437962B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
JP4868979B2 (ja) 携帯可能電子装置およびicカード
JP4691355B2 (ja) 不揮発性メモリ
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
JP4888862B2 (ja) メモリ管理方法
KR100907550B1 (ko) 시리얼 eeprom의 손상된 데이터를 복구하기 위한장치 및 방법
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
JP5786702B2 (ja) セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム
US10379875B2 (en) Solid state storage device and program loading method thereof
JP3314719B2 (ja) フラッシュeepromとその試験方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100928

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100929

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4601968

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees