JP5853559B2 - Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード - Google Patents

Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード Download PDF

Info

Publication number
JP5853559B2
JP5853559B2 JP2011220356A JP2011220356A JP5853559B2 JP 5853559 B2 JP5853559 B2 JP 5853559B2 JP 2011220356 A JP2011220356 A JP 2011220356A JP 2011220356 A JP2011220356 A JP 2011220356A JP 5853559 B2 JP5853559 B2 JP 5853559B2
Authority
JP
Japan
Prior art keywords
page
area
update
card
data
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.)
Active
Application number
JP2011220356A
Other languages
English (en)
Other versions
JP2013080397A (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 JP2011220356A priority Critical patent/JP5853559B2/ja
Publication of JP2013080397A publication Critical patent/JP2013080397A/ja
Application granted granted Critical
Publication of JP5853559B2 publication Critical patent/JP5853559B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データを管理する装置及び方法等の技術分野に関する。
ICカードを用いた商取引等においては、ICカードに搭載されたICチップの不揮発性メモリ等に記憶される種々の重要なデータ(例えば、決済処理に用いられる個人情報等)が、必要に応じて読み出され、消去され、又は、新たなデータに書き換えられる。
この不揮発性メモリは、電力を失ってもデータを保持し続ける特性があるが、ICカードの処理中、例えば、当該不揮発性メモリに対してデータが書き込まれている間においては、書き込み中のデータを保障することができない。
具体的には、ICカードがリーダライタ装置に挿入され、当該不揮発性メモリに対してデータが書き込まれている間に、利用者によってICカードがリーダライタ装置から強制的に引き抜かれた場合(所謂、利用者による引き抜き)や、ICカードとリーダライタ装置との端子間で接触不良が生じた場合等の瞬断が発生した場合には、ICカードにおける処理が中断され、カード内の大切なデータが破壊される虞がある。
このため、一般的なICカードは、瞬断によるデータの破壊を防止すべく、瞬断を考慮した保護機能(専用の保護機能)が搭載されている。
そして、上述した瞬断を考慮した保護機能は、メモリ管理者としてカードOSの基本的な機能として提供されている。以下、この瞬断を考慮した保護機能を単に「カードOSによる非更新領域の保護機能」と称する。
この「カードOSによる非更新領域の保護機能」の概要は、更新されるデータ以外のデータである非更新領域のデータを保護するため、当該データのバックアップを、予め他の領域(例えば、不揮発性メモリに設定されたバックアップ領域等)に書き込んだ後、実際にデータの更新(書き込みを含む)を行う。更新作業が完了した場合は、バックアップ領域に更新が成功した情報を追加する。一方、更新の途中に処理が中断(瞬断)されたならば、次にカードが活性化した直後にバックアップ領域の内容を調べ、更新作業が完了していないデータに対して実際のデータ領域(この場合、非更新領域)に書き戻すようになっている。
また、特許文献1では、書き込み領域縮小化及びバックアップの処理時間の短縮化の観点から、バックアップ対象として、非更新領域のデータのみを、予め他の領域にコピーする技術が開示されている。
一方、更新領域の保護に関しては、JAVA(登録商標)カードが有する機能において提供されている。
JAVAカードは、公知の技術であるため詳しい説明は省略するが、一般的なICカードのOSの上にバーチャルマシン(Virtual Machine)をのせたICカードであり、所定のプラットフォームのもと、JAVA言語でICカードのアプリケーションを作成することが可能となっている。このプラットフォームは、例えば、JAVA CARD 3.0等で規格化されている。
そして、JAVAカードでは、更新領域の保護に関してトランザクション(Transaction)という仕組みが利用されている。トランザクションとは、特定の一連の処理の開始前もしくは終了後の何れかの状態のみを取り得る仕組みをいう。
上述した「カードOSの保護機能における非更新領域の保護機能」は、一度の更新(例えば、一のデータの書き込み)に対して有効であるのに対して、このトランザクションによる更新領域の保護では、予め定められた一又は複数の書き込み(以下、単に「連続した書き込み」と称する。)において、連続した書き込みの保障が可能である。この連続した書き込みの保障とは、更新前の更新領域の状態、又は更新後の更新領域の状態の何れかの状態を取り得ることができることをいう。以下、トランザクションにおける更新領域の保護について、単に、「トランザクションによる更新領域の保護機能」と称する。
この「トランザクションによる更新領域の保護機能」の一例として、上記更新前の更新領域の状態を取り得ることを可能とするため、不揮発性メモリに記憶されたデータのうち、更新される領域に既に記憶されているデータをバックアップ領域へ書き込む。そして、更新の途中に処理が中断されたならば、次にカードが活性化した直後にバックアップ領域の内容を調べ、更新作業が完了していないデータに対して、バックアップ領域へ書き込まれたデータを、実際のデータ領域(この場合、更新領域)へ書き戻すようになっている。
また、従来のICカードでは、不揮発性メモリに対してページ単位でデータが更新されるのであるが、このページあたりに記憶されるデータの容量(単位)が1byte、2byte、又は4byte、と小さいことが通常であり、更新(データの書き込み及び消去等)される時間も短かった。
そのため、従来のICカードでは、「カードOSによる非更新領域の保護機能」(記憶領域の更新領域を保護する機能)と「トランザクションによる更新領域の保護機能」(非更新領域を保護する機能)が別々に定義されており、ICカードがデータを更新する際に、「カードOSによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能するようになっていた。
特開2008−134945号公報
しかしながら、近年、不揮発性メモリの大容量化が進み、ページあたりに記憶されるデータの容量が128byte、又は256byteと増加している。このページあたりに記憶されるデータの容量の増加に伴い、バックアップされる更新領域及び非更新領域のデータも拡大しており、更新やバックアップに要する処理時間が増加している。
さらに、「カードOSによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能すると、更新やバックアップに要する処理時間はさらに増加し、ユーザの利便性を損なうといった問題点がある。
そこで、本発明は、このような点等に鑑みてなされたものであり、データの保護機能を複数備えるICチップにおいて、適切な保護機能によってデータを保護することにより、データの保護機能による処理時間の短縮を図るICチップ、ICチップにおける処理方法、ICチップ用処理プログラム、及びICカードを提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップであって、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段と、新前の更新領域に記憶されるデータを保護する第2の保護手段と、を備え、前記第2の保護手段は、新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させないことを特徴とする。
請求項2に記載の発明は、請求項1に記載のICチップであって、前記第1の保護手段は、ICチップの基本的な動作を管理するオペレーティングシステムが備える基本的な機能であって、当該オペレーティングシステムの制御に基づいて実行され、前記第2の保護手段は、前記オペレーティングシステム上で動作し、前記ICチップに所定の機能を実行させるアプリケーションの要求に応じた前記オペレーティングシステムの制御に基づいて実行されることを特徴とする。
請求項3に記載の発明は、請求項1又は2に記載のICチップであって、前記更新領域が属するページが、前記記憶部に既に記憶されているか否かを検索する検索手段と、前記更新領域が属するページが、前記記憶部に既に記憶されていることが検索されなかった場合には、前記第2の保護手段は、当該更新領域が属するページに記憶される全てのデータを、前記記憶部に記憶して保護することを特徴とする。
請求項4に記載の発明は、請求項1乃至3の何れか1項に記載のICチップであって、特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行状態を監視する監視手段をさらに備え、前記第2の保護手段は、前記トランザクションの実行中に、更新前の更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶し、当該ページに非更新領域が存在しないものとしてオぺレーティングシステムに通知して、前記第1の保護手段を機能させないことを特徴とする。
請求項5に記載の発明は、請求項1乃至4の何れか一項に記載のICチップと、ICカード基体と、を備えることを特徴とする。
請求項6に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップにおける処理方法であって、前記ICチップは、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段と、新前の更新領域に記憶されるデータを保護する第2の保護手段と、を備え、前記第2の保護手段が新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させない工程を含むことを特徴とする。
請求項7に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップに含まれるコンピュータを、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段、新前の更新領域に記憶されるデータを保護する第2の保護手段、として機能させ、前記第2の保護手段は、新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させないことを特徴とする。
請求項8に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップであって、前記データを更新する領域である更新領域が属するページが、前記記憶部に既に記憶されているか否かを検索する検索手段と、を備え、前記更新領域が属するページが、前記記憶部に既に記憶されていることが検索されなかった場合には、当該更新領域が属するページに記憶される全てのデータを、前記記憶部に記憶して保護することを特徴とする。
本発明によれば、データの保護機能を複数備えるICチップにおいて、適切な保護機能によってデータを保護することにより、データの保護機能による処理時間の短縮を図ることができる。
本実施形態にかかるICカードの構成及び機能概要を示すブロック図である。 ICカードのソフトウェア構成を模式的に示す図である。 カードOSによる非更新領域の保護機能が適用される場合のCPU6の動作の概要を示すフローチャートである。 不揮発性メモリ5のデータ領域にデータが記憶される状態を示す概念図である。 ページ単位で不揮発性メモリ5のデータ領域にデータが記憶される状態を示す概念図である。 トランザクションによる更新領域の保護機能が適用される場合のCPU6の動作の概要を示すフローチャートである。 ICカードによって更新されるデータを概念的に示す図である。 ページあたりに記憶されるデータの容量が大容量である場合に、ICカードによって更新されるデータを概念的に示す図である。 本願の第1の実施形態におけるバックアップ領域に書き込まれるデータ構造を概念的に示す図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICカードの一例としての上述したJAVAカードに対して本発明を適用した場合の実施の形態である。以下、JAVAカードに対応したICカードを、単にICカードと称する。
[1. ICカードのハードウェア構成及び機能概要]
まず、図1を参照して、本願のICカードのハードウェア構成及び機能概要について説明する。本実施形態にかかるICカードの構成及び機能概要を示すブロック図である。
図1は、本実施形態にかかるICカードの構成及び機能概要を示すブロック図である。
図1に示すように、ICカード8は、ICチップ1をカード基体7に備えている。
そして、ICチップ1は、I/O回路2、ROM(Read Only Memory)3、RAM(Random Access Memory)4、本願の記憶部の一例としての不揮発性メモリ(例えば、EEPROM(Electrically Erasable and Programmable Read Only Memory))5、CPU(Central Processing Unit)6等を備えて構成されている。なお、I/O回路2を介した外部機器とのデータ通信は、接触方式と非接触方式の何れの方式であってもよい。I/O回路2は、図示しない外部機器とデータ通信するための処理回路である。ROM3は、CPU6によって実行されるべきプログラムが記憶されており、CPU6は、このプログラムに基づいてICチップ1を統括的に制御する。
また、ROM3に記憶されるプログラムとしては、カードOS(本願のオペレーティングシステムの一例)、複数種類のアプリケーションプログラム、及び本発明のICチップ用処理プログラムがある。なお、本発明のICチップ用処理プログラムは、カードOS又はアプリケーションプログラムの一機能として組み込まれてもよい。また、これらのプログラムは、不揮発性メモリ5に記憶されるようにしてもよい。
RAM4は、CPU6がICチップ1を統括的に制御等するために作業領域として使用する記憶領域である。
不揮発性メモリ5は、不揮発性半導体メモリの一種であり、記憶領域に記憶されるデータを消去し、何度でも再記憶ができるPROM(Programmable Rom)である。
また、本実施形態における不揮発性メモリ5は、各領域にアドレスが付されており、所定の領域を1のページとして、一又は複数のページに区画される。このアドレスに基づいて、CPU6は、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新することができる。
そして、不揮発性メモリ5は、CPU6により各種データが書き込まれる(記憶される)データ領域と、詳しくは後述するがバックアップデータが書き込まれるバックアップ領域を有する。
CPU6は、上述したようにプログラムに基づいてICチップ1全体の動作を統括的に制御するとともに、その機能の一部として、データ領域の指定されたページの指定された領域のデータを更新し、さらに、本願の第1の保護手段、第2の保護手段、検索手段、監視手段等として機能する。
なお、更新といった場合には、少なくともデータ領域等に記憶されたデータを書き換えることのみならず、新たにデータを書き込むことを含むものとする。
[2.ICカードのソフトウェア構成及び機能概要]
次に、図2を参照して、ICカードのソフトウェア構成について説明する。
図2は、ICカードのソフトウェア構成を模式的に示す図である。
図2に示すように、ICカードのハードウェアを構成するRAM4、不揮発性メモリ5、及びCPU6等のハードウェア層21は、OS(オペレーティング)層22のカードOSによって制御される。
OS層22は、JAVAカードを動作させるための環境を含めたバーチャルマシン(Virtual Machine)、アプリケーション(アプレット)の管理をするI.S.D.(Issuer Security Domain)、アプレットの関数であるAPIといったモジュールがカードOSにのった状態となっていて、アプリケーション(アプレット)層23が最上位に位置する。
このカードOSは、当該ICカードの基本的な動作を管理するプログラムであり、ハードウェア層21の各ハードウェアを制御したり、各ハードウェアからの処理結果などの情報を受けて動作するプログラムである。
そして、上述した「カードOSによる非更新領域の保護機能」は、メモリ管理者としてカードOSの基本的な機能として提供される。
この「カードOSによる非更新領域の保護機能」は、CPU6を、本願の第1の保護手段として機能させ、本願のカードOSの制御に基づいて、不揮発性メモリ5に記憶されるデータを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護するようになっている。
アプリケーション層23は、カードOS上で動作し、CPU6に所定の機能を実行させるための各種のアプリケーション(アプリケーションA、アプリケーションB等。本願のアプリケーションの一例、以下単に「アプリケーション」とする。)から構成される。
そして、上述した「トランザクションによる更新領域の保護機能」は、アプリケーション層23のアプリケーションの機能として提供されている。
この「トランザクションによる更新領域の保護機能」は、CPU6を、本願の第2の保護手段として機能させ、上記アプリケーションの要求に応じたカードOSの制御に基づいて、更新前の前記更新領域に記憶されるデータを保護するようになっている。
ここで、「カードOSによる非更新領域の保護機能」及び「トランザクションによる更新領域の保護機能」の詳細について説明する。
まず、図3を参照して、「カードOSによる非更新領域の保護機能」が適用される場合のCPU6の動作の概要について説明する。
図3は、カードOSによる非更新領域の保護機能が適用される場合のCPU6の動作の概要を示すフローチャートである。
なお、カードOSが備える機能(例えば、後述する保護機能動作)、及びアプリケーションが備える機能(例えは、後述するコマンドの処理)は、当該カードOS又はアプリケーションの制御に基づいてCPU6によって実行される。すなわち、カードOSが備える機能、及びアプリケーションが備える機能が実行される場合の動作主体は、ICカードのCPU6である。しかし、本実施形態においては、説明の便宜上、カードOSが備える機能が実行される場合の動作主体をカードOSとし、アプリケーションが備える機能が実行される場合の動作主体をアプリケーションとする。
まず、カードOS(CPU6)が、例えばI/O回路2を介して、コマンドを受信すると(ステップS101)、カードOSは、受信したコマンドをどのアプリケーションへ渡すか決定する(ステップS102)。そして、カードOSは、受信したコマンドを、決定されたアプリケーションへ渡す。アプリケーション(CPU6)は、コマンドを取得すると(ステップS103)、コマンドを処理して(例えば、コマンド解釈等)(ステップS104)、必要があれば不揮発性メモリ5のデータを更新する(不揮発性メモリ5へデータを書き込ませる)(ステップS105)。
この不揮発性メモリ5のデータを更新(不揮発性メモリ5への書き込み)は、カードOSが提供する機能の一部になっているので、実際には、カードOSへ、更新の依頼をする(ステップS106へ)。
ここで、図4及び図5を参照して、一般的な不揮発性メモリ5に記憶されるデータの更新について説明する。
図4は不揮発性メモリ5のデータ領域にデータが記憶される状態を示す概念図であり、図5はページ単位で不揮発性メモリ5のデータ領域にデータが記憶される状態を示す概念図である。
一般的に、ICカードの不揮発性メモリのデータの更新は、初期化を行ってから更新される。
具体的に、この更新は、不揮発性メモリのデータ領域に記憶されるデータの値を、0から1、又は1から0へ、一方向へ値を書き込むことをいう。そして、不揮発性メモリでは、初期状態の値が0か1に必ず決定されている。即ち、この更新は、初期状態が0の場合は1へ、初期状態が1であれば0へ値を書き込むことをいう。
初期状態の値にないもの、例えば、初期状態の値が0で、その領域に1の値が書き込まれているものに対して、さらにその値を0と書き込みたいときは、書き込みというよりも初期状態に戻すという(クリアする)概念になっている。
ここで、この書き込みについて図4を参照して説明すると、不揮発性メモリのデータ領域(記憶領域)に、0xAAの値が書き込まれているものに対して(図4(A))、0x55の値を書き込む場合(図4(C))には、初期化が行われて、0xFFという初期値に戻される(図4(B))。その上で改めて、0の値にしなければならないところに対して、0の値が書き込まれるため、書き込みの動作は、データを一度消去して、書き込むといった2段階の動作を伴うものとなっている。
このとき、一度に初期化される領域を1ページとすると、図5に示すように更新領域X(データが書き込まれる領域)が3ページにわたる場合、上述したように不揮発性メモリのデータが更新される際には一度初期化が行われるため、ページA、ページB、及びページCの全てのデータが一度消去されることとなる。
このページA及びページCには、更新データ以外のデータY(非更新領域)が含まれているが、ページ単位でしか消去されないため、この非更新領域に記憶されるデータが消去の対象となり、もともと存在していたデータが消されてしまうこととなる。
この処理の最中、即ち、非更新領域が一度消されたときに瞬断が発生してしまうと、当該非更新領域のデータは消去されたまま(0xFFのまま)になってしまうので、こういった非更新領域を保護、即ち、消去される前の状態に戻そうというのが上述した「カードOSによる非更新領域の保護機能」である。
具体的に、図5においては、非更新領域のデータYは、ページA及びページCに記憶されている。従って、保護されるべきデータは、データYである。従って、ページA及びページCがページ単位で保護対象(バックアップ対象)として、例えば、バックアップ領域等に書き込まれる。以下に、保護対象としてバックアップ領域に書き込まれたデータを、バックアップデータと称する。
このようにして、「カードOSによる非更新領域の保護機能」によって、非更新領域が保護されるようになっている。
図3のフローチャートの説明に戻り、カードOSは、この保護機能を使って、瞬断に備えた更新を行う(ステップS106)。
そして、アプリケーションは、残りの処理があれば、コマンド処理をして(ステップS107)、レスポンスデータを送信するのはカードOSの処理となるため、カードOSへレスポンスデータを通知する(ステップS108)。そして、カードOSはレスポンスデータを取得すると(ステップS109)、例えば、外部装置(リーダライタ装置等)へレスポンスデータを送信する(ステップS110)。
次に、図6を参照して、「トランザクションによる更新領域の保護機能」が適用される場合のCPU6の動作の概要について説明する。
図6は、「トランザクションによる更新領域の保護機能」が適用される場合のCPU6の動作の概要を示すフローチャートである。
上述したように、「トランザクションによる更新領域の保護機能」は、トランザクションにより実現されており、このトランザクションは例えば、上記アプリケーションの機能として提供されている。
この「トランザクションによる更新領域の保護機能」について説明すると、あるコマンド処理の中で、不揮発性メモリに対して、3回の連続した書き込み(書き込み1、書き込み2、書き込み3)が行われる場合を考える。そして、書き込み1及び書き込み2が、連続した書き込みとして定義されているとする。
この場合、「トランザクションによる更新領域の保護機能」として、書き込み1及び書き込み2は、連続した書き込みの保障として、書き込み1と書き込み2の両方を更新する前の更新領域の状態、又は、書き込み1と書き込み2の両方を更新した後の更新領域の状態何れかの状態が保障される。
具体的には、書き込み2の途中で引き抜き等の瞬断が発生した場合、書き込み1を実施する前の書き込み1と書き込み2の更新領域の状態へ戻るようになっている。一方、書き込み3は、予め定められた書き込みとして定義されていないため、連続した書き込みの保障に含まれない。従って、書き込み3の途中に引き抜き等の瞬断が発生しても、書き込み3が書き込まれる前の状態に戻るだけである。
ここで、図6のフローチャートを説明する。
図6で示すフローチャートでは、書き込み1及び書き込み2が連続した書き込みとして定義されているものとする。この連続した書き込みとは、例えば、会員登録において氏名と会員番号に関連性を持たせてカードOSに登録させる場合が想定できる。会員登録における氏名と会員番号の登録は、関連した処理であると想定でき、これらの登録を統括して管理するために、連続した書き込みとして定義するのである。
図6で示すフローチャートの説明として、まず、カードOSが、例えばインターフェースを介して、コマンドを受信すると(ステップS201)、カードOSは、受信したコマンドをどのアプリケーションへ渡すか決定する。そして、カードOSは、受信したコマンドを、決定されたアプリケーションへ渡す(ステップS202)。アプリケーションは、コマンドを取得すると(ステップS203)、コマンドを処理(例えば、コマンド解釈等)する(ステップS204)。
そして、アプリケーションは、取得したコマンドが連続した書き込みとして定義された書き込み命令であると判断した場合には、カードOSへ、"Begin transaction"と称されるトランザクション機能を開始させる指示を与える(ステップS205)。
このトランザクション機能とは、上述したトランザクションによる更新領域の保護機能のことをいい、カードOSへ、上述した連続した書き込みの保障させるものである。以下、カードOSによって連続した書き込みの保障が開始された状態を、「transaction開始」と称する。
カードOSによる「transaction開始」の状態では(ステップS206)、記憶領域のうち、連続した書き込みとしての書き込み1(ステップS207)及び書き込み2(ステップS209)が書き込まれる領域(更新領域)のデータがバックアップ(予め他の領域にコピー)される。そして、トランザクション機能が終了した状態である「Commit transaction」の状態にある場合には(ステップS211)、カードOSは、トランザクション機能を停止する(ステップS212)。
このステップS205〜ステップS212のアプリケーション及びカードOSの処理の一例としては、書き込み1(ステップS207)及び書き込み2(ステップS209)が行われる間に、引き抜き等の瞬断が発生すると、「transaction開始」の前の状態、又は、トランザクション機能が終了した状態である「Commit transaction」の状態にある場合にはトランザクション機能が終了した状態の何れかの状態となる(ステップS208及びステップS209のtransaction機能/保護機能動作。)。
ここで、「transaction開始」の前の状態とは、バックアップされた書き込み1及び書き込み2が書き込まれる領域のデータが読み込まれ、例えば、データ領域に書き込まれることをいう。また、「transaction開始」の前の状態とは、書き込み1及び書き込み2が書き込まれた後(即ち更新された後)に、データ領域に書き込まれたデータが維持されることをいう。
次に、アプリケーションは、他に受信したコマンドがあれば、コマンドを処理する(ステップS213)。ここでは、コマンドの処理Bとして、連続した書き込みとして定義されていない書き込み命令が実行される場合を説明する。
この場合、「トランザクションによる更新領域の保護機能」は働かず、通常の「カードOSによる非更新領域の保護機能」が働くこととなる。
そして、アプリケーションは、カードOSへ、書き込みの依頼をする(ステップS214)。カードOSは、この保護機能を使って、瞬断に備えた書き込みを行う(ステップS215の保護機能動作)。
そして、アプリケーションは、処理が終了すると、カードOSへレスポンスデータを通知する(ステップS216)。そして、カードOSは、レスポンスデータを取得すると(ステップS217)、例えば、外部装置(リーダライタ装置等)へレスポンスデータを送信する(ステップS218)。
このように、従来のICカードでは、「カードOSによる非更新領域の保護機能」(記憶領域の更新領域を保護する機能)と「トランザクションによる更新領域の保護機能」(非更新領域を保護する機能)が別々に定義されていた。
そして、従来のICカードでは、ICカードがデータを更新する際に、「カードOSによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能するようになっていた。
ここで、図7を参照して、「カードOSによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能する場合のCPU6の動作の詳細について説明する。
図7は、ICカードによって更新されるデータを概念的に示す図である。
図7では、不揮発性メモリ5のデータ領域が概念的に示されている。この図7では、1byteを1ブロックとして2つのブロックに区切られた領域を一のページ(例えば、Page−a等)、として、複数のページに区画されたICカードの不揮発性メモリ5のデータ領域が示されている。図7では、複数のページの一例として、Page−aからPage−eが示されている。
そして、この不揮発性メモリ5に対する更新として、A)書き込み1、B)書き込み2、及び、C)書き込み3、が行われる場合を説明する。
これらの書き込みは、不揮発性メモリ5の指定されたページ(Page−a等)の指定された領域(1ブロック目か2ブロック目等)に記憶されるデータを更新するものである。また、書き込み1及び書き込み2は、上述した連続した書き込みとして定義されているものとする。
具体的には、書き込み1はPage−aの2ブロック目からPage−bの1ブロック目までの2ページにわたる2byteの領域の書き込み(図7の11及び12参照)を、書き込み2はPage−c全体に対して2byteの領域の書き込み(図7の21及び22参照)を、書き込み3はPage−dの2ブロック目からPage−e全体に対して2ページにわたる3byteの領域の書き込み(図7の31、32、及び33参照)を、それぞれ実施させるものとする。
A)書き込み1について
A−1)「トランザクションによる更新領域の保護機能」について
書き込み1及び書き込み2は、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み1を実施する前の書き込み1と書き込み2の更新領域の状態を取り得ることを可能とするため、書き込み1が実施される前のPage−aの2ブロック目からPage−bの1ブロック目までに記憶されたデータをバックアップさせる。
具体的には、例えば、アプリケーションは、書き込み1が実施される前のPage−aの2ブロック目からPage−bの1ブロック目までに記憶されたデータ(図7の11及び12参照)をRAM4に一時的に記憶し、その後バックアップ領域へ当該データを、カードOSに書き込ませる。
A−2)「カードOSによる非更新領域の保護機能」について
次に、「カードOSによる非更新領域の保護機能」が働く。具体的には、カードOSは、以下のa)〜j)の動作を実施する。
a)まず、カードOSは、Page−aにおける非更新領域のデータを保護するため、Page−aに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−aRとする。
b)次に、カードOSは、Page−aRをバックアップする。具体的には、カードOSは、不揮発性メモリ5に設定されたバックアップ領域へPage−aRを書き込む。
c)次に、カードOSは、Page−aRの2ブロック目に、書き込み1で書き込まれるべきデータを書き込む(図7の11のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−aRを更新する。
d)次に、カードOSは、更新されたPage−aRを、不揮発性メモリ5のPage−aへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−aを更新する。
e)次に、カードOSは、バックアップ領域に書き込まれたPage−aRを消去する。
f)次に、カードOSは、Page−bにおける非更新領域のデータを保護するため、Page−bに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−bRとする。
g)次に、カードOSは、Page−bRをバックアップする。具体的には、カードOSは、バックアップ領域へPage−bRを書き込む。
h)次に、カードOSは、Page−bRの1ブロック目に、書き込み1で書き込まれるべきデータを書き込む(図7の12のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−bRを更新する。
i)次に、カードOSは、更新されたPage−bRを、不揮発性メモリ5のPage−bへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−bを更新する。
j)次に、カードOSは、バックアップ領域に書き込まれたPage−bRを消去する。
以上で、書き込み1が実施されたこととなる。
B)書き込み2について
B−1)「トランザクションによる更新領域の保護機能」について
書き込み2も同様に、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み1を実施する前の書き込み1と書き込み2の更新領域の状態を取り得ることを可能とするため、書き込み2が実施される前のPage−cの全てに記憶されたデータをバックアップさせる。
具体的には、例えば、アプリケーションは、書き込み1が実施される前のPage−cに記憶されたデータ(図7の21及び22のデータ)をRAM4に一時的に記憶し、バックアップ領域へ当該データを、カードOSに書き込ませる。
B−2)「カードOSによる非更新領域の保護機能」について
書き込み2ではPage−cに記憶される全てのデータが更新対象であるため、Page−cには非更新領域が存在しない。従って、「カードOSによる非更新領域の保護機能」は働かないこととなる。この場合、カードOSは、以下のa)〜c)の動作を実施する。
a)まず、カードOSは、Page−cに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−cRとする。ここでは、例えば、A−2)「カードOSによる非更新領域の保護機能」でPage−aR及びPage−bRがバックアップされたのとは異なり、Page−cRはバックアップされないこととなる。
b)次に、カードOSは、Page−cRに、書き込み2で書き込まれるべきデータを書き込む(図7の21及び22のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−cRを更新する。
c)次に、カードOSは、更新されたPage−cRを、不揮発性メモリ5のPage−cへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−cを更新する。
以上で、書き込み2が実施されたこととなる。
そして、書き込み2が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。従って、カードOSは、バックアップ領域に記憶された書き込み1が実施される前のPage−aからPage−cに記憶された更新領域のデータ(図7の11、12、21、及び22)を消去する。
C)書き込み3について
C−1)「トランザクションによる更新領域の保護機能」について
書き込み3では、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードOSによる非更新領域の保護機能」のみが働くこととなる。
C−2)「カードOSによる非更新領域の保護機能」について
具体的に、カードOSは、以下のa)〜h)の動作を実施する。
a)まず、カードOSは、Page−dにおける非更新領域のデータを保護するため、Page−dに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−dRとする。
b)次に、カードOSは、Page−dRをバックアップする。具体的には、カードOSは、不揮発性メモリ5に設定されたバックアップ領域へPage−dRを書き込む。
c)次に、カードOSは、Page−dRの2ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図7の21及び22のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−dRを更新する。
d)次に、カードOSは、更新されたPage−dRを、不揮発性メモリ5のPage−dへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−dを更新する。
e)次に、カードOSは、バックアップ領域に書き込まれたPage−dRを消去する。
また、書き込み3のうちPage−eに記憶されるデータを更新する場合には、Page−eに記憶される全てのデータが更新対象であるため、Page−eには非更新領域が存在しない。従って、「カードOSによる非更新領域の保護機能」は働かないこととなる。この場合、カードOSは、以下のf)〜h)の動作を実施する。
f)まず、カードOSは、Page−eに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−eRとする。
g)次に、カードOSは、Page−eRに、書き込み3で書き込まれるべきデータを書き込む。すなわち、カードOSは、RAM4に記憶されたPage−eRを更新する。
ここでは、Page−eRはバックアップされないこととなる。
h)次に、カードOSは、更新されたPage−eRを、不揮発性メモリ5のPage−eへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−eを更新する。
以上で、書き込み3が実施されたこととなる。
また、不揮発性メモリ5のページあたりに記憶されるデータの容量が、128byte、又は256byteと大容量である場合がある。このページあたりに記憶されるデータの容量の増加に伴い、同一ページ内に対する更新が連続したり、複数のページに跨る更新が発生するケースが増加する。
ここで、図8を参照して、ページあたりに記憶されるデータの容量が大容量である場合に、「カードOSによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能する場合のCPU6の動作の詳細について説明する。
図8は、ページあたりに記憶されるデータの容量が大容量である場合に、ICカードによって更新されるデータを概念的に示す図である。
図8では、不揮発性メモリ5の領域が概念的に示されている。この図8では、1byteを1ブロックとして256のブロックに区切られた領域を一のページ(例えば、Page−x等)、として、複数のページに区画されたICカードの不揮発性メモリ5が示されている。図8では、複数のページの一例として、Page−xとPage−yが示されている。
そして、この不揮発性メモリ5に対する更新として、A)書き込み1、B)書き込み2、及び、C)書き込み3、が行われる場合を説明する。
これらの書き込みは、不揮発性メモリ5の指定されたページ(Page−x等)の指定された領域(1ブロック目か2ブロック目等)に記憶されるデータを更新するものである。また、書き込み1及び書き込み2は、上述した連続した書き込みとして定義されているものとする。
具体的には、書き込み1は、Page−xの領域のうち連続する2ブロックに対して、2byteの領域の書き込み(図8の11及び12参照)を、書き込み2は、Page−xの256ブロック目からPage−yの1ブロック目までの2ページにわたる2byteの領域の書き込み(図8の21及び22参照)を、書き込み3は、Page−yの領域のうち連続する3ブロックに対して、3byteの領域の書き込み(図8の31、32、及び33参照)を、それぞれ実施させるものとする。
A)書き込み1について
A−1)「トランザクションによる更新領域の保護機能」について
書き込み1及び書き込み2は、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み1を実施する前の書き込み1と書き込み2の更新領域の状態を取り得ることを可能とするため、書き込み1が実施される前のデータであるPage−xの領域のうち連続する2ブロックに記憶されたデータ(図8の11及び12参照)をバックアップする。
具体的には、例えば、アプリケーションは、書き込み1が実施される前のPage−xの領域のうち連続する2ブロックに記憶されたデータをRAM4に一時的に記憶し、バックアップ領域へ当該データを、カードOSに書き込ませる。
A−2)「カードOSによる非更新領域の保護機能」について
次に、「カードOSによる非更新領域の保護機能」が働く。具体的には、カードOSは、以下のa)〜j)の動作を実施する。
a)まず、カードOSは、Page−xにおける非更新領域のデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−xRとする。
b)次に、カードOSは、Page−xRをバックアップする。具体的には、カードOSは、不揮発性メモリ5に設定されたバックアップ領域へPage−xRを書き込む。
c)次に、カードOSは、Page−xRの領域のうち連続する2ブロックに、書き込み1で書き込まれるべきデータを書き込む(図8の11及び12のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−xRを更新する。
d)次に、カードOSは、更新されたPage−xRを、不揮発性メモリ5のPage−xへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−aを更新する。
e)次に、カードOSは、バックアップ領域に書き込まれたPage−xRを消去する。
以上で、書き込み1が実施されたこととなる。
B)書き込み2について
B−1)「トランザクションによる更新領域の保護機能」について
書き込み2も同様に、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。従って、アプリケーションは、書き込み1が実施される前のPage−xの256ブロック目からPage−yの1ブロック目までに記憶されたデータ(図8の21及び22のデータを更新する)を、RAM4に一時的に記憶し、その後不揮発性メモリ5に設定されたバックアップ領域へ当該データを書き込む。
B−2)「カードOSによる非更新領域の保護機能」について
次に、「カードOSによる非更新領域の保護機能」が働く。具体的には、カードOSは、以下のa)〜i)の動作を実施する。
a)まず、カードOSは、Page−xにおける非更新領域のデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−xRとする。
b)次に、カードOSは、Page−xRをバックアップする。具体的には、カードOSは、不揮発性メモリ5に設定されたバックアップ領域へPage−xRを書き込む。
c)次に、カードOSは、Page−xRの256ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の21のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−xRを更新する。
d)次に、カードOSは、更新されたPage−xRを、不揮発性メモリ5のPage−xへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−aを更新する。
e)次に、カードOSは、バックアップ領域に書き込まれたPage−xRを消去する。
f)次に、カードOSは、Page−yにおける非更新領域のデータを保護するため、Page−bに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
g)次に、カードOSは、Page−yRをバックアップする。具体的には、カードOSは、バックアップ領域へPage−yRを書き込む。
h)次に、カードOSは、Page−yRの1ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の22のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−yRを更新する。
i)次に、カードOSは、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−yを更新する。
以上で、書き込み2が実施されたこととなる。
そして、書き込み2が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。従って、カードOSは、バックアップ領域に記憶された書き込み1が実施される前のPage−xからPage−yに記憶された更新領域のデータ(図8の11、12、21、及び22)を消去する。
C)書き込み3について
C−1)「トランザクションによる更新領域の保護機能」について
書き込み3は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードOSによる非更新領域の保護機能」のみが働くこととなる。
C−2)「カードOSによる非更新領域の保護機能」について
具体的に、カードOSは、以下のa)〜e)の動作を実施する。
a)まず、カードOSは、Page−yにおける非更新領域のデータを保護するため、Page−yに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
b)次に、カードOSは、Page−yRをバックアップする。具体的には、カードOSは、不揮発性メモリ5に設定されたバックアップ領域へPage−yRを書き込む。
c)次に、カードOSは、Page−yRの2ブロック目に、書き込み3で書き込まれるべきデータ(図8の31、32、及び33)を書き込む。すなわち、カードOSは、RAM4に記憶されたPage−yRを更新する。
d)次に、カードOSは、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−yを更新する。
e)次に、カードOSは、バックアップ領域に書き込まれたPage−yRを消去する。
以上で、書き込み3が実施されたこととなる。
[3.第1の実施形態]
上述したように、「カードOSによる非更新領域の保護機能」及び「トランザクションによる更新領域の保護機能」では、更新毎(例えば、上記書き込み1、又は上記書き込み2毎)に、当該更新の対象となるデータが属するページの非更新領域及び更新領域のデータがバックアップされる。従って、同一のページに記憶されたデータに対して連続する個別の更新が行われる場合には、同一のページのバックアップが重複して行われることとなる。また、隣り合うページに記憶されたデータに対して一の更新(例えば、上記書き込み1のみ)が行われる場合には、2ページ分の非更新領域及び更新領域のデータがバックアップされることとなる。不揮発性メモリのページあたりに記憶されるデータの容量が、128byte、又は256byteと大容量である場合には、RAM4や不揮発性メモリ5への書き込み、バックアップ、消去等のページ操作が非常に重い処理になってくる(CPU6等の処理負担の増加を招く)。
そこで、本実施形態においては、「カードOSによる非更新領域の保護機能」と「トランザクションによる更新領域の保護機能」が働くICカード8において、「カードOSによる非更新領域の保護機能」と「トランザクションによる更新領域の保護機能」と、を統合させるようにした。
上述したように、「カードOSによる非更新領域の保護機能」では、ページにおいて非更新領域が存在しない場合(ページ全てのデータを更新する場合)には、「カードOSによる非更新領域の保護機能」は働かない。また、「トランザクションによる更新領域の保護機能」では、バックアップされるデータは、ページにおいて更新領域のデータのみである。
そこで、上記の点に着目し、アプリケーションが、更新の対象となるページにおいて、当該ページに記憶されるデータ全てを更新するものとしてカードOSへ通知して、「カードOSによる非更新領域の保護機能」を機能させないようにする。そして、アプリケーションが、更新の対象となるページに記憶されるデータ全て(ページ全て)を、バックアップするようにした。
具体的には、本発明のICチップ用処理プログラムの制御によって、第2の保護手段としてのCPU6は、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを不揮発性メモリ5に書き込み(記憶し)、当該ページに非更新領域が存在しないものとしてカードOSに通知して、「カードOSによる非更新領域の保護機能」を機能させないようになっている。以下、この動作を、「transaction機能/保護機能付き書き込み」と称する。
これによって、一のバックアップ処理のみが行われるため、データの保護機能による処理時間の短縮を図ることができる。
ここで、図8を参照して、「transaction機能/保護機能付き書き込み」が適用された場合のCPU6の動作の詳細について説明する。
なお、ここでは、上述した本発明のICチップ用処理プログラムが備える機能が実行される場合の動作主体をCPU6として説明する。
また、ここで説明する例では、図8で定義される不揮発性メモリ5に対する更新として、A)書き込み1、B)書き込み2、及び、C)書き込み3、が行われるものとし、これらの書き込み条件(例えば、上述した連続した書き込みとして定義されていること等)は、図8で定義された条件と同一の条件を適用するものとする。
A)書き込み1について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜d)の動作を実施する。
a)まず、CPU6は、Page−xに記憶される全てのデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−xRとする。
この場合、CPU6は、書き込み1で更新の対象となるPage−xに記憶される全てのデータをRAM4へ書き込み、その後、不揮発性メモリ5へ書き込むことで、Page−xに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードOSへ通知する。
この通知を受けたカードOSは、「カードOSによる非更新領域の保護機能」を機能させないようになっている。
b)次に、CPU6は、Page−xRをバックアップする。具体的には、CPU6は、不揮発性メモリ5に設定されたバックアップ領域へPage−xRを書き込む。
c)次に、CPU6は、Page−xRの領域のうち連続する2ブロックに、書き込み1で書き込まれるべきデータを書き込む(図8の11及び12のデータを更新する)。すなわち、CPU6は、RAM4に記憶されたPage−xRを更新する。
d)次に、CPU6は、更新されたPage−xRを、不揮発性メモリ5のPage−xへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−xを更新する。
以上で、書き込み1が実施されたこととなる。
B)書き込み2について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜h)の動作を実施する。
a)まず、CPU6は、Page−xに記憶される全てのデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。
なお、ここで書き込まれたPage−xに記憶されるデータは、上述した書き込み1で更新されたもの(図8の11及び12が更新されたもの)である。従って、上述したA)書き込み1についてa)で、RAM4に書き込まれたPage−xとは異なるデータである。以後、説明の便宜上、B)書き込み2についてa)でPage−xに記憶される全てのデータをPage−x´と、RAM4に書き込まれるデータを、Page−x´Rとする。
b)次に、CPU6は、Page−x´Rをバックアップする。具体的には、CPU6は、不揮発性メモリ5に設定されたバックアップ領域へPage−x´Rを書き込む。
c)次に、CPU6は、Page−x´Rの256ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の21のデータを更新する)。すなわち、カードOSは、RAM4に記憶されたPage−x´Rを更新する。
d)次に、カードOSは、更新されたPage−x´Rを、不揮発性メモリ5のPage−x´へ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−aを更新する。
e)次に、CPU6は、Page−yにおける非更新領域のデータを保護するため、Page−bに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
f)次に、CPU6は、Page−yRをバックアップする。具体的には、CPU6は、バックアップ領域へPage−yRを書き込む。
g)次に、CPU6は、Page−yRの1ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の22のデータを更新する)。すなわち、CPU6は、RAM4に記憶されたPage−yRを更新する。
h)次に、CPU6は、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−yを更新する。
以上で、書き込み2が実施されたこととなる。
そして、書き込み2が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。
そこで、CPU6は、バックアップ領域に記憶された書き込み1が実施される前のPage−xに記憶された全てのデータであるPage−xR、書き込み2が実施される前のPage−x´に記憶された全てのデータであるPage−x´R、書き込み2が実施される前のPage−yに記憶された全てのデータであるPage−yRをそれぞれ消去する。
C)書き込み3について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜e)の動作を実施する。
a)まず、CPU6は、Page−yに記憶される全てのデータを保護するため、Page−yに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
b)次に、CPU6は、Page−yRをバックアップする。具体的には、CPU6は、不揮発性メモリ5に設定されたバックアップ領域へPage−yRを書き込む。
c)次に、CPU6は、Page−yRの2ブロック目に、書き込み3で書き込まれるべきデータ(図8の31、32、及び33)を書き込む。すなわち、CPU6は、RAM 4に記憶されたPage−yRを更新する。
d)次に、CPU6は、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−yを更新する。
e)次に、CPU6は、バックアップ領域に書き込まれたPage−yRを消去する。
以上で、書き込み3が実施されたこととなる。
なお、上述した「transaction機能/保護機能付き書き込み」は、連続した書き込みとして定義された書き込みの間(即ち、上記トランザクションが実行されている間)、働かせるようにしてもよい。
この場合、監視手段としてのCPU6は、トランザクションの実行状態、即ち、連続した書き込みとして定義された書き込みが行われているか否かを監視する。
そして、CPU6は、連続した書き込みとして定義された書き込みが行われている間、「transaction機能/保護機能付き書き込み」を働かせるようになっている。
以上説明したように、本実施形態におけるICチップ1は、所定の領域を一のページとして、一又は複数のページに区画される不揮発性メモリ5を備え、更新要求に基づいて、不揮発性メモリ5の指定されたページの指定された領域に記憶されるデータを更新し、ICチップの基本的な動作を管理するカードOSが備える基本的な機能であって、当該カードOSの制御に基づいて、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータをバックアップ領域へ書き込む「カードOSによる非更新領域の保護機能」と、前記カードOS上で動作し前記CPU6に所定の機能を実行させるアプリケーションの要求に応じた前記カードOSの制御に基づいて、更新前の前記更新領域に記憶されるデータをバックアップ領域へ書き込む「トランザクションによる更新領域の保護機能」とを備え、「トランザクションによる更新領域の保護機能」は、前記更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記バックアップ領域に書き込み、当該ページに非更新領域が存在しないものとして前記カードOSに通知して、「カードOSによる非更新領域の保護機能」を機能させないように構成したので、適切な保護機能によってデータをバックアップすることにより、不要なバックアップ処理を行わないため、データの保護機能による処理時間の短縮を図ることができる。
なお、上述した例では、「transaction機能/保護機能付き書き込み」は、ICチップ用処理プログラムの制御によりCPU6が実行することとして説明したが、これに限られず、例えば、「transaction機能/保護機能付き書き込み」は、「トランザクションによる更新領域の保護機能」をCPU6に実行させるアプリケーションによって実行させるようにしてもよい。
[4.第2の実施形態]
次に、図8及び図9を参照して、本願の実施例2について説明する。
第2の実施形態が、第1の実施形態と異なる点は、これから更新されるページと同一のページのバックアップデータが既に書き込まれているか否かを検索し、既に書き込まれている場合には、これから更新されるページのバックアップデータを書き込まない構成を追加した点である。以下、この構成を「バックアップ検索機能」と称する。
まず、図9を参照して、本願の第1の実施形態におけるバックアップ領域に書き込まれるデータについて説明する。
図9は、本願の第1の実施形態におけるバックアップ領域に書き込まれるデータ構造を概念的に示す図である。
なお、既に説明した第1の実施形態と少なくとも同様の機能を果たす部分には、同一の符号を付して、重複する説明や図面を省略する。
図9に示すように、第1の実施形態におけるバックアップ領域に書き込まれるデータは、Page−xのバックアップデータとしてのPage−xR(A)書き込み1についてb)参照)と、Page−x´(図8の11及び12が更新されたもの)のバックアップデータとしてのPage−x´R(B)書き込み2についてb)参照)と、Page−yのバックアップデータとしてのPage−yR(B)書き込み2についてb)参照)の3つである。
ここで、「トランザクションによる更新領域の保護機能」として保障されるのは、連続した書き込みの保証として、書き込み1と書き込み2の両方を更新する前の更新領域の状態である。
そして、例えば、書き込み1で瞬断が発生した場合には、書き込み1と書き込み2の両方を更新する前の更新領域の状態として、Page−xRとPage−yRが不揮発性メモリ5に書き込まれることとなる。
ここで、Page−xRは、と同一のページであり、Page−x´Rは「トランザクションによる更新領域の保護機能」を機能させる際に省略することができるバックアップデータであることに気が付く。
そこで、本願の第2の実施形態では、検索手段としてのCPU6は、更新領域が属するページが、バックアップ管理領域を参照して、バックアップ領域に既に書き込まれている(記憶されている)か否かを検索し、前記更新領域が属するページが、バックアップ領域に既に書き込まれていることが検索されなかった場合には、第2の保護手段としてのCPU6は、当該更新領域が属するページに記憶される全てのデータを、バックアップ領域に記憶するようになっている。
ここで、図8及び図9を参照して、「バックアップ検索機能」が適用された場合のCPU6の動作の詳細について説明する。
また、ここで説明する例では、図8で定義される不揮発性メモリ5に対する更新として、A)書き込み1、B)書き込み2、及び、C)書き込み3、が行われるものとし、これらの書き込み条件(例えば、上述した連続した書き込みとして定義されていること等)は、図8で定義された条件と同一の条件を適用するものとする。
A)書き込み1について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜d)の動作を実施する。
a)まず、CPU6は、Page−xに記憶される全てのデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−xRとする。
この場合、CPU6は、書き込み1で更新の対象となるPage−xに記憶される全てのデータをRAM4へ書き込み、その後、不揮発性メモリ5へ書き込むことで、Page−xに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードOSへ通知するのは、第1の実施形態の場合と同様である。
この通知を受けたカードOSは、「カードOSによる非更新領域の保護機能」を機能させないようになっている。
b)次に、CPU6は、Page−xRをバックアップする。具体的には、CPU6は、不揮発性メモリ5に設定されたバックアップ領域へPage−xRを書き込む。
c)次に、CPU6は、Page−xRの領域のうち連続する2ブロックに、書き込み1で書き込まれるべきデータを書き込む(図8の11及び12のデータを更新する)。すなわち、CPU6は、RAM4に記憶されたPage−xRを更新する。
d)次に、CPU6は、更新されたPage−xRを、不揮発性メモリ5のPage−xへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−xを更新する。
以上で、書き込み1が実施されたこととなる。
B)書き込み2について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜g)の動作を実施する。
a)まず、CPU6は、Page−xに記憶される全てのデータを保護するため、Page−xに記憶されるデータを、ページ単位でRAM4へ書き込む。
ここで、CPU6は、バックアップ管理領域を参照して、更新領域が属するページとしてのPage−xがバックアップ領域に既に記憶されているか否かを検索する。
ここでは、バックアップ管理領域に、A)書き込み1についてb)において、既にPage−xのバックアップデータが記憶されていることが示されている。
そこで、CPU6は、現在のPage−xに記憶されるデータである書き込み1で更新された(図8の11及び12が更新された)Page−x´のバックアップデータを書き込まないようになっている。
b)次に、CPU6は、Page−x´Rの256ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の21のデータを更新する)。すなわち、CPU6は、RAM4に記憶されたPage−x´Rを更新する。
c)次に、カードOSは、更新されたPage−x´Rを、不揮発性メモリ5のPage−x´へ書き込む。すなわち、カードOSは、不揮発性メモリ5に記憶されたPage−aを更新する。
d)次に、CPU6は、Page−yにおける非更新領域のデータを保護するため、Page−bに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
e)次に、CPU6は、Page−yRをバックアップする。具体的には、CPU6は、バックアップ領域へPage−yRを書き込む。
f)次に、CPU6は、Page−yRの1ブロック目に、書き込み2で書き込まれるべきデータを書き込む(図8の22のデータを更新する)。すなわち、CPU6は、RAM4に記憶されたPage−yRを更新する。
g)次に、CPU6は、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−yを更新する。
以上で、書き込み2が実施されたこととなる。
そして、書き込み2が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。
そこで、CPU6は、バックアップ領域に記憶された書き込み1が実施される前のPage−xに記憶された全てのデータであるPage−xR、書き込み2が実施される前のPage−x´に記憶された全てのデータであるPage−x´R、書き込み2が実施される前のPage−yに記憶された全てのデータであるPage−yRをそれぞれ消去する。
C)書き込み3について
「transaction機能/保護機能付き書き込み」が働く。具体的には、CPU6は、以下のa)〜e)の動作を実施する。
a)まず、CPU6は、Page−yに記憶される全てのデータを保護するため、Page−yに記憶されるデータを、ページ単位でRAM4へ書き込む。説明の便宜上、このRAM4に書き込まれたデータを、Page−yRとする。
b)次に、CPU6は、Page−yRをバックアップする。具体的には、CPU6は、不揮発性メモリ5に設定されたバックアップ領域へPage−yRを書き込む。
c)次に、CPU6は、Page−yRの2ブロック目に、書き込み3で書き込まれるべきデータ(図8の31、32、及び33)を書き込む。すなわち、CPU6は、RAM4に記憶されたPage−yRを更新する。
d)次に、CPU6は、更新されたPage−yRを、不揮発性メモリ5のPage−yへ書き込む。すなわち、CPU6は、不揮発性メモリ5に記憶されたPage−yを更新する。
e)次に、CPU6は、バックアップ領域に書き込まれたPage−yRを消去する。
以上で、書き込み3が実施されたこととなる。
以上説明したように、本実施形態におけるICチップ1は、更新領域が属するページが、バックアップ管理領域を参照して、バックアップ領域に既に書き込まれているか否かを検索し、前記更新領域が属するページが、バックアップ領域に既に書き込まれていることが検索されなかった場合には、CPU6は、当該更新領域が属するページに記憶される全てのデータを、バックアップ領域に記憶するように構成したため、不要なバックアップ処理を行わないため、データの保護機能による処理時間の短縮を図ることができる。
なお、上述した例では、「transaction機能/保護機能付き書き込み」において、「バックアップ検索機能」を適用するように構成したが、これに限定されず、「バックアップ検索機能」を単独で機能させるようにしても良い。
具体的には、通常の更新要求が入力された場合に、CPU6は、更新要求に示される更新領域が属するページが、バックアップ領域に既に記憶されているか否かを検索し、更新領域が属するページが、バックアップ領域に既に記憶されていることが検索されなかった場合には、当該更新領域が属するページに記憶される全てのデータを、バックアップ領域に記憶するようにしても良い。
また、上述した例では、CPU6を本願の第2の保護機能として機能させる「トランザクションによる更新領域の保護機能」は、アプリケーションが備える機能として説明したが、これに限定されることはなく、種々の形態を採ることができる。例えば、上記「トランザクションによる更新領域の保護機能」を、カードOSが備える機能とするようにしても良いし、バーチャルマシン(図2参照)や、OS層22(図2参照)に新たに設けられるモジュールに備えるようにしても良い。
同様に、CPU6を本願の第1の保護機能として機能させる「カードOSによる非更新領域の保護機能」は、カードOSが備える機能として説明したが、これに限定されることはなく、種々の形態を採ることができる。例えば、上記「カードOSによる非更新領域の保護機能」を、アプリケーションが備える機能とするようにしても良いし、バーチャルマシン(図2参照)や、OS層22(図2参照)に新たに設けられるモジュールに備えるようにしても良い。
また、上記実施形態においては、JAVAカードに対応したICカード8を適用したがこれに限られず、カードOS上で所定の機能を実行するアプリケーションが搭載できるICカードであれば種々のICカードを適用することができる。
1 ICチップ
2 I/O回路
3 ROM
4 RAM
5 不揮発性メモリ
6 CPU
7 カード基体
8 ICカード

Claims (8)

  1. 所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップであって、
    前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段と、
    新前の更新領域に記憶されるデータを保護する第2の保護手段と、
    を備え、
    前記第2の保護手段は、
    新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させないことを特徴とするICチップ。
  2. 請求項1に記載のICチップであって、
    前記第1の保護手段は、ICチップの基本的な動作を管理するオペレーティングシステムが備える基本的な機能であって、当該オペレーティングシステムの制御に基づいて実行され、
    前記第2の保護手段は、前記オペレーティングシステム上で動作し、前記ICチップに所定の機能を実行させるアプリケーションの要求に応じた前記オペレーティングシステムの制御に基づいて実行されることを特徴とするICチップ。
  3. 請求項1又は2に記載のICチップであって、
    前記更新領域が属するページが、前記記憶部に既に記憶されているか否かを検索する検索手段と、
    前記更新領域が属するページが、前記記憶部に既に記憶されていることが検索されなかった場合には、
    前記第2の保護手段は、当該更新領域が属するページに記憶される全てのデータを、前記記憶部に記憶して保護することを特徴とするICチップ。
  4. 請求項1乃至3の何れか1項に記載のICチップであって、
    特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行状態を監視する監視手段をさらに備え、
    前記第2の保護手段は、前記トランザクションの実行中に、更新前の更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶し、当該ページに非更新領域が存在しないものとしてオぺレーティングシステムに通知して、前記第1の保護手段を機能させないことを特徴とするICチップ。
  5. 請求項1乃至4の何れか一項に記載のICチップと、ICカード基体と、を備えることを特徴とするICカード。
  6. 所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップにおける処理方法であって、
    前記ICチップは、
    前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段と、
    新前の更新領域に記憶されるデータを保護する第2の保護手段と、
    備え、
    前記第2の保護手段が新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させない工程を含むことを特徴とするICチップにおける処理方法。
  7. 所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップに含まれるコンピュータを、
    前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第1の保護手段、
    新前の更新領域に記憶されるデータを保護する第2の保護手段、
    として機能させ、
    前記第2の保護手段は、
    新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして、前記第1の保護手段を機能させないことを特徴とするICチップ用処理プログラム。
  8. 所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するICチップであって、
    前記データを更新する領域である更新領域が属するページが、前記記憶部に既に記憶されているか否かを検索する検索手段と、を備え、
    前記更新領域が属するページが、前記記憶部に既に記憶されていることが検索されなかった場合には、当該更新領域が属するページに記憶される全てのデータを、前記記憶部に記憶して保護することを特徴とするICチップ。
JP2011220356A 2011-10-04 2011-10-04 Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード Active JP5853559B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011220356A JP5853559B2 (ja) 2011-10-04 2011-10-04 Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011220356A JP5853559B2 (ja) 2011-10-04 2011-10-04 Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード

Publications (2)

Publication Number Publication Date
JP2013080397A JP2013080397A (ja) 2013-05-02
JP5853559B2 true JP5853559B2 (ja) 2016-02-09

Family

ID=48526714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011220356A Active JP5853559B2 (ja) 2011-10-04 2011-10-04 Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード

Country Status (1)

Country Link
JP (1) JP5853559B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101336258B1 (ko) * 2007-05-29 2013-12-03 삼성전자 주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법

Also Published As

Publication number Publication date
JP2013080397A (ja) 2013-05-02

Similar Documents

Publication Publication Date Title
US6622200B1 (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
KR100484485B1 (ko) 비휘발성 메모리에의 데이터 저장 방법 및 장치
US6088759A (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6311290B1 (en) Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JP4037605B2 (ja) 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
US6415350B2 (en) Card-type storage medium
CN101918928B (zh) 包括一次写入存储器器件和多次写入存储器器件的用于计算机的存储子系统及相关方法
CN113785275B (zh) Flash数据掉电保护方法及设备
JP2003216511A (ja) 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体
US9129275B2 (en) POS device
JP5853559B2 (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード
JP5104653B2 (ja) Icカード及びicカードプログラム
JP5853590B2 (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等
JP4195822B2 (ja) Icカード及びicカードプログラム
JP7322923B2 (ja) セキュアエレメント,トランザクション制御方法およびデバイス
US20070274302A1 (en) Data Storage Device, Memory Managing Method, and Program
EP1344224B1 (en) Method for the secure updating of data areas in a non volatile memory and device to perform such a method
JP6915437B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
CN100392765C (zh) 数据的安全写入
JP7068603B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
JP6252341B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP2013003831A (ja) Icチップ、icチップ用処理プログラム、及びicチップにおける書き込み処理方法
JP2022184327A (ja) セキュアエレメント,デバイスおよび不揮発性メモリの管理方法
JP2001318836A (ja) 不揮発性メモリのデータ管理方法
CN115698975A (zh) 设备、执行文件事务的方法和执行访问操作的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150828

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: 20151110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151123

R150 Certificate of patent or registration of utility model

Ref document number: 5853559

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150