JP2015038723A - 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体 - Google Patents

書込装置、書込方法、書込処理プログラム、及び情報記憶媒体 Download PDF

Info

Publication number
JP2015038723A
JP2015038723A JP2014141436A JP2014141436A JP2015038723A JP 2015038723 A JP2015038723 A JP 2015038723A JP 2014141436 A JP2014141436 A JP 2014141436A JP 2014141436 A JP2014141436 A JP 2014141436A JP 2015038723 A JP2015038723 A JP 2015038723A
Authority
JP
Japan
Prior art keywords
execution
memory
storage medium
information storage
writing
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.)
Granted
Application number
JP2014141436A
Other languages
English (en)
Other versions
JP6428003B2 (ja
Inventor
平野 晋健
Tanitake Hirano
晋健 平野
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 JP2014141436A priority Critical patent/JP6428003B2/ja
Publication of JP2015038723A publication Critical patent/JP2015038723A/ja
Application granted granted Critical
Publication of JP6428003B2 publication Critical patent/JP6428003B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】SCAの対策に対して、ICチップ等の情報記憶媒体に書き込まれるプログラムの保護を、処理が複雑化しない構成で効率良く行うことが可能な書込装置、書込方法、書込処理プログラム、及び情報記憶媒体を提供する。【解決手段】本発明の書込装置は、所定のプログラムを構成する複数の実行コードの情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替え、前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる。【選択図】図2

Description

本発明は、所定のプログラムを構成する複数の実行コードを実行可能なICチップ等の情報記憶媒体が備えるメモリに前記プログラムを書き込ませる装置等の技術に関する。
従来から、例えばICカードに搭載されるICチップでは、Java(登録商標)Cardに対応しているものが多い。Java(登録商標)といったプログラム言語は、ハードウェアの依存性を吸収するために、C言語のようにコンパイルによってソースコードからネイティブコード(機械語)に変換されるものと異なり、コンパイラによって中間言語と呼ばれる実行形式である中間コード(バイトコード)に変換される。中間コードとは、算術や分岐といった命令を含んだデータ列である。この中間コードは、仮想マシン(Virtual Machine
)により解釈及び実行される。このような仮想マシンを備えるICチップでは、仮想マシンの命令解釈部を、各命令(中間コード)の実装(実行コード)の先頭番地(つまり、メモリにおける先頭アドレス)の配列で実現していることが多い。また、現存するICチップの多くがプログラム(命令解釈部を含む実行コード)をROMに記録している(半導体製造工程中に実行コードの配置が確定する)が、最近では、ROM容量を減らし、フラッシュメモリ等の不揮発性メモリを大容量化したICチップも多く、前述のようなプログラムを不揮発メモリに記録するICチップが増えている(半導体ベンダから出荷された後に実行コードとその配置が確定する)。
ところで、ICチップの消費電力や放射電磁界などの変化を解析することで、ICチップ内部の処理や内部にしかない秘密情報を推測する攻撃手法として、SCA(Side Channel Analysis)が広く知られている。中でも、入手しやすいサンプルカードのサイドチャネル情報を解析してその特徴を事前に学習しておき、同じICチップを採用した流通カード(例えば、クレジットカード)などから秘密情報を類推する攻撃手法が注目されている。これは、学習(攻撃準備)に用いたサンプルカードと流通カードのそれぞれから得られるサイドチャネル情報が酷似していることに起因する。このようなSCAの対策に関連する技術として、暗号処理動作の間に予測不能な電力量を計算することで電力消費の測定にノイズを導入する暗号処理装置が知られている(例えば、特許文献1参照)。
米国特許第7599488号明細書
しかしながら、特許文献1に記載された暗号処理装置では、処理が複雑化し、回路規模が増大してしまうという問題がある。また、特許文献1に記載された暗号処理装置では、SCAの対策に対して、ICチップ等の情報記憶媒体に書き込まれるプログラム自体の保護に着目されていない。
本発明は、SCAの対策に対して、ICチップ等の情報記憶媒体に書き込まれるプログラムの保護を、処理が複雑化しない構成で効率良く行うことが可能な書込装置、書込方法、書込処理プログラム、及び情報記憶媒体を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込む書込装置であって、前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替手段と、前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御手段と、を備えることを特徴とする。
請求項2に記載の発明は、請求項1に記載の書込装置において、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記並替手段により前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段と、を備えることを特徴とする。
請求項3に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込む書込装置であって、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段と、を備えることを特徴とする。
請求項4に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、メモリと、前記複数の実行コードの前記メモリにおける配列であってデフォルト設定された配列が並び替えられた前記複数の実行コードを書込装置から取得して前記メモリに書き込む書込手段と、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、を備えることを特徴とする。
請求項5に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードを記憶するメモリと、前記メモリに記憶されている前記複数の実行コードの当該メモリにおける配列を並び替える並替手段と、前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記メモリに書き込む書込手段と、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、を備えることを特徴とする。
請求項6に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードを記憶するメモリと、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、を備えることを特徴とする。
請求項7に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込むコンピュータにより実行される情報記憶媒体の書込方法であって、前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替ステップと、前記並替ステップにより前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御ステップと、を含むことを特徴とする。
請求項8に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込むコンピュータにより実行される書込方法であって、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成ステップと、前記生成ステップにより生成された参照テーブルを前記情報記憶媒体へ送信する送信ステップと、を含むことを特徴とする。
請求項9に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込むコンピュータを、前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替手段と、前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御手段として機能させることを特徴とする。
請求項10に記載の発明は、所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込むコンピュータを、前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段として機能させることを特徴とする。
本発明によれば、ICチップ等の情報記憶媒体に書き込まれるプログラムの保護を、処理が複雑化しない構成で効率良く行うことができる。
ICカード発行システムSの概要構成例を示す図である。 (A),(B)は、ICカード発行機2における制御部21の処理例を示すフローチャートである。 (A)は、サンプルカードと、実施例1の処理で発行されたICカード1の参照テーブル及び実装配列を示す図であり、(B)は、サンプルカードと、実施例2の処理で発行されたICカード1の参照テーブル及び実装配列を示す図である。(C)は、2重化された実行コード“ADD”(01と02)の内容の一例を示す図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICカード発行システムに対して本発明を適用した場合の実施の形態である。なお、本明細書で「発行」とは、ICチップ等の情報記憶媒体に所定の情報(プログラムやデータなど)を書き込むことを意味する。
先ず、図1を参照して、本実施形態に係るICカード発行システムの構成及び機能概要について説明する。図1は、ICカード発行システムSの概要構成例を示す図である。図1に示すように、ICカード発行システムSは、発行対象のICカード1と、ICカード発行機2とを備える。
ICカード1には、図1に示すように、ICチップ1aが搭載されている。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップ1aは本発明における情報記憶媒体を構成するが、このICチップ1aは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random AccessMemory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成され、所定のプログラムを構成する複数の実行コードを実行可能になっている。不揮発性メモリ13には、例えばフラッシュメモリが適用される。不揮発性メモリ13は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。I/O回路14は、ICカード発行機2とのインターフェイスを担う。I/O回路14には、例えばISO/IEC7816によって定められたC1〜C8の8個の端子が設けられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子はICカード発行機2などの外部端末とのデータ通信を行う端子である。
CPU10は、ROM12、不揮発性メモリ13またはRAM11に記憶された各種プログラムを実行する演算装置である。各種プログラムには、OS(Operating System)、仮想マシン、およびアプリケーションプログラムが含まれ、アプリケーションプログラムは後述のように仮想マシンを介して実行される。OS、及び仮想マシンは、複数の実行コード(実行コード群)で記述される。OSは、ICチップ1aの動作を直接コントロールするソフトウェアである。仮想マシンは、Java(登録商標)等のプログラム言語で記述されるアプリケーションプログラムのソースコードをコンパイルすることで得られる中間コードを解釈、実行する。本実施形態のアプリケーションプログラムは、例えば、ICカード1の発行処理後にICチップ1aにインストールされるアプリケーションプログラムである。このようなアプリケーションプログラムは、ソースコードと実行コードとの間に位置する複数の中間コードによって構成され、不揮発性メモリ13における所定のアドレスに書き込まれる。中間コードは、これに対応する実行コードを識別する識別情報(インデックス)である。例えば、中間コード“03”は、実行コード“ADD”(加算)を示す。また、中間コード“04”は、実行コード“MOV”(データ書き込み)を示す。また、中間コード“05”は、実行コード“SUB”(減算)を示す。仮想マシンは、中間コードの解釈及び実行にあたり、中間コードと、実行コードが書き込まれる不揮発性メモリ13におけるアドレス(例えば、実行コードの先頭アドレス)を示すアドレス情報との対応関係を実行コードごとに示す参照テーブルを参照する。これにより特定されたアドレスに記憶されている実行コードがCPU10により実行されることになる。つまり、この参照テーブルは、不揮発性メモリ13に書き込まれた実行コードが実行される際に参照される。この参照テーブルは、ICカード発行機1が生成する場合と、ICチップ1aが生成する場合とがある。
ICカード発行機2は、CPU、RAM、及び不揮発性メモリ等から構成される制御部21、ハードディスクドライブ等から構成される記憶部22、及びICカード1との間でリーダライタを介して通信を行うための通信部23等を備えて構成される。ICカード発行機2は、本発明の書込装置の一例である。記憶部22には、OS、及び本発明の書込処理プログラムが記憶される。制御部21は、本発明の書込処理プログラムを実行することにより、本発明における並替手段、書き込み制御手段、生成手段、及び送信手段として機能し、ICカード1の製造工程中に、ICカード1を発行する発行処理を行うようになっている。記憶部22には、ICカード1に書き込ませるプログラムが記憶されている。
図2(A),(B)は、ICカード発行機2における制御部21の処理例を示すフローチャートである。図2(A)は、実施例1の処理を示し、図2(B)は、実施例2の処理を示す。なお、図2(A),(B)に示す処理は、ICカード1の製造工程中の発行処理時に実行される。
(実施例1)
実施例1は、ROM12の記憶容量が少なく、不揮発性メモリ13の記憶容量が多いICカード1に適用する場合に有効な実施例である。実施例1の処理では、図2(A)に示すように、制御部21は、ICチップ1aの不揮発性メモリ13に書き込ませるプログラムを記憶部22から取得する(ステップS1)。
次いで、制御部21は、取得したプログラムを構成する複数の実行コードの不揮発性メモリ13における配列であってデフォルト設定された配列(実装配列)を、例えば乱数またはICチップ1aに固有の情報に基づいて並び替える(ステップS2)。例えば、ICチップ1aが解釈及び実行するコード(例えば、コンパイラやリンカにより生成された文字や数値の塊で中間コードの実装の境目を識別できる状態)を入力とし、乱数、製造履歴、ICチップ1aの識別情報などを基に中間コードに対応する実行コードの配列が並び替えられる。これにより、製造工程中の発行処理時に、中間コードの実装(実行コード)の配列が、同一の用途に利用される(同一のプログラムを含むデータが書き込まれる)ICチップ1aごとに変更される。なお、同一の用途に利用される全てのICチップ1aで個別化できるように、ICチップ1aの識別情報や製造履歴を基に個別化することが望ましいが、サンプルカードと流通カード(市場で使用されるカード)とで2通りだけを区別してもよい。
次いで、制御部21は、ステップS2において配列が並べ替えられた後の上記対応関係を示す参照テーブルを生成する(ステップS3)。つまり、ステップS2における並び替えに沿って参照テーブルが生成される。
次いで、制御部21は、ステップS2で配列が並び替えられた複数の実行コードを含むプログラムと、ステップS3で生成された参照テーブルとをICチップ1aへ送信し、当該複数の実行コードを不揮発性メモリ13に書き込ませる(ステップS4)。こうして不揮発性メモリ13に参照テーブル及びプログラムが記憶されたICチップ1aを搭載するICカード1が、流通カードとして生成されることになる。
図3(A)は、サンプルカードと、実施例1の処理で発行されたICカード1の参照テーブル及び実装配列を示す図である。図3(A)に示すように、双方の参照テーブルにおける中間コードの並び順は同一であるが、中間コードに対応付けられているアドレス情報(この例では、実行コードの先頭アドレス)が異なっている。つまり、サンプルカードと、実施例1の処理で発行されたICカード1とで、不揮発性メモリ13に書き込まれた実行コードの配列が異なっている。これにより、参照テーブルが参照されて実行コードが不揮発性メモリ13から読み出されるときの消費電力の出方を変えることができる。例えば、同じ実行コード“ADD”でも、8000番地と8026番地に配置されている場合では番地のハミング重み(二進数で1を示すビットの数であり、8000は1で8026は4となる)が異なるため、アドレスバスに起因する消費電力に差が生じる。つまり、同じ実行コード“ADD”を実行しているにもかかわらず、ICチップごとに消費電力値を異ならせることができる。そのため、SCAにおいて学習に使われた使ったサンプルカードと、実施例1の処理で発行されたICカード1のそれぞれのサイドチャネル情報の相関を減らすことができる。また、実施例1の構成によれば、ICチップ1a内部の処理には特別な追加要素がなく、従来どおりの「中間コードに対応した実装の先頭番地を記録した参照テーブルを参照する」だけでよい。つまり、ICカード発行機2側で対処することで上記効果を得ることができる。
なお、実施例1の変形例として、上記参照コードの生成は、ICチップ1a側で行われるように構成してもよい。この場合、ICチップ1aは、複数の実行コードの不揮発性メモリ13における配列であってデフォルト設定された配列が、例えば乱数またはICチップ1aに固有の情報に基づいて並び替えられた複数の実行コードを含むプログラムをICカード発行機2から取得して不揮発性メモリ13に書き込む。そして、ICチップ1aは、ICカード発行機2により当該実行コードの配列が並び替えられた後の上記対応関係を示す参照テーブルを生成する。
また、実施例1の変形例として、実行コードの配列の並び替えもICチップ1a側で行われるように構成してもよい。この場合、ICチップ1aは、例えばコンパイル時に確定した順番で実行コードを不揮発性メモリ13の例えばバックアップ領域に書き込む。次いで、ICチップ1aは、不揮発性メモリ13に記憶されている複数の実行コードの当該不揮発性メモリ13における配列を、例えば乱数またはICチップ1aに固有の情報に基づいて並び替える。次いで、ICチップ1aは、配列が並び替えられた複数の実行コードを不揮発性メモリ13の例えばバックアップ領域から正規の領域に並び替えた配列で書き込む(つまり、移し替える)。そして、ICチップ1aは、ICチップ1aにより当該実行コードの配列が並び替えられた後の上記対応関係を示す参照テーブルを生成する。
(実施例2)
実施例2は、不揮発性メモリ13の記憶容量が少なく、特に、ICカード発行機2では実装の並びを変えられないROMに実行コードを記憶するICカード1に適用する場合に有効な実施例である。この場合、ICチップ1aのROM12には、複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化(3重化以上であってもよい)された複数の実行コードが記憶されているものとする。実施例2の処理では、図2(B)に示すように、制御部21は、上述した参照テーブルにおいて、少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する中間コードと、当該実行コードが記憶されたROM12におけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する(ステップS11)。ここで、少なくとも2重化された実行コードのうち、どの実行コードを選択するかは、例えば乱数によって決められる。そして、制御部21は、ステップS11で生成された参照テーブルをICチップ1aへ送信する(ステップS12)。
図3(B)は、サンプルカードと、実施例2の処理で発行されたICカード1の参照テーブル及び実装配列を示す図である。図3(B)に示すように、双方の参照テーブルにおける中間コードの並び順は同一であるが、中間コードに対応付けられているアドレス情報(この例では、実行コードの先頭アドレス)が異なっている。つまり、サンプルカードと、実施例2の処理で発行されたICカード1とで、2重化された実行コードのうち、選択された実行コードが異なっている。これにより、実施例1と同様、参照テーブルが参照されて実行コードがROM12から読み出されるときの消費電力の出方を変えることができる。また、実施例2の構成によれば、ICチップ1a内部の処理には特別な追加要素がなく、従来どおりの「中間コードに対応した実装の先頭番地を記録した参照テーブルを参照する」だけでよい。つまり、ICカード発行機2側で対処することで上記効果を得ることができる。また、実装の並びを変えられないROMに実行コードを記憶する場合であっても、実行コードがROMから読み出されるときの消費電力の出方をICカード1ごと変えることができる。
なお、実施例2の変形例として、上記参照コードの生成は、ICチップ1a側で行われるように構成してもよい。この場合、ICチップ1aは、上述した参照テーブルにおいて、少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する中間コードと、当該実行コードが記憶されたROM12におけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する。また、このように同じ処理がされる実行コードを少なくとも2重化する場合において、実行コードの順番や利用されるレジスタを変更するように構成してもよい。図3(C)は、2重化された実行コード“ADD”(01と02)の内容の一例を示す図である。図3(C)に示すADD01では、先ず0003番地のデータをレジスタR0に移し、その後に0058番地のデータをレジスタR1に移し、その後に、レジスタR0とR1のデータを加算させる手順になっている。一方、図3(C)に示すADD02では、先ず0058番地のデータをレジスタR1に移し、その後に0003番地のデータをレジスタR0に移し、その後に、レジスタR0とR1のデータを加算させる手順になっている。このようにADD01とADD02の処理結果は同一となるが、アドレスからの読み出し順序を異ならせることで、実行コードがROM12から読み出されるときの消費電力の出方の傾向を更に変えることができる。
以上説明したように、上記実施形態によれば、ICチップ1aに書き込まれる複数の実行コードの配列を並び替えたり、或いは、当該実行コードを少なくとも2重化して何れかの実行コードを選択させるように構成したので、当該実行コードが不揮発性メモリ13から読み出されるときの消費電力の出方を変えさせることができ、ICチップ1aに書き込まれるプログラムの保護を、処理が複雑化しない構成で効率良く行うことができる。
1 ICカード
2 ICカード発行機
1a ICチップ
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路

Claims (10)

  1. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込む書込装置であって、
    前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替手段と、
    前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御手段と、
    を備えることを特徴とする書込装置。
  2. 前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記並替手段により前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、
    前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段と、
    を備えることを特徴とする請求項1に記載の書込装置。
  3. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込む書込装置であって、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、
    前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段と、
    を備えることを特徴とする書込装置。
  4. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、
    メモリと、
    前記複数の実行コードの前記メモリにおける配列であってデフォルト設定された配列が並び替えられた前記複数の実行コードを書込装置から取得して前記メモリに書き込む書込手段と、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、
    を備えることを特徴とする情報記憶媒体。
  5. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、
    前記複数の実行コードを記憶するメモリと、
    前記メモリに記憶されている前記複数の実行コードの当該メモリにおける配列を並び替える並替手段と、
    前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記メモリに書き込む書込手段と、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記配列が並び替えられた後の前記対応関係を示す前記参照テーブルを生成する生成手段と、
    を備えることを特徴とする情報記憶媒体。
  6. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、
    前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードを記憶するメモリと、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、
    を備えることを特徴とする情報記憶媒体。
  7. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込むコンピュータにより実行される情報記憶媒体の書込方法であって、
    前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替ステップと、
    前記並替ステップにより前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御ステップと、
    を含むことを特徴とする書込方法。
  8. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込むコンピュータにより実行される書込方法であって、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成ステップと、
    前記生成ステップにより生成された参照テーブルを前記情報記憶媒体へ送信する送信ステップと、
    を含むことを特徴とする書込方法。
  9. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体に情報を書き込むコンピュータを、
    前記複数の実行コードの前記情報記憶媒体のメモリにおける配列であってデフォルト設定された配列を並び替える並替手段と、
    前記並替手段により前記配列が並び替えられた前記複数の実行コードを前記情報記憶媒体のメモリに書き込ませる書き込み制御手段として機能させることを特徴とする書込処理プログラム。
  10. 所定のプログラムを構成する複数の実行コードを実行可能な情報記憶媒体であって、前記複数の実行コードのうち少なくとも何れか一つの実行コードが少なくとも2重化された前記複数の実行コードをメモリに記憶した前記情報記憶媒体に情報を書き込むコンピュータを、
    前記実行コードを識別する識別情報と、前記実行コードが書き込まれる前記メモリにおけるアドレスを示すアドレス情報との対応関係を前記実行コードごとに示す参照テーブルであって、前記少なくとも2重化された実行コードについてはこれらの実行コードのうちから選択される何れか一つの実行コードを識別する識別情報と、当該実行コードが記憶された前記メモリにおけるアドレスを示すアドレス情報との対応関係を示す参照テーブルを生成する生成手段と、
    前記生成手段により生成された参照テーブルを前記情報記憶媒体へ送信する送信手段として機能させることを特徴とする書込処理プログラム。
JP2014141436A 2013-07-17 2014-07-09 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体 Active JP6428003B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014141436A JP6428003B2 (ja) 2013-07-17 2014-07-09 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013148805 2013-07-17
JP2013148805 2013-07-17
JP2014141436A JP6428003B2 (ja) 2013-07-17 2014-07-09 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体

Publications (2)

Publication Number Publication Date
JP2015038723A true JP2015038723A (ja) 2015-02-26
JP6428003B2 JP6428003B2 (ja) 2018-11-28

Family

ID=52631750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014141436A Active JP6428003B2 (ja) 2013-07-17 2014-07-09 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体

Country Status (1)

Country Link
JP (1) JP6428003B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS636690A (ja) * 1986-06-26 1988-01-12 Toshiba Corp 携帯可能電子装置
JPH0250787A (ja) * 1988-08-12 1990-02-20 Hitachi Maxell Ltd Icカード及びそのプログラム書換え方式
US5276903A (en) * 1988-08-12 1994-01-04 Hatachi Maxell, Ltd. Method for rewriting partial program data in an IC card and apparatus therefor
JP2005071055A (ja) * 2003-08-22 2005-03-17 Hyper Tec:Kk 暗号化プログラム復号方法及び暗号化プログラム復号プログラム
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
US20060253687A1 (en) * 2005-05-09 2006-11-09 Microsoft Corporation Overlapped code obfuscation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS636690A (ja) * 1986-06-26 1988-01-12 Toshiba Corp 携帯可能電子装置
JPH0250787A (ja) * 1988-08-12 1990-02-20 Hitachi Maxell Ltd Icカード及びそのプログラム書換え方式
US5276903A (en) * 1988-08-12 1994-01-04 Hatachi Maxell, Ltd. Method for rewriting partial program data in an IC card and apparatus therefor
JP2005071055A (ja) * 2003-08-22 2005-03-17 Hyper Tec:Kk 暗号化プログラム復号方法及び暗号化プログラム復号プログラム
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
US20060253687A1 (en) * 2005-05-09 2006-11-09 Microsoft Corporation Overlapped code obfuscation

Also Published As

Publication number Publication date
JP6428003B2 (ja) 2018-11-28

Similar Documents

Publication Publication Date Title
KR20030071461A (ko) 메모리카드
US7409251B2 (en) Method and system for writing NV memories in a controller architecture, corresponding computer program product and computer-readable storage medium
US9772937B2 (en) Data processing method, memory controller and memory storage apparatus
CN102623069A (zh) 随机激励闪存模型验证方法
EP2876593A1 (en) Method of generating a structure and corresponding structure
JP2006522968A (ja) 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行
US20120117550A1 (en) Method, computer program and device for providing security for intermediate programming code for its execution by a virtual machine
JP3771904B2 (ja) 補助レジスタバンクを有するマイクロプロセッサ回路
CN103207824B (zh) 监控模式下不受复位干扰的仿真器
CN107678770B (zh) 接口芯片升级方法、装置、存储介质和处理器
JP6428003B2 (ja) 書込装置、書込方法、書込処理プログラム、及び情報記憶媒体
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
SA517382268B1 (ar) طريقة لتوليد نظام مدمج قابل للاشتقاق في مجموعة من نظام مدمج شخصي
JP6248518B2 (ja) 情報記憶媒体、情報書き込み方法、及び書き込み処理プログラム
CN101840520B (zh) 一种智能卡及访问智能卡闪存的方法
EP4020297A1 (en) Method for managing a volatile memory and java card device
US9916281B2 (en) Processing system with a secure set of executable instructions and/or addressing scheme
JP7438432B1 (ja) 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム
JP2008500601A (ja) 半導体メモリカード
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
WO2017084556A1 (zh) 一种跨终端设备平台的数据处理方法及装置
JP7043886B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP5957347B2 (ja) Icカード、および携帯可能電子装置
Torr et al. Multos and multos application development
US20220058008A1 (en) Method and system for optimizing access to constant memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180427

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181015

R150 Certificate of patent or registration of utility model

Ref document number: 6428003

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150