JP4486828B2 - 半導体メモリカード、コンピュータ読取可能なプログラム - Google Patents

半導体メモリカード、コンピュータ読取可能なプログラム Download PDF

Info

Publication number
JP4486828B2
JP4486828B2 JP2004026852A JP2004026852A JP4486828B2 JP 4486828 B2 JP4486828 B2 JP 4486828B2 JP 2004026852 A JP2004026852 A JP 2004026852A JP 2004026852 A JP2004026852 A JP 2004026852A JP 4486828 B2 JP4486828 B2 JP 4486828B2
Authority
JP
Japan
Prior art keywords
file
deletion
memory card
event
semiconductor memory
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 - Lifetime
Application number
JP2004026852A
Other languages
English (en)
Other versions
JP2004259265A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004026852A priority Critical patent/JP4486828B2/ja
Publication of JP2004259265A publication Critical patent/JP2004259265A/ja
Application granted granted Critical
Publication of JP4486828B2 publication Critical patent/JP4486828B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、データをファイルに格納して記録することができる半導体メモリカードに関し、特に、そのファイルを削除する技術に関する。
ICカードやSDメモリカードといった半導体メモリカードは、放送・出版等のマスメディアから金融機関、国、自治体等様々な産業に先駆的に投入されており、半導体メモリカードの利便性の高さは、これらの産業界で大きな反響を呼んでいる。半導体メモリカードは、物理層・ファイルシステム層・応用層からなるレイヤモデルにて、データ管理を行っている。そのためユーザは、パソコンのファイルを削除するのと同じ手順で、半導体メモリカード上にファイルを生成したり、生成したファイルを削除することができる。
従来の半導体メモリカードにおいて、ファイルを削除する場合、ファイルフラグメントのリンク関係を示すファイルアロケーションテーブル(File Allocation Table(FAT))やファイルエントリー等の管理情報を上書きすることて事足りるとしていた。何故なら、管理情報の上書きにより、半導体メモリカード上の実体部の所在や、半導体メモリカード上に離散的に存在するフラグメント間の関係が断たれ、ファイルの解読が不能になるからである。
尚、半導体メモリカードにおけるファイルシステム管理については、以下の特許文献1,2,3に開示された先行技術がある。
特開2001-188701号公報 米国特許5,479,638号公報 特許3389186号公報
ところが上述したファイル削除では、FATやファイルエントリーが上書きされたとはいえ、半導体メモリカードにはファイルの実体データや、それを構成するフラグメントは分断した状態であるが、依然として存在している。このファイルが金銭決済に関するものである場合、この断片的なフラグメントから、口座番号やキャッシュカードの番号等が読み取られる恐れがある。
更に半導体メモリカード上にて、分断した状態で存在するフラグメントを辿ってゆき、ファイルを復元するという操作を第3者が行えば、削除された筈のファイルの内容が知得されてしまう。
FAT、ファイルエントリー等の管理情報を上書きして事足りるとしたのは理由がある。それは上書きに費やする処理時間との問題である。試算によると、512バイトの上書きには2m秒、1Mバイトで4秒が必要であり、10Mバイトの上書きならば40秒もの時間が必要であるといわれる。このことから、ファイル実体部を上書きして、読み取りが完全に不可能な状態にする削除(完全削除)は、時間がかかることがわかる。そしてこの完全削除を行う場合、削除ファイルのフラグメントの所在を示すデータを何処に配置するかが問題になる。フラグメント同様、所在を示すデータを不揮発メモリに配するとすれば、完全削除がなされるまでの間、フラグメントの所在は、第3者に読み取られる恐れがある。それでは、完全削除がなされるまでの間、削除ファイルについての情報は、充分に秘匿されているとはいえない。
本発明の目的は、ファイルの削除が命じられてから、完全削除がなされるまで、ファイル実体を秘匿することができる半導体メモリカードを提供することである。
上記目的を達成するため、本発明に係る半導体メモリカードは、ファイルが格納された不揮発メモリと、処理部と、内部メモリとを含む耐タンパモジュールとを備え、ファイルは、ファイル実体部と、ファイル管理情報とからなり、前記処理部は、ファイルについての削除イベントが発生した際、所在表を耐タンパモジュールの内部メモリ上に生成し、不揮発メモリにおけるファイルの管理情報に対する上書きを行う削除部を備え、耐タンパモジュール内の所在表とは、ファイル実体部の所在を示すテーブルであり、ファイル実体部の上書きを実行するにあたって、削除部により参照されることを特徴としている。
本発明に係る半導体メモリカードは、上述した構成を有しているので、ファイル実体部に対する上書きは、耐タンパモジュール内部メモリに配置されている所在表を参照して行われる。ファイル削除のイベントが発生してから、ファイルの完全削除がなされるまでの間、フラグメントに関する情報は充分に秘匿されることになる。
所在表を参照したファイル実体部の上書きを、削除イベントが発生した後の処理の空き時間に実行すれば、ファイル実体部を上書きするための処理負荷は、複数の空き時間に分散されることになる。かかる分散により、処理待ち状態への復帰期間を短くすることができるので、処理の遅さをユーザに感じさせることなく、ファイル実体部に対する上書き処理を完遂させることができる。
また、実体部に対する上書きより、ファイル管理情報に対する上書きを優先することにより、ファイルはフラグメント間のリンク関係を失うことになる。ファイルに対する上書きに、かかる優先順位を持たせることで、時間の経過と共に、フラグメントをリバース解析するという行為は一層困難になる。
ここで前記処理部は、半導体メモリカードと接続した機器が発行したコマンドに従って処理を行い、前記処理部は、機器からのコマンド発行を解析し、その解析結果に応じたイベントを発生する解析部を備え、前記削除部には、メイン削除部と、サブ削除部とがあり、メイン削除部は、削除イベントが発生した際、所在表の生成及びファイル管理情報に対する上書きを行い、サブ削除部は、他のイベントが発生した際、前記所在表を参照して、ファイル実体部に対する上書きを行ってもよい(2)。
ここで前記処理部は、削除イベントが発生した際、計時を開始するタイマを備え、前記メイン削除部は、当該タイマがタイムアウトするまでの間、ファイル管理情報に対する上書きに加え、ファイル実体部の一部分に対する上書きを行い、前記サブ削除部による上書きの対象は、メイン削除部により上書きがなされた部分の残りであってもよい(3)。削除が命じられた際の上書きは、タイマがタイムアウトするまでの間継続してなされる。不揮発メモリに対する上書きにどれだけ時間を要するか等を考慮して、タイムアウト時間を調整することにより、処理待ち時間を最適な時間にすることができる。
前記内部メモリには、所定の暗号鍵が記録されており、前記ファイルの実体部は当該暗号鍵を用いて暗号化されており、前記メイン削除部は更に、
削除イベントが発生した際、前記暗号鍵を上書きする処理を行い前記メイン削除部による管理情報上書きは、暗号鍵に対する上書きより後に行ってもよい(9)。
暗号鍵に対する上書きを、ファイル実体部に対する上書きよりも優先することにより、ファイルは先ず初めに、復号が不可能になる。ファイルに対する上書きに、かかる優先順位を持たせることで、時間の経過と共に、フラグメントをリバース解析するという行為は一層困難になる。
ここで前記半導体メモリカードは、機器からの接触式の電力供給又は機器からの非接触式の電力供給により駆動するものであり、前記処理部による上書きは、機器からの接触式の電力供給がなされている場合に行われるものであり、機器からの非接触式の電力供給がなされている場合行われないようにしてもよい(12)。機器からの非接触式の電力供給時には、実体部に対する上書きを行わないので、安定動作を実現することができる。
(第1実施形態)
以降、本発明に係る半導体メモリカードの実施形態について説明する。本実施形態に係る半導体メモリカードは、ICカードの耐タンパモジュールを内蔵したSDeXメモリカードである。SDeXメモリカードは、SDメモリカード同様、SDポータブルデバイスの記録媒体に用いられながらも、ICカードの耐タンパモジュールを内蔵している。また本SDexメモリカード400は、外部機器との通信方式として、接触型通信方式、非接触通信方式の両方を備えている。
先ず始めに、本発明に係る半導体メモリカード(SDeXメモリカード)の実施行為のうち、使用行為の形態について説明する。SDeXメモリカード400は、携帯電話などのSDポータブルデバイスと接続され、図1に示すような環境で、ユーザの利用に供される。図1は、SDeXメモリカード400の使用環境を示す図である。
図1における使用環境は、ECサーバ100、カードリーダライタ200、無線基地局210、SDポータブルデバイス300から構成される。
ECサーバ100は、カードリーダライタ200及び無線基地局210、ネットワークを介して、SDexメモリカード400にECサービスを提供する。ECサーバ100には複数のECアプリケーションプログラムが動作しており、これらのそれぞれは、固有のECサービスをSDexメモリカード400に提供する。ECサーバ100上で動作するECアプリケーションは、サーバアプリケーションであり、ECサービスの種類毎にそれぞれ違うものが存在する。図1では、n種のECサービス毎のECサーバアプリをS_APL1,2,3・・・・nと略記している。これらは、n種のサーバアプリケーションである。ECサーバ100によるECサービス提供は、ネットワーク、カードリーダライタ200及び無線基地局210を介してECコマンドをSDexメモリカード400に発行することによりなされる。
カードリーダライタ(図中のカードR/W)200は、クレジット会社・金融機関のキャッシュデスペンサー、店舗のレジ機に備え付けの機器であり、SDexメモリカード400への電力供給、SDexメモリカード400との非接触型の入出力を行う。カードリーダライタ200は、ネットワークと接続されており、このカードリーダライタ200を介することで、SDexメモリカード400はECサーバ100のECサービスを受けることができる。
無線基地局210は、建造物や電柱の屋上に備え付けの機器であり、携帯電話型のSDポータブルデバイス300と無線によるデータの入出力を行う。無線基地局210は、ネットワークと接続されており、この無線基地局210を介することでも、SDポータブルデバイス300はECサーバ100のECサービスを受けることができる。
SDポータブルデバイス300は、SDeXメモリカード400を接続して、SDeXメモリカード400をアクセスする機器である。SDポータブルデバイス300には、ブラウザソフト等がインストールされており、ユーザはこのブラウザのユーザインターフェイスを介して、SDeXメモリカード400におけるファイルシステム(File System(以下、FSと略す場合がある))をアクセスすることができる。このファイルシステムアクセスは、SDメモリカードで規定されているSDコマンドをSDeXメモリカード400に発行し、そのレスポンスをSDeXメモリカード400から受信することでなされる。また、SDポータブルデバイス300がSDeXメモリカード400からブートストラップを行って起動する場合、SDポータブルデバイス300はSDeXメモリカード400と一体になってICカードとして機能する。SDポータブルデバイス300の背面には、螺旋アンテナが埋設されており、ICカードとしての機能時において、この螺旋アンテナが、カードリーダライタ200から発せられる電力をSDeXメモリカード400に供給する。またSDポータブルデバイス300は、SDeXメモリカード400に対するコマンド・レスポンスと、ECサーバ100とのコマンド・レスポンスとの相互変換を行う。SDポータブルデバイス300による相互変換とは、ECサーバ100からのECコマンドをカプセル化した拡張SDコマンドを生成してSDeXメモリカード400に出力し、SDeXメモリカード400からのSDレスポンスよりECレスポンスを取り出して、ECサーバ100に出力する処理である。SDポータブルデバイス300がSDeXメモリカード400にてブートストラップを行い、ICカードとして機能することを『ECモード』という。また、SDポータブルデバイス300がSDeXメモリカード400を記録媒体として用いることを『SDモード』という。
SDモードでのSDeXメモリカード400の利用は、SDメモリカードとしての用途である。この用途においてSDeXメモリカード400のホスト装置となるのは、SDポータブルデバイス300であり、ホスト装置であるSDポータブルデバイス300が配信サーバからダウンロードしたオーディオデータ、ビデオデータの受け皿として、SDeXメモリカード400は用いられる。こうしてSDeXメモリカード400に記録されたオーディオデータ、ビデオデータをホスト装置は再生させることができる。
ECモードでのSDeXメモリカード400の利用は、ICカードとしての用途である。このECモードにおいてもSDeXメモリカード400はSDポータブルデバイス300と接続される。しかしSDeXメモリカード400のホスト装置となるのはこのSDポータブルデバイス300ではなく、ネットワーク上のECサーバ100である。SDeXメモリカード400と接続されたSDポータブルデバイス300を、カードリーダライタ200、無線基地局210と用いることにより、SDeXメモリカード400はECサーバ100と通信を行う。この通信により、ECサーバ100と金銭決済を行うことができる。
本実施形態のSDeXメモリカード400は、配信されたオーディオデータ、ビデオデータの受け皿としても用途に加え、ICカードとしても用途が存在するので、ユーザにとっての利便性が増している。
尚図1においてSDeXメモリカード400は、ECモードにおいてカードリーダライタ200を介して、ECサーバ100をアクセスしたが、無線基地局210を介してSDポータブルデバイス300がネットワークを介してECサーバ100をアクセスしてもよい。
続いて本発明にかかる半導体メモリカードの生産行為の形態について説明する。本発明に係る半導体メモリカードは、図2、図3の内部構成に基づいて工業的に生産することができる。
図2に示すように、本発明にかかる半導体メモリカードの内部には、コネクタ、耐タンパ性を有する耐タンパモジュールチップ(Tamper Resist Module(TRM))1、256Mバイトもの容量をもつフラッシュメモリチップが実装されている。
耐タンパ性には、諸説があるが、概して以下のことを意味するとされている。
1)チップを物理的に開梱しても、内部構成は判読不可能である。
2)電磁波を照射しても内部構成は判読不可能である。
3)入力データのデータ長と、処理時間との関係がノンリニアである。
4)入力データによりエラーが発生した際の処理結果により、出力データが逆算されない。
これら1)〜4)の性質をもつため、TRM1は多くのリバース行為に耐性をもつ。以降、TRM1内のハードウェア要素について説明する。
図3は、TRM1内のハードウェア構成を示す図である。図3に示すようにTRM1には、内部EEPROM3、外部メモリ制御部4、HIM5、マスクROM6、CPU7が実装されており、マイコンシステムを形成している。
内部EEPROM3は、読み出し/書き込みが可能な内部メモリである。TRM1として実装されたマイコンシステムは、単位面積当たりの製造コストが高く、TRM1内の内部EEPROM3の規模は、32Kバイトになっている。この内部EEPROM3と区別するため、図2に示したフラッシュメモリ2を、以降外部メモリと呼ぶ場合もある。
外部メモリ制御部4は、外部フラッシュメモリ2のアクセスのために設けられた専用回路である。外部フラッシュメモリ2のアクセスは、SDポータブルデバイス300が発するSDコマンドに基づき行われる。
HIM(Host Interface Module)5は、SDポータブルデバイス300から発行されるSDコマンドのコマンド番号を参照し、そのコマンド番号によりSDコマンドの振り分けを行う。SDコマンドの番号には、1〜mの数値と、m+1以上の拡張番号とがある。番号が1〜mなら外部メモリ制御部4にSDコマンドを出力し、m+1以上ならSDコマンドにカプセル化されたECコマンドを取り出して、CPU7側へと出力する。
マスクROM6は、Java(登録商標)仮想マシン、アプリケーションプログラムが予め格納されている読出専用メモリである。SDポータブルデバイス300は、このマスクROM6の固定番地からブートストラップを行うことにより、ECモードとして起動する。
CPU7は、マスクROM6に格納されているプログラムを実行する。
図4は、図3のTRM1内のマスクROM6とCPU7とからなる部分を、ソフトウェア構成に置き換えて描いた図である。破線枠wk1内は、ICカードと互換性があるモジュールである。一方TRM1において破線枠外の部分は、SDメモリカードと互換性があるモジュールである。
SDメモリカードとの互換部分は、外部メモリ制御部4と、HIM5とからなる。この中でHIM5は、SDメモリカードにおける機能を踏襲しつつも、ICカードの互換モジュールとの窓口としての機能を果たす。
ICカード互換モジュールは、レイヤ構造をもつ。このレイヤ構造では、最下位層(物理層)に内部EEPROM3があり、この内部EEPROM3の上位層にAPI10が、更に上位層にはJava(登録商標)仮想マシン9が、最上位層にはECクライアントアプリ8がある。SDメモリカードとの互換部分である外部メモリ制御部4は、内部EEPROM3と同じく物理層にあることは注意されたい。
以降、図4に示したソフトウェア構成(ECクライアントアプリ8、Java(登録商標)仮想マシン9、API10)について説明する。
ECクライアントアプリ8は、Java(登録商標)言語で記述されたECアプリの一種であり、ユーザの操作に基づきECサーバ100をアクセスする。ECサーバ100におけるECサーバアプリは、ECサービス毎の複数種類のものが存在するので、SDeXメモリカード400におけるECクライアントアプリも、ECサービス毎の複数のものが存在する。図中のC_APL1,2,3・・・・nは、ECサーバ100におけるECサーバアプリS_APL1,2,3・・・・nのそれぞれについて、ECクライアントアプリが存在することを示す。ECクライアントアプリ8がカードリーダライタ200、無線基地局210やネットワークを介して、ECサーバ100上のECサーバアプリとコマンドの送受信を行うことにより、ECにおける様々なECサービスを享受する。ECサーバアプリから受信したECコマンドがデータの書き込みコマンドである場合、ECクライアントアプリ8は、そのECコマンドをJava(登録商標)仮想マシンを介してAPI10に出力する。
ECクライアントアプリ8は他に、ユーザ操作に基づく外部フラッシュメモリ2及び内部EEPROM3のアクセスをECモードにおいて実行する。このアクセスにはファイルをクリエイトしたり、そのファイルを読み書きしたりするというファイルアクセスが含まれる。
Java(登録商標)仮想マシン9(図中のJava(登録商標)Card VM)は、Java(登録商標)言語で記述されたECクライアントアプリ8を、CPU7のネィティブコードに変換して、CPU7に実行させる。
API(APplication Interface)10は、ECクライアントアプリ8が発行したコマンドに基づく外部フラッシュメモリ2及び内部EEPROM3の読み書きを実行する。以上が、SDeXメモリカード400のソフトウェア構成である。
続いて外部フラッシュメモリ2及び内部EEPROM3における論理フォーマットについて説明する。図5は、外部フラッシュメモリ2及び内部EEPROM3の論理フォーマットを示す図である。外部フラッシュメモリ2及び内部EEPROM3は、2つのメモリ空間sm1,sm2を構成している。メモリ空間sm1は、TRM1内のCPU7からアクセス可能なメモリ空間であり、ECクライアントアプリの使用領域21、ECクライアントアプリの拡張領域22からなる。メモリ空間sm2は、TRM1内CPU7を介することなく、SDポータブルデバイス300がアクセスすることができるメモリ空間であり、認証領域23と、非認証領域24とがある。認証領域23、非認証領域24とは、SDメモリカードがもつメモリ領域であり、その意味合いについては特許3389186号公報を参照されたい。
図6は、ECクライアントアプリの拡張領域22、認証領域23、非認証領域24の内部を示す図である。ECクライアントアプリの拡張領域22、認証領域23、非認証領域24は、ISO/IEC 9293に準拠したファイルシステム構造を有する。ISO/IEC 9293は、説明の便宜のために選んだファイルシステム構造の一例に過ぎず、UDF(Universal Disk Format)等、他のファイルシステム構造を有していてもよい。具体的には、フラグメントが可変長であり、先頭アドレスやデータ長をエントリー情報で示している形式であってもよい。
ECクライアントアプリの拡張領域22は、内部EEPROM3上の領域22aと、外部フラッシュメモリ2上のセキュアフラッシュ領域22bとからなる。セキュアフラッシュ領域22bには、ファイルシステム領域であるパーティション1,2,3・・・・nが存在する。一方マスタブートレコードやパーティションへの参照テーブル(パーティションテーブル1,2,3・・・・n)は、内部EEPROM3内の領域22a上にある。
ECクライアントアプリの拡張領域22内のパーティションや、認証領域23のパーティション、非認証領域24のパーティションは、共通の内部構成を有する。図7は、パーティションの共通構成を示す図である。
パーティションは、『パーティションブートセクタ』、『二重化ファイルアロケーションテーブル(FAT)』、『ルートディレクトリエントリ』、『ユーザ領域』からなる。
『パーティションブートセクタ』は、パーティションに関する情報が記述されたテーブルである。
『二重化ファイルアロケーションテーブル(FAT)』は、ISO/IEC 9293に準拠した2つのFATからなる。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、"0"が設定され、対応するクラスタが使用中であれば、クラスタ番号が設定される。このクラスタ番号は、対応するクラスタが読み出された場合、次にどのクラスタを読み出せばよいかといったクラスタ間のリンク関係を示す。図8(a)の破線の引き出し線ff1は、FATに含まれる複数のFATエントリー002,003,004,005・・を示す。このFATエントリーに付与された数値『002,003,004,005・・』は、各FATエントリーがどのクラスタに対応づけられているか、つまり、各FATエントリーが対応づけられているクラスタのクラスタ番号を示す。
『ルートディレクトリエントリ』は、ルートディレクトリに存在する複数ファイルについてのファイルエントリーを複数含む。各ファイルエントリーは、存在するファイルの「ファイル名」と、そのファイルの「ファイル拡張子」と、ファイルの先頭部が格納されている「ファイル最初のクラスタ番号」と、そのファイルについての「ファイル属性」と、ファイルが記録された「記録時刻」と、ファイルの「記録日付」と、ファイルのデータ長である「ファイル長」とを含む。
『ユーザ領域』は、クラスタを最小単位にして、ファイルが格納される領域である。図8(c)における破線の引き出し線ff2は、ユーザ領域に含まれる複数のクラスタ002,003,004,005・・・・・を示す。図中の番号002,003,004,005,006,007,008・・・・・・・は、各クラスタを識別するために付与された3桁の16進数表記のクラスタ番号を示す。データ領域に対するアクセスは、クラスタを最小単位として行われるので、データ領域の内部位置は、これらのクラスタ番号を用いて、指示される。
ここで、ルートディレクトリにEOB001.SE1というファイルを格納する場合、EOB001.SE1がどのように格納されるか、即ち、ファイル格納方式の一例を図9を参照しながら説明する。『EOB001.SE1』の『EOB』とは、EC OBjectの略であり、『SE』は、『Secure EC』にちなんだ拡張子である。上述したようにデータ領域の最小アクセス単位はクラスタであるので、EOB001.SE1は、クラスタサイズを最小単位にしてデータ領域に格納せねばならない。EOB001.SE1は、先ずクラスタサイズにフラグメント化されて、各クラスタに書き込まれる。図9は、EOB001.SE1をクラスタサイズに合わせて5つにフラグメント化し、各フラグメントを、クラスタ003,004,005,00A,00Cに格納する状態を想定した図である。
EOB001.SE1がフラグメント化されると、ディレクトリエントリー及びFATは、図10のように設定されねばならない。
図10は、EOB001.SE1が複数のクラスタに記録されている場合のディレクトリエントリー及びFATについての設定例を示す図である。本図においてEOB001.SE1の先頭フラグメントがクラスタ003に記録されている場合、ルートディレクトリエントリーにおける『最初のクラスタ番号』には、その先頭フラグメントが格納されているクラスタについてのクラスタ番号003が記載される。以降、EOB001.SE1の後続するフラグメントは、クラスタ004、クラスタ005に格納されていることがわかる。EOB001.SE1の先頭フラグメントを格納しているクラスタ003には、FATエントリー003(004)が対応しているが、このFATエントリーは、EOBファイルの後続するフラグメントを格納しているクラスタ004を示すものである。またこれに後続しているフラグメントを格納しているクラスタ004,005には、FATエントリー004(005),FATエントリー005(00A)が対応しているが、これらのFATエントリーは、後続するフラグメントを格納しているクラスタ005,00Aを示す。
これらFATエントリーに記載されたクラスタ番号を矢印fk1,fk2,fk3,fk4,fk5・・・・・に示すように順次読みとってゆけば、EOB001.SE1のフラグメントを全て読み取ることができる。以上の説明により、SDeXメモリカード400のユーザ領域は、クラスタを最小単位としてアクセスされ、また各クラスタにはそれぞれFATエントリーが対応づけられていることがわかる。EOBファイルの末尾のフラグメントを格納したクラスタ(図9の一例では、クラスタ00C)と対応するFATエントリーには、そのクラスタがファイルの最終フラグメントを格納していることを示すクラスタ番号『FFF』が記述される。
続いてAPI10の内部について説明する。ECコマンドを始め、ハードウェアでの割り込み発生や通信データの到来等、API10への何等かの入力は、”イベント”と総称される。API10は、API内外で発生したイベントにより駆動されるプログラムにより構成される。かかるプログラムを『イベントハンドラ』といい、図11に示す。図11は、API10の内部を示す図である。図11に示すようにAPI10の内部には、イベント解析ハンドラ11、非コマンド実行中ハンドラ12、タイマハンドラ13、読み書きハンドラ14、暗号鍵テーブル15、削除ハンドラ16といったイベントハンドラが存在する。
イベント解析ハンドラ11は、API10内外で発生したイベントの解析を行い、その解析結果に応じて内部イベントを発生する。API10外部で発生するイベントの代表的なものは、ECクライアントアプリ8により発行されるECコマンドである。イベント解析ハンドラ11は、そのECコマンドの内容の解析を行い、もしECコマンドの内容がファイル読み書きであるなら、「ファイル読み書き」という内部イベントと、「コマンド開始イベント」という内部イベントとを生成する。またECコマンドの内容がファイル削除であるなら、「ファイル削除」という内部イベントと、「コマンド開始イベント」という内部イベントとを生成する。こうした内部イベントの生成により、ファイル読み書きを行うイベントハンドラやファイル削除を行うイベントハンドラが駆動される。
またAPI10内部で発生するイベントには、他のイベントハンドラでの処理完了を示すイベント(完了イベント)がある。ECコマンドを実行するイベントハンドラが完了イベントを発生したなら、イベント解析ハンドラ11はECコマンドの発行元たるECクライアントアプリ8に、ECレスポンスを出力する。
非コマンド実行中ハンドラ12は、API10内の何れかのイベントハンドラがコマンドを実行していない状態(非コマンド実行中)に駆動されるイベントハンドラである。非コマンド実行中ハンドラ12の駆動期間は、ECコマンドを実行する他のイベントハンドラの駆動期間と排他的な関係にあり、何れのイベントハンドラも駆動していない空き期間に、非コマンド実行中ハンドラ12は駆動される。
タイマハンドラ13は、コマンド開始イベントの発生により計時を開始し、予めセットされた時間が経過すればタイムアウトする。このタイマハンドラ13のタイムアウトを監視することで、イベント解析ハンドラ11は処理に時間がかかり過ぎるイベントハンドラの動作を強制的に止めることができる。この強制的な動作停止は、イベント解析ハンドラ11による停止イベントの発生でなされる。
読み書きハンドラ14は、読み書きイベントが発生した際、外部フラッシュメモリ2及び内部EEPROM3上のファイル読み書きを行う。図12(a)は、読み書きハンドラ14によるファイル書き込みがどのように行われるかを示す図である。
ファイル書き込みにあたって読み書きハンドラ14は、書込先ファイルのファイル名と、書き込もうとするデータをC_APL1,2,3・・・・nから受け取って(図中の(1)(2))、書込先ファイルに割り当てられた暗号鍵を暗号鍵テーブル15から取り出す(3)。そして、C_APL1,2,3・・・・nから受け取ったデータを暗号鍵テーブル15から取り出された暗号鍵で暗号化した上で(4)、ファイルに書き込む(5)。図12(b)は、読み書きハンドラ14によるファイル読み出しがどのように行われるかを示す図である。
ファイル読み出しにあたって読み書きハンドラ14は、読出先ファイルのファイル名をC_APL1,2,3・・・・nから受け取って、ファイル読み出しを行う。暗号化データが外部フラッシュメモリ2から読み出されれば(1)、読出先ファイルに割り当てられた暗号鍵を暗号鍵テーブル15から取り出し(2)、読み出されたデータを取り出された暗号鍵で復号化した上で(3)、C_APL1,2,3・・・・nに引き渡す(4)(5)。
暗号鍵テーブル15は、各ファイルについての暗号鍵を、ファイル名と対応づけて示すテーブルである。暗号鍵テーブル15における暗号鍵は、ECクライアントアプリ8によりファイルクリエイトがなされた場合、読み書きハンドラ14により生成されて暗号鍵テーブル15に登録される。登録された暗号鍵は、ファイルオープンがなされた場合、ファイルの読み書きがなされた場合に、参照される。
削除ハンドラ16は、削除イベントが発生した際、駆動されるイベントハンドラである。削除イベントが発生した際、削除ハンドラ16は、クリア処理管理テーブルを生成した後、ファイルを構成するファイルエントリー、FAT、実体部を、ヌルコードを用いて上書きしてゆく。本実施形態にいうファイル削除は、ファイルについての暗号鍵、ファイルエントリー、FATを上書きすること、ファイルの実体部を上書きすることの双方を含む。この上書きには、ヌルコードでの上書きである「ヌルクリア」や、所定のパターンによる上書きを含む。削除ハンドラ16は、これらの処理のうち、前者を優先して行う。後者のものは、多大な処理時間を費やするので、他のイベントハンドラに委ねることがある。この多大な処理時間を費やするファイル実体部の上書きを、複数の空き時間に守秘的にかつ分散して行うことこそ、本発明の特徴である。
この特徴部分を強調して、API10の内部構成を描いたのが図13である。図13において、削除イベントが発生した際、削除ハンドラ16は矢印cw1に示すようにクリア処理管理テーブルを生成してTRM内メモリ3に書き込む。クリア処理管理テーブルは、上書きをどのように進めるかを示す進捗表である。ファイルエントリーやFATの上書きに先立ち、かかるクリア処理管理テーブルを生成するのは、クリアすべきフラグメントが存在するという事実、クリア処理がどこまで進捗しているかという事実を他のイベントハンドラに伝えるためである。非コマンド実行中ハンドラ12、読み書きハンドラ14、削除ハンドラ16は、クリア処理管理テーブルが生成済みである場合、クリア処理管理テーブルに従って、フラグメントを、矢印nc1,2に示すように単位長Xだけ上書きして、その後クリア処理管理テーブルを更新する。この矢印nc1,2に示すように、本実施形態における上書きは、外部フラッシュメモリ2、内部EEPROM3の何れに格納されているファイルも対象となる。しかし、これら双方について説明を行うと煩雑になるので外部フラッシュメモリ2に格納されているファイルを対象にして説明を行う。また本実施形態における上書きは、ファイルの実体部がフラグメント化されていても、フラグメント化されていなくてもなされる。この双方について上書きの説明を行うのは煩雑なのでファイル実体部がフラグメント化されているケースのみについて説明を行う(そのため、実体部と表記すべきところは全て、フラグメントと統一して表記している。)。
図14は、クリア処理管理テーブルの一例を示す図である。クリア処理管理テーブルは複数のレコードからなり、各レコードは、フラグメントのそれぞれに対応する。レコードは、対応するフラグメントがクリア中か、クリア済みであるかを示す『有効フラグ(図中の有効Flag)』、対応するフラグメントの『開始アドレス(図中の開始ADR)』、フラグメントがクリアの途中である場合、どこまでクリアされたかを示す『クリア済みアドレス(図中のクリア済みADR)』、フラグメントの『終了アドレス(図中の終了ADR)』という4つの項目からなる。対応するフラグメントの開始アドレス及び終了アドレスは、上述したFATやファイルエントリーに明記されているので、削除ハンドラ16はこれらに基づき、開始アドレス及び終了アドレスを生成する。
API10におけるイベント解析ハンドラ11、非コマンド実行中ハンドラ12、読み書きハンドラ14、削除ハンドラ16の特徴は、図15、図16〜図17、図18、図19の処理手順を行うプログラムをコンピュータ記述言語で記述することにより生成される。図15は、イベント解析ハンドラ11の処理手順、図16は、非コマンド実行中ハンドラ12の処理手順、図17は、読み書きハンドラ14の処理手順、図18は、削除ハンドラ16の処理手順を示すフローチャートである。図19は、ヌルクリア処理の処理手順を示すフローチャートである。ヌルクリアとは、フラグメントをXバイトだけ、ヌルコードを用いて上書きする処理である。このヌルクリア処理は、非コマンド実行中ハンドラ12、読み書きハンドラ14や削除ハンドラ16からも実行されるので、ヌルクリア処理はサブルーチン化される。
図15は、イベント解析ハンドラ11の処理手順を示すフローチャートである。
本フローチャートのステップS101〜ステップS103は、イベントスキャンを行うループ処理である。このループ処理は、外部イベントが発生したか(ステップS101)、読み書きハンドラ14、削除ハンドラ16における処理が完了したか(ステップS102)、タイマハンドラ13における処理が完了したか(ステップS103)を監視している。
ステップS104〜ステップS109は、ステップS101において外部イベント発生を検出した際に行うべき、一連の処理である。
ステップS104においてイベント解析を行う。この解析より、外部イベントがECコマンドであるか、そのECコマンドはどのような内容であるかが明らかになる。外部イベントがECコマンドであり、そのECコマンドの内容が外部フラッシュメモリ2上のファイル読み書きを命じるものなら、つまりECコマンドが読み書きコマンドであるなら、読み書きイベント及びコマンド開始イベントを発生して(ステップS106)、ステップS101〜ステップS103に戻る。
外部イベントがECコマンドであり、そのECコマンドの内容がフラッシュメモリ2上のファイル削除を命じるものなら、つまりECコマンドが削除コマンドであるなら、削除イベント及びコマンド開始イベントを発生して(ステップS108)、ステップS101〜ステップS103に戻る。
外部イベントが、これら以外のイベントであるなら、そのイベントに応じた処理を行い(ステップS109)、ステップS101〜ステップS103のループ処理に戻る。
ステップS110〜ステップS111は、読み書きハンドラ14、削除ハンドラ16における処理が完了した場合に行うべき処理を規定する。この処理とは、コマンド発行元であるECクライアントアプリ8にECレスポンスを出力し、API10内部でコマンド終了イベントを発生するというものである。
ステップS112は、タイマハンドラ13のタイムアウトが発生した場合に行うべき処理を規定する。この処理とは、停止イベントを発生するというものである(ステップS112)。
図16は、非コマンド実行中ハンドラ12の処理手順を示すフローチャートである。ステップS1〜ステップS2は、コマンド開始イベントが発生したか(ステップS1)、クリア処理管理テーブルが存在するか(ステップS2)の監視を行うループ処理である。このステップS1、ステップS2を一巡する度に、ステップS3でクリア処理管理テーブルの存否が判定され、クリア処理管理テーブルが存在すれば、ヌルクリアサブルーチンがコールされる(ステップS4)。非コマンド実行中ハンドラ12によるフラグメントの上書きは、どのイベントハンドラも処理を行っていない空き時間になされるので、半導体メモリカードの物性により上書きに長い時間がかかったとしても、ユーザに、遅さを意識させることはない。
図17は、読出/書込ハンドラの処理手順を示すフローチャートである。ステップS20において、読み書きの対象となるファイルに対応する暗号鍵を暗号鍵テーブル15から取得する。ステップS21では、書込処理かどうかの判定を行う。書込処理ならば、ECクライアントアプリ8からのデータを、ステップS20で取得した暗号鍵を用いて暗号化し(ステップS22)、暗号化データをセキュアフラッシュメモリ2に書き込む(ステップS23)。
一方、ステップS21で読出処理と判定されたなら、ECクライアントアプリ8から要求された暗号化データをセキュアフラッシュメモリ2から読み出し(ステップS24)、セキュアフラッシュメモリ2から読み出されたデータを取得した暗号鍵で復号して、ECクライアントアプリ8に引き渡す(ステップS25)。
ステップS26はクリア処理管理テーブルが存在するかどうかの判定である。存在しなければ、処理を完了するが、存在すれば、ステップS27においてヌルクリア処理を実行する。
図18は、削除ハンドラの処理手順を示すフローチャートである。ステップS11においてファイルフラグメントの数のレコード生成し、ステップS12において各レコードの開始アドレス、終了アドレスにファイルフラグメントの開始アドレス、終了アドレスを設定する。ステップS13では、各レコードの有効フラグをクリア中「1」に設定し、ステップS14では、各レコードのクリア済みアドレスをファイルフラグメントの開始アドレスに設定する。
ステップS15では、暗号鍵テーブル15における複数暗号鍵のうち、削除すべきファイルに対応する暗号鍵を削除する。かかる暗号鍵の削除により、ファイルが復号不能な状態になる。
ステップS16では、ファイルエントリーのヌルクリアを行い、その後ステップS17で停止イベントが発生したかの判定を行う。もし停止イベントが発生すれば、その時点で削除ハンドラ16の処理を終える。
停止イベントの発生がなければ、ステップS18でFATのヌルクリアを行う。ファイルエントリー及びFATがヌルクリアされたので、ファイル実体部を構成するフラグメントはリンク関係を失い、バラバラの状態になる。
その後ステップS19で停止イベントが発生したかの判定を行う。もし停止イベントが発生すれば、その時点で削除ハンドラ16の処理を終える。停止イベントの発生がなければ、ステップS20でファイルのフラグメントに対するヌルクリアを行う。
以降、このステップS19〜ステップS20の処理は、繰り返しなされる。これにより、タイマハンドラ13のタイムアウトが発生するまで、削除ハンドラ16によるフラグメントに対する上書きは継続してなされる。
図19は、サブルーチン化されたヌルクリア処理の処理手順を示すフローチャートである。ステップS31では、有効フラグが「1」のレコードであって、最先のものをレコードsに設定する。以降のステップS33〜ステップS40は、クリア済みアドレスから終了アドレスまでのデータ長が、単位長Xより長いか短いかによって場合分けを行う。ステップS32は、この長短の判定であり、クリア済みアドレスに上書き長Xを加算したアドレスがレコードsの終了アドレスより小さいかどうかを判定する。ステップS33〜ステップS35は、クリア済みアドレスから終了アドレスまでのデータ長が単位長Xより短い場合の処理である。つまり、クリア済みアドレスからXバイトだけフラグメント上書きを外部メモリ制御部4に命じる(ステップS33)。外部メモリ制御部4による上書き完了するのを待ち(ステップS34)、完了すれば。クリア済みアドレスをクリア済みアドレス+Xのアドレスに更新する(ステップS35)。
ステップS36〜ステップS39は、クリア済みアドレスから終了アドレスまでの長さが単位長Xより短い場合の端数処理である。この端数処理は、単位長Xを終了アドレスからクリア済みアドレスを引いた値に更新してから(ステップS36)、クリア済みアドレスからXバイトだけヌルコード上書きする(ステップS37)よう外部メモリ制御部4に命じ、上書き完が完了するのを待って、完了すればレコードsの有効フラグを「0」に設定する(ステップS39)というものである。ステップS40では、全てのレコードの有効フラグが「0」に設定されたかどうかを判定し、もしオール「0」なら、ステップS41においてクリア処理管理テーブルを削除する。
ここで、ルートディレクトリに格納されたEOB001.SE1というファイルを削除する場合の非コマンド実行中ハンドラ12、読み書きハンドラ14、削除ハンドラ16の動作の一例を図20、図21を参照しながら説明する。図20は、図10のように記憶されているファイルに対し、削除イベントが発生した際の削除ハンドラ16の動作を示す図である。ファイルに対する削除イベントが発生したため、ファイル「EOB001.SE1」のフラグメントについてのクリア処理管理テーブルが生成され、ファイルエントリーの「ファイル名」「ファイル拡張子」「ファイル最初のクラスタ番号」及びFATEntry003,004,005,00A,00Cがヌルコードで上書きされる。かかる箇所の上書き後、削除ハンドラ16は非コマンド実行中ハンドラ12に処理を移す。
図21は、非コマンド実行中ハンドラ12、削除ハンドラ16による上書きがなされた後の処理を示す図である。削除ハンドラ16により、ファイルフラグメントについてのクリア処理管理テーブルが生成されたため、フラグメントが格納されているクラスタ003,004,005,00A,00Cがヌルコードにて上書きされていることがわかる。
以上のように本実施形態によれば、ECクライアントアプリ8により発行されたECコマンドがファイル削除に関するものなら、削除ハンドラ16はタイマハンドラ13がタイムアウトするまでヌルクリアを行い、タイマハンドラ13のタイムアウトで削除ハンドラ16は自身の処理を完了する。ECクライアントアプリ8によるECコマンド発行から、イベント解析ハンドラ11によるECレスポンス発行までの期間を短く設定できるので、ECクライアントアプリ8における処理待ち時間を短縮化することができる。この短縮化により、ECクライアントアプリ8を操作するユーザを苛立たせることはない。
残りの上書き処理は、非コマンド実行中ハンドラ12、読み書きハンドラ14を始め、削除ハンドラ16以外のイベントハンドラが、複数の空き時間に分散して行うので、EEPROMへの書き込みに時間がかかり、またフラグメントのデータサイズがたとえ大きくても、ユーザに処理の遅さを感じさせることなく、実体部に対する上書きを完遂することができる。
また暗号化ファイルのかなめとなる暗号鍵が真っ先にヌルクリアされるので、削除ハンドラ16による削除の途中でSDポータブルデバイス300からSDeXメモリカード400を引き抜くという荒っぽい行為がユーザにより行われたとしても、暗号化ファイルの守秘レベルを高めることができる。
(第2実施形態)
第1実施形態は、開始アドレスから終了アドレスまで、つまり順方向にフラグメントをヌルコードで上書きするものであった。これに対し第2実施形態は、順方向の上書きに限られず様々な上書き手法を提案する。
第2実施形態にかかるクリア処理管理テーブルの一例を図22に示す。本図に示すように、クリア処理管理テーブルのレコードには「クリア方法」という項目が追加されている。
項目「クリア方法」には、「順方向」「逆方向」「偶数・奇数」「奇数・偶数」という内容の設定が可能であり、クリア方法が順方向に設定されていると、ヌルコードによる上書きは、第1実施形態同様、クリア済みアドレスから終了アドレスまで順に行われる。一方クリア方法が逆方向に設定されていると、上書きはクリア済みアドレスから開始アドレスに向けて行われる。
クリア方法「偶数・奇数」とは、クリア済みアドレスから終了アドレスまでのうち、偶数アドレスを先にヌルクリアし、その後クリア済みアドレスから終了アドレスまでの奇数アドレスをヌルクリアするというものである。
クリア方法「奇数・偶数」とは、クリア済みアドレスから終了アドレスまでのうち、奇数アドレスを先にヌルクリアし、その後クリア済みアドレスから終了アドレスまでの偶数アドレスをヌルクリアするというものである。
クリア方法の何れを使うかは、フラグメントの個々について削除ハンドラ16がサイクリックに決めてもよい。つまり、1つ目のフラグメントは「順方向」、2つ目のフラグメントは「逆方向」、3つ目、4つ目のフラグメントは「偶数・奇数方向」、「奇数・偶数方向」、5つ目以降のフラグメントは、「順方向」「逆方向」「偶数・奇数方向」、「奇数・偶数方向」というように決定していってもよい。
また、ランダムに決めてもよい。つまり削除ハンドラ16が1から4までの乱数を生成し、この乱数に応じたクリア方法でヌルクリアを実行するのである。
更にECクライアントアプリ8から何等かのパラメーターを受け取り、このパラメータに応じてクリア方法を決めてもよい。
図23は、第2実施形態に係るヌルクリアサブルーチンの処理手順を示す図である。ステップS31では、有効フラグが「1」のレコードであって、最先のものをレコードsに設定し、ステップS51では、レコードsのクリア方法を参照する。クリア方法が順方向なら、ステップS50でヌルクリアを行う。このヌルクリアの手順は、図19のフローチャートのステップS32〜S40と同様である。
クリア方法が逆方向なら(ステップS53)、図24のフローチャートでヌルクリアを行う(ステップS60)。
クリア方法が偶数・奇数なら(ステップS54)、クリア済みアドレス以降の偶数アドレスを、ヌルクリアする(ステップS55)。このヌルクリアの手順は、図19のフローチャートのステップS32〜S40と同様である。その後、偶数アドレスのヌルクリアが完了したなら(ステップS56)、クリア済みアドレス以降の奇数アドレスを、ステップS57でヌルクリアする(ステップS57)。このヌルクリアの手順は、図19のフローチャートのステップS32〜S40と同様である。
クリア方法が奇数・偶数なら(ステップS58)、クリア済みアドレス以降の奇数アドレスを、ステップS57でヌルクリアする。このヌルクリアの手順は、図19のフローチャートのステップS32〜S40と同様である。その後、奇数アドレスのヌルクリアが完了したなら(ステップS59)、クリア済みアドレス以降の偶数アドレスを、ステップS55でヌルクリアする。このヌルクリアの手順は、図19のフローチャートのステップS32〜S40と同様である。
図24は、逆方向でのヌルクリアの処理手順を示すフローチャートである。図19のヌルクリアサブルーチンとの違いは、開始アドレスと、終了アドレスとの関係が逆になっている点である。ステップS61では、クリア済みアドレスから上書き長Xを差し引いたアドレスがレコードsの開始アドレスより大きいかどうかを判定する。もし大きければ、クリア済みアドレス-XからXバイトだけフラグメント上書きを外部メモリ制御部4に命じる(ステップS62)。外部メモリ制御部4による上書き完了するのを待ち(ステップS63)、完了すれば、クリア済みアドレスをクリア済みアドレス−Xのアドレスに更新する(ステップS64)。
クリア済みアドレスから上書き長Xを減じたアドレスがレコードsの開始アドレスより小さければ、クリア済みアドレス−開始アドレスの値を変数Xに設定して(ステップS65)、ステップS66において開始アドレスからXバイトだけヌルコード上書きするよう外部メモリ制御部4に命じる。ステップS67では、上書き完が完了するのを待ち、完了すれば、ステップS68において、レコードsの有効フラグを「1」に設定する。ステップS69では、全てのレコードの有効フラグが「0」に設定されたかどうかを判定し、もしオール「0」なら、ステップS70においてクリア処理管理テーブルを削除する。
以上のように本実施形態によれば、クリア方法をフラグメント毎に設定することが可能なので、様々なクリア方法の組み合わせにより削除前のフラグメント内容の漏洩を避けることができる。
(第3実施形態)
第3実施形態は、第1実施形態におけるヌルコード上書きに一種の歯止めをかける実施形態である。どのようなケースで歯止めをかけるかというと、半導体メモリカードがカードリーダライタ200から、電力供給を受けている際、上書きは行わないというものである。カードリーダライタ200を介してECサーバ100をアクセスする際、SDeXメモリカード400はSDポータブルデバイス300背面の螺旋アンテナから電力供給を受けることは第1実施形態で示した通りである。電波による電力供給は、不安定かつ小電力であり、余計な処理負荷を発生させない方が望ましい。
そこで第3実施形態においてSDポータブルデバイス300及び削除ハンドラ16は、以下の処理を行う。
SDポータブルデバイス300は、カードリーダライタ200に接近した際、非接触式の電力供給を受けていることを通知する拡張SDコマンドを、SDeXメモリカード400に出力する。一方、カードリーダライタ200から離反した際、非接触式の電力供給が解除された旨を通知する拡張SDコマンドを、SDeXメモリカード400に出力する。カードリーダライタ200への接近・離反は、カードリーダライタ200からのポーリングコマンドを受信したかどうかの判定で検出できる。
削除ハンドラ16は、非接触式電力供給を通知する拡張SDコマンドをSDポータブルデバイス300から受信することで、非接触式電力供給モードに移行する。このモードは、削除イベントが発生した際、ファイルエントリー・FATのバックアップをとって、ファイルエントリー・FATの上書きのみ行うというものである。ファイルエントリー・FATのバックアップをとるだけでクリア処理管理テーブルは生成しない。そのため、他のイベントハンドラは、ヌルクリアを行うことはない。
以降、非接触式電力供給の解除を通知する拡張SDコマンドがSDポータブルデバイス300から発行されれば、削除ハンドラ16はこの非接触式電力供給モードを終了して、ファイルエントリー・FATのバックアップに基づきクリア処理管理テーブルの生成を行う。クリア処理管理テーブルの生成により、他のイベントハンドラは、ヌルクリアを開始する。
以上のように本実施形態によれば、カードリーダライタ200からの電力供給での動作時において、実体部に対するヌルクリアを行わないので、余計な処理負荷を生じさせないで済む。このため、SDeXメモリカード400の安定動作を実現することができる。
(第4実施形態)
第1実施形態〜第3実施形態において耐タンパモジュールの内部メモリ3及び外部メモリ2は、それぞれEEPROM及びフラッシュメモリで構成していた。これに対し第4実施形態では、耐タンパモジュールの内部メモリ3及び外部メモリ2を、2つのメモリモジュールで構成する。図25は、第4実施形態に係るメモリモジュールの構成を示す図である。本図において、EEPROM3a、フラッシュメモリ2aは、主たるメモリモジュールであり、第1実施形態〜第6実施形態に示したものと同じである。第4実施形態では、このメモリモジュールに加え、予備のメモリモジュール2b,3bが内部メモリ3及び外部メモリ2に追加されている。この予備のメモリモジュール2b,3bは強誘電体メモリ(Ferro Electric Random Access Memory(FeRAM))で構成されており、その性能はフラッシュメモリと大きく異なる。図26は、フラッシュメモリ、FeRAMの性能比較を示す図である。本図を参照すると、フラッシュメモリは価格面では低廉であり、大容量化には向いているが(図中の○)、ブロック単位の書き込みしか行えない(※1)。このブロックのサイズは、フラッシュメモリが大容量になればそれにつれ大きくなるので、小サイズのデータを書き込む場合、ロスが大きくなる。また書き込み時間は長く(10000ns)、書き込み回数も少ない(1,000,000回)。そして書込時には、既に格納されているデータを一旦消去して書き込みを行うため、書き込み性能は不安定となる(※2)。
一方、FeRAMは価格が高く大容量化には不向きであるが(△)、書き込み単位が1バイトであり、また書込時間は高速である(30〜100ns)。また書き換え回数も多い。
かかる性能差があることから、予備のメモリモジュールをFeRAMで構成し、ファイルエントリーやFAT等、更新頻度が高いデータをメモリモジュールに配せば、フラッシュメモリにおける書込性能を補うことができる。図27は、ファイルエントリーやFAT、クリア処理管理テーブルというような、更新頻度が高いデータが配されたFeRAMを示す図である。
以上のように本実施形態によれば、FeRAMで構成された予備のメモリモジュールにファイルエントリー、FAT等サイズが小さく更新頻度が高いデータを格納するので、ファイルエントリーやFATの高速書き換えを実現することができる。
FeRAMには、他にワンスタイムリードという特性がある。これは、格納されているデータを一度読み出せば、その格納内容は破壊されるという特性である(図の※4)。これは守秘性を徹底する意味では好ましいが、データの読み出し時には、再度データを書き込む必要があり、結局書込回数が増えてしまう。この読出時のデータ破壊という特性を補うなら、磁気共鳴メモリ(Magnetoresitive RAM(MRAM))を採用することが望ましい。
(第5実施形態)
第4実施形態では予備のメモリモジュールをFeRAMで構成していたが、第5実施形態は耐タンパモジュールの内部メモリ3をFeRAMで構成するという態様に関する。図28は、第5実施形態に係るTRM内メモリ3の内部を示す図である。耐タンパモジュールの内部メモリ3は小サイズなので、FeRAMで構成しても、大きなコストアップにならない。尚、第5実施形態ではTRM内メモリ3をFeRAMのみで構成するとしたが、MRAMのみで構成してもよい。
(第6実施形態)
本実施形態は、ファイルの管理情報を、ファイル実体部用の暗号鍵とは別の暗号鍵で暗号化しておく実施形態である。TRM1におけるTRM内メモリ3には、この管理情報用の暗号鍵も記録されている。そして、ファイル削除が命じられた際、削除ハンドラ16は、第1実施形態の処理に加え、前記管理情報用の暗号鍵を上書きする処理を行う。この上書きは、実体部用の暗号鍵の上書きより早くなされる。
管理情報を専用の暗号鍵で暗号化しておくことにより、たとえ管理情報のサイズが大きくても、当該ファイルの削除が命じられた場合、即座にファイルを読み出し不可能な状態にすることができる。
(備考)
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。但し、請求項に係る発明に含まれる他の具体例であって、本明細書及び図面、及び、出願時の技術常識をもって当業者が実施できる程度のものは、その記載を省略している。
(A)尚、ECクライアントアプリをアプリケーションプログラムの一例として説明したが、他のEアプリケーションプログラムでもよい。鉄道、航空、バス、高速道路等の交通機関が運営するサーバ装置上のサーバアプリケーション、これに対応するクライアントアプリケーションであってもよい。これにより、改札業務や搭乗手続きといった用途でもSDeXメモリカード400を利用することができる。
また、官公庁や地方公共団体が運営するサーバ装置上のサーバアプリケーション、これに対応するクライアントアプリケーションであってもよい。これにより、住民表や各種証明、登記等の用途にSDeXメモリカード400を利用することができる。
(B)図15〜図19、図23、図24に示したプログラムによる情報処理は、CPU、EEPROMといったハードウェア資源を用いて具体的に実現されている。つまり、プログラムと、ハードウェアとが協働した具体的手段が、使用目的に応じた情報処理を行うことにより、第1実施形態〜第6実施形態に示したSDeXメモリカード400は構築される。
プログラムによる情報処理が、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、自然法則を利用した技術的思想の創作と捉えることができ、プログラム単体で発明として成立する。つまり図15〜図19、図23、図24に示した処理手順は、本発明に係るプログラムの実施行為の形態を開示するものである。尚、第1実施形態〜第6実施形態は、SDeXメモリカード400に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、SDeXメモリカード400から分離して、第1実施形態〜第6実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
双方向の電子通信回線を介した提供行為(5)の類型には、提供者が、プログラムをユーザに送り、ユーザに使用させる行為や(プログラムダウンロードサービス)、プログラムを提供者の手元に残したまま、そのプログラムの機能のみを電子通信回線を通じて、ユーザに提供する行為(機能提供型ASPサービス)がある。
(C)図15〜図19、図23、図24のフロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、制御方法の使用形態を開示していることがわかる。これらのフロ−チャ−トこそ、本発明に係る制御方法の使用行為についての実施形態である。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る半導体メモリカードの制御方法の実施行為に該当することはいうまでもない。
(D)第1実施形態〜第6実施形態において耐タンパモジュール内外の不揮発メモリをEEPROMとして説明したが、不揮発メモリであればFe-RAM等他のものを採用してもよい。
(E)SDポータブルデバイス300は、携帯電話タイプのものを一例にして説明したが、民生用の携帯オーディオ機器やSTB(Set Top Box)や携帯電話であってもよい。
本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。
しかし請求項に係る各発明は、従来技術の技術的課題を解決するための手段を反映したものであるから、請求項に係る各発明の技術範囲は、従来技術の技術的課題解決が当業者により認識される技術範囲を超えることはない。故に、本願の請求項に係る各発明は、詳細説明の記載と、実質的な対応関係を有する。
本発明に係る半導体メモリカードは、削除されたファイルの守秘性を高度に保つことができるので、守秘が求められる様々なデータの格納に最適であり、民生機器業界を初め産業界の様々な分野で利用される可能性を有する。
SDeXメモリカードの使用環境を示す図。 本発明にかかる半導体メモリカードの内部構成を示す図。 TRM1内のハードウェア構成を示す図。 図3のTRM1内のマスクROM6とCPU7とからなる部分を、ソフトウェア構成に置き換えて描いた図。 外部フラッシュメモリ2及び内部EEPROM3の論理フォーマットを示す図。 ECクライアントアプリの拡張領域22、認証領域23、非認証領域24の内部構成を示す図。 パーティションの共通構成を示す図。 (a)二重化FATの構成を示す図。
(b)ルートディレクトリィエントリーの構成を示す図。
(c)ユーザ領域の構成を示す図。
EOB001.SE1をクラスタサイズに合わせて5つにフラグメント化し、各フラグメントを、クラスタ003,004,005,00A,00Cに格納する状態を想定した図。 EOB001.SE1が複数のクラスタに記録されている場合のディレクトリエントリー及びFATについての設定例を示す図。 API10の内部を示す図。 (a)読み書きハンドラ14によるファイル書き込みがどのように行われるかを示す図。
(b)読み書きハンドラ14によるファイル読み出しがどのように行われるかを示す図。
削除ハンドラ16の特徴を中心にて、API10の内部構成を描いた図。 クリア処理管理テーブルの一例を示す図。 イベント解析ハンドラ11の処理手順を示すフローチャート。 非コマンド実行中ハンドラの処理手順を示すフローチャート。 読出/書込イベントハンドラの処理手順を示すフローチャート。 削除ハンドラの処理手順を示すフローチャート。 サブルーチン化されたヌルクリア処理の処理手順を示すフローチャート。 図10のように記憶されているファイルに対し、削除イベントが発生した際の削除ハンドラ16の動作を示す図。 非コマンド実行中ハンドラ12、削除ハンドラ16による上書きがなされた後の処理を示す図。 第2実施形態にかかるクリア処理管理テーブルの一例を示す図。 第2実施形態に係るヌルクリアサブルーチンの処理手順を示す図。 逆方向でのヌルクリアの処理手順を示すフローチャート。 第4実施形態に係るメモリモジュールの構成を示す図。 フラッシュメモリ、FeRAMの性能比較を示す図。 ファイルエントリーやFAT、クリア処理管理テーブルというような、更新頻度が高いデータが配されたFeRAMを示す図。 第5実施形態に係るTRM内メモリ3の内部を示す図。
符号の説明
1 TRM
2 外部EEPROM
3 内部EEPROM
4 外部メモリアクセス部
5 HIM
6 マスクROM
7 CPU
8 クライアントアプリ
9 仮想マシン
10 API
11 イベント解析ハンドラ
12 非コマンド実行中ハンドラ
13 タイマハンドラ
14 読み書きハンドラ
15 削除ハンドラ
21 アプリケーションプログラムの使用領域
22 セキュア領域
23 認証領域
24 非認証領域
100 ECサーバ
200 カードリーダライタ
210 無線基地局
300 ポータブルデバイス

Claims (17)

  1. 半導体メモリカードであって、
    ファイルが格納された不揮発メモリと、
    処理部と、内部メモリとを含む耐タンパモジュールとを備え、
    ファイルは、ファイル実体部と、ファイル管理情報とからなり、
    前記処理部は、
    ファイルについての削除イベントが発生した際、所在表を耐タンパモジュールの内部メモリ上に生成し、不揮発メモリにおけるファイルの管理情報に対する上書きを行う削除部を備え、
    耐タンパモジュール内の所在表とは、ファイル実体部の所在を示すテーブルであり、ファイル実体部の上書きを実行するにあたって、削除部により参照される
    ことを特徴とする半導体メモリカード。
  2. 前記処理部は、半導体メモリカードと接続した機器が発行したコマンドに従って処理を行い、
    前記処理部は、機器からのコマンド発行を解析し、その解析結果に応じたイベントを発生する解析部を備え、
    前記削除部には、メイン削除部と、サブ削除部とがあり、
    メイン削除部は、
    削除イベントが発生した際、所在表の生成及びファイル管理情報に対する上書きを行い、
    サブ削除部は、
    他のイベントが発生した際、前記所在表を参照して、ファイル実体部に対する上書きを行う
    ことを特徴とする請求項1記載の半導体メモリカード。
  3. 前記処理部は、削除イベントが発生した際、計時を開始するタイマを備え、
    前記メイン削除部は、当該タイマがタイムアウトするまでの間、ファイル管理情報に対する上書きに加え、ファイル実体部の一部分に対する上書きを行い、
    前記サブ削除部による上書きの対象は、メイン削除部により上書きがなされた部分の残りである
    ことを特徴とする請求項2記載の半導体メモリカード。
  4. 前記所在表は、ファイル実体部において上書きが完了した位置を示すクリア済みアドレスと、
    複数の上書き手法のうち何れの手法で、実体部に対する上書きを行うかを示す指示情報とを含み、
    前記サブ削除部は、
    所在表に示される指示情報に従って実体部に対する上書きを行い、その度に、所在表におけるクリア済みアドレスを更新する
    ことを特徴とする請求項3記載の半導体メモリカード。
  5. 前記削除イベントとは、半導体メモリカードと接続した機器が前記ファイルの削除コマンドを発行した際、解析部が発生するイベントであり、
    前記他のイベントとは、何等かのコマンドについての処理を、処理部が終了した際、解析部が発生するコマンド終了イベントである
    ことを特徴とする請求項2記載の半導体メモリカード。
  6. 前記処理部は、削除イベントで駆動される削除ハンドラ、コマンド終了イベントで駆動されるコマンド非実行中ハンドラを備え、
    前記メイン削除部とは、削除ハンドラであり、
    前記サブ削除部とは、コマンド非実行中ハンドラである
    ことを特徴とする請求項5記載の半導体メモリカード。
  7. 前記削除イベントとは、半導体メモリカードと接続した機器が前記ファイルの削除コマンドを発行した際、解析部が発生するイベントであり、
    前記他のイベントとは、半導体メモリカード内の別のファイルに対する読出コマンドを機器が発行した際、解析部が発生する読出イベント、又は、
    半導体メモリカード内の別のファイルに対する書込コマンドを機器が発行した際、解析部が発生する書込イベントである、
    ことを特徴とする請求項2記載の半導体メモリカード。
  8. 前記処理部は、削除イベントで駆動される削除ハンドラ、読出イベント又は書込イベントで駆動される読み書きハンドラを備え、
    前記メイン削除部とは、削除ハンドラであり、
    前記サブ削除ハンドラは、読み書きハンドラの一構成要素である
    ことを特徴とする請求項7記載の半導体メモリカード。
  9. 前記内部メモリには、所定の暗号鍵が記録されており、
    前記ファイルの実体部は当該暗号鍵を用いて暗号化されており、
    前記メイン削除部は更に、
    削除イベントが発生した際、前記暗号鍵を上書きする処理を行い
    前記メイン削除部による管理情報上書きは、暗号鍵に対する上書きより後に行われる
    ことを特徴とする請求項2記載の半導体メモリカード。
  10. 前記ファイルの管理情報は、前記暗号鍵とは別の暗号鍵で暗号化されており、
    前記内部メモリには、前記管理情報用の暗号鍵も記録されており、
    前記メイン削除部は更に、
    削除イベントが発生した際、前記管理情報用の暗号鍵を上書きする処理を行い
    前記メイン削除部によるファイル実体部用暗号鍵の上書きは、管理情報用暗号鍵に対する上書きより後に行われる
    ことを特徴とする請求項9記載の半導体メモリカード。
  11. 前記ファイルの実体部は、フラグメント化されており、
    前記所在表は、
    実体部を構成する各フラグメントの開始アドレスと、
    各フラグメントの上書きが未完である場合、オフに設定され、フラグメントが全て上書きされた場合、オンに設定されるフラグとを含む
    ことを特徴とする請求項9記載の半導体メモリカード。
  12. 前記半導体メモリカードは、機器からの接触式の電力供給又は機器からの非接触式の電力供給により駆動するものであり、
    前記処理部による上書きは、
    機器からの接触式の電力供給がなされている場合に行われるものであり、
    機器からの非接触式の電力供給がなされている場合行われない
    ことを特徴とする請求項1記載の半導体メモリカード。
  13. 不揮発メモリは、第1のメモリモジュールと、第2のメモリモジュールとからなり、
    第2メモリモジュールは、書き込み単位が第1メモリモジュールより小さく、 ファイルの管理情報は、第2メモリモジュールに記録されている
    ことを特徴とする請求項1記載の半導体メモリカード。
  14. 前記第2メモリモジュールは、強誘電体メモリ(Ferro Electric Random Access Memory)又は磁気共鳴メモリ(Magnetoresitive Random Access Memory)である
    ことを特徴とする請求項13記載の半導体メモリカード。
  15. 耐タンパモジュールの内部メモリは、第1のメモリモジュールと、第2のメモリモジュールとからなり、
    第2メモリモジュールは、書き込み単位が第1メモリモジュールより小さく、 前記所在表は、第2メモリモジュールに記録されている。
    ことを特徴とする請求項1記載の半導体メモリカード。
  16. 前記第2メモリモジュールは、Ferro Electric Random Access Memory又はMagnetoresitive Random Access Memoryである
    ことを特徴とする請求項15記載の半導体メモリカード。
  17. 不揮発メモリと、耐タンパモジュールとを備える半導体メモリカードにおいて、耐タンパモジュール内のCPUにより実行される制御プログラムであって、
    不揮発メモリには、ファイルが格納されており、
    ファイルは、ファイル実体部と、ファイル管理情報とならなり、
    耐タンパモジュールは、内部メモリを含み、
    制御プログラムは、
    ファイルについての削除イベントが発生した際、所在表を耐タンパモジュールの内部メモリ上に生成し、不揮発メモリにおけるファイルの管理情報に対する上書きを行い、
    耐タンパモジュール内の所在表とは、ファイル実体部の所在を示すテーブルであり、ファイル実体部の上書きを実行するにあたって、制御プログラムにより参照される
    ことを特徴とする制御プログラム。
JP2004026852A 2003-02-04 2004-02-03 半導体メモリカード、コンピュータ読取可能なプログラム Expired - Lifetime JP4486828B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004026852A JP4486828B2 (ja) 2003-02-04 2004-02-03 半導体メモリカード、コンピュータ読取可能なプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003027683 2003-02-04
JP2004026852A JP4486828B2 (ja) 2003-02-04 2004-02-03 半導体メモリカード、コンピュータ読取可能なプログラム

Publications (2)

Publication Number Publication Date
JP2004259265A JP2004259265A (ja) 2004-09-16
JP4486828B2 true JP4486828B2 (ja) 2010-06-23

Family

ID=33133666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004026852A Expired - Lifetime JP4486828B2 (ja) 2003-02-04 2004-02-03 半導体メモリカード、コンピュータ読取可能なプログラム

Country Status (1)

Country Link
JP (1) JP4486828B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
EP2049991A2 (en) 2006-08-08 2009-04-22 Sandisk Corporation Portable mass storage with virtual machine activation
US7725614B2 (en) 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
CN101661438B (zh) * 2008-08-29 2013-08-28 鸿富锦精密工业(深圳)有限公司 电子装置及中央处理器寻址空间扩展方法
JP2010165256A (ja) * 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置
JP5595965B2 (ja) * 2011-04-08 2014-09-24 株式会社東芝 記憶装置、保護方法及び電子機器
CN103390139A (zh) * 2012-05-11 2013-11-13 慧荣科技股份有限公司 数据储存装置以及其数据保护方法
KR101605156B1 (ko) 2014-12-11 2016-03-21 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 장치, 방법 및 컴퓨터 프로그램
KR101707183B1 (ko) * 2015-11-12 2017-02-15 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
JP2004259265A (ja) 2004-09-16

Similar Documents

Publication Publication Date Title
JP4469405B2 (ja) 半導体メモリカード、プログラム
US7392358B2 (en) Delivery of a message to a user of a portable data storage device as a condition of its use
JP4681314B2 (ja) 無線通信システム,リーダ/ライタ装置,鍵管理方法,およびコンピュータプログラム
JP2003132305A (ja) メモリカードを制御するための装置および方法
US20100070707A1 (en) Portable electronic device and data processing method in portable electronic device
CN101427225A (zh) 数据区段尺寸不同于存储器页面和/或区块尺寸之非易失性存储器系统的操作技术
EP1733305A1 (en) Semiconductor memory
JP3445304B2 (ja) ファイル管理装置
EP1493157B1 (en) Semiconductor memory card and computer readable program
JP4486828B2 (ja) 半導体メモリカード、コンピュータ読取可能なプログラム
JP4279699B2 (ja) 半導体メモリカード、制御プログラム。
JP2003196613A (ja) メモリカードを制御するための装置および方法
JP2005134953A (ja) 未設定icカード、icカード発行システム及びicカードアプリケーションの発行方法
JP3915514B2 (ja) Icカード
JP2001005928A (ja) Icカード
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP7438432B1 (ja) 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム
JP3775697B2 (ja) 携帯可能情報記憶媒体
JP3166168B2 (ja) Icカードを利用したデータの記録方法
JP3054119B2 (ja) 携帯可能電子装置
CN101436163A (zh) 非挥发性存储器储存装置及其存取方法
JP2694170B2 (ja) Icカードシステム
JPH09231330A (ja) Icカード
JPS63223995A (ja) 携帯可能電子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061122

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250