JP2004326335A - Icカード及び暗号処理システム - Google Patents
Icカード及び暗号処理システム Download PDFInfo
- Publication number
- JP2004326335A JP2004326335A JP2003118634A JP2003118634A JP2004326335A JP 2004326335 A JP2004326335 A JP 2004326335A JP 2003118634 A JP2003118634 A JP 2003118634A JP 2003118634 A JP2003118634 A JP 2003118634A JP 2004326335 A JP2004326335 A JP 2004326335A
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- random number
- card
- encryption
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】本発明はICカードに保存された秘密データの外部への漏洩を防ぐようなシステムを有したICカードを提供することを目的とする。
【解決手段】ICカード1のRAM7は複数のエリアを有し、ICリーダライタ2から受信した平文と乱数発生モジュール5から生成した乱数データを複数のRAM7エリアにランダムに保存する。平文と乱数データは暗号モジュール4によってそれぞれ暗号処理されて、暗号結果はRAM7エリアに保存する。平文が保存されているRAM7エリアは1つの乱数データによって設定されている。平文の暗号結果のみをRAM7エリアから読み出して、ICカードリーダライタ2に送信する。
【選択図】 図1
【解決手段】ICカード1のRAM7は複数のエリアを有し、ICリーダライタ2から受信した平文と乱数発生モジュール5から生成した乱数データを複数のRAM7エリアにランダムに保存する。平文と乱数データは暗号モジュール4によってそれぞれ暗号処理されて、暗号結果はRAM7エリアに保存する。平文が保存されているRAM7エリアは1つの乱数データによって設定されている。平文の暗号結果のみをRAM7エリアから読み出して、ICカードリーダライタ2に送信する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、内部のCPU(Central Processing Unit)によって秘密データを管理するICカードに関する。
【0002】
【従来の技術】
現在、クレジットカードやマネーカード等に用いられているIC(Integrated Circuit)カードはICチップが埋め込まれたカード状デバイスである。
【0003】
このようにICカードの利用分野が金銭に関わってくるものなので、ICカードの取り扱いには慎重にしなくてならない。
【0004】
このICカードを使用する際には、ICカードのリーダライタ(以下、「ICカードリーダライタ」という。)とICカードの相互認証を行い、ICカードとICカードリーダライタが共に正しいか否かの認証をしている。正しいと判断した後に、認証したICカードの処理を行っている。
【0005】
この相互認証は認証アルゴリズムを用いた暗号鍵を使ったデータの暗号化や暗号文の復号化を行っている。
【0006】
暗号鍵は秘密情報であって悪意の使用によって外部に漏れてはいけない。また、ICカードには勝手に書き換えられることのないような情報も保存されている(例えば、特許文献1参照。)。
【0007】
【特許文献1】
特開2002−202916号公報
【0008】
【発明が解決しようとする課題】
一般に、CPUを内蔵したICカードにおいて、CPUの命令処理時における消費電力は、各種命令や各命令が扱うデータによって、若干の相違がある。従って、この消費電力の相違を例えばICカードに供給されている電源の電流によって観察すれば、CPUの動作が解析され易くなる。
【0009】
このため、CPUによってメモリ内の秘密データを管理・処理する際に、秘密データをCPUが処理する時間が特定されてしまうと、秘密データが処理する時間が特定されてしまうと、秘密データが外部に漏洩し易くなる危険性がある。
【0010】
そこで、本発明はICカードに保存された秘密データの外部への漏洩を防ぐようなシステムを有したICカードを提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために本発明の一態様によれば、乱数データを生成する乱数発生モジュール及びデータの暗号処理を行う暗号モジュールとを制御する中央演算処理装置と、データを保存する記憶回路とを備えたICカードにおいて、前記記憶回路内に正エリアと偽エリアを設け、前記暗号モジュールによって前記乱数データ及び暗号処理対象データをそれぞれ暗号処理し、前記暗号処理対象データの暗号結果を前記正エリアに保存し、前記乱数データの暗号結果は前記偽エリアに保存することを特徴とするICカードが提供される。
【0012】
また他の態様によれば、複数のエリアを有する記憶回路と、正データ及び偽データをそれぞれ暗号処理する暗号モジュールと、前記正データ及び偽データのそれぞれ暗号処理結果を前記複数のエリアの中にランダムに保存する手段と、前記記憶回路内から前記正データの暗号処理結果を読み出す手段とを備えたICカードが提供される。
【0013】
また他の態様によれば、記憶回路内に正エリアと偽エリアを設け、前記正エリアに正データを保存し、前記偽エリアに偽データを保存させる手段と、前記正データ及び前記偽データをそれぞれ暗号処理し、前記正データの暗号処理結果を前記正エリアに保存し、前記偽データの暗号処理結果を前記偽エリアに保存させる手段と、前記正エリアに保存された前記正データの暗号処理結果を前記記憶回路から読み出す手段とを備えた暗号処理システムが提供される。
【0014】
【発明の実施の形態】
本発明の実施形態の一例を示したICカード1とICリーダライタ2の構成図を図1に示す。
【0015】
ICカード1は、CPU及びシステム制御回路3、暗号モジュール4、乱数発生モジュール5、ROM(Read Only Memory)6、RAM(Ramdom Access Memory)7及び不揮発性メモリ8を備えている。
【0016】
CPU及びシステム制御回路3は、ICカード1を制御する心臓部であり、各モジュールや各メモリに対して制御信号やアドレスやデータの送受信を行う回路である。CPU31には、いくつかのレジスタがあり、それぞれ1バイトのデータを保存できる。いくつかあるレジスタのうち3つをAレジスタ31a、Bレジスタ31b、Cレジスタ31cとして、本実施形態における暗号処理に使用する。
【0017】
暗号モジュール4は、ICリーダライタ2から送信された平文を暗号処理するための回路である。
【0018】
乱数発生モジュール5は、乱数を発生させる回路である。乱数発生手法は、擬似乱数でも真正乱数であっても構わない。
【0019】
なお、暗号モジュール4及び乱数発生モジュール5は、ハードウエアのみ又はソフトウエアのみで実現していてもよく、或いはその両方で実現していてもよい。
【0020】
ROM6は、CPU31動作させるためのプログラムを格納したメモリである。
【0021】
RAM7は、いわゆる作業メモリであり、CPU及びシステム制御回路3で処理された信号や乱数発生モジュール5で発生された乱数を保存するメモリである。
【0022】
作業メモリであるRAM7は例えば図2のようにエリアの割当がなされている。RAM7の先頭アドレスは0000h(0000hex)とし、先頭番地から、256バイトの領域を8つに分けて、順番にエリア0からエリア7まで名前をつける。エリア0の先頭アドレスは0000h、エリア1の先頭アドレスは0020hとなる。
【0023】
また、各エリアを8バイトずつの領域に分ける。先頭からそれぞれ、平文データ領域、鍵データ領域、空き領域そして暗号文データ領域とする。それぞれの先頭アドレスは、例えばエリア0では、平文データ領域は0000h、鍵データ領域は0008h、空き領域は0010h、暗号文データ領域は0018hとなる。
【0024】
これらのエリア0〜エリア7の後の領域には、先頭アドレス0100hから8バイト分を平文一時保存エリア、先頭アドレス0108hから8バイト分を暗号文アドレス保存エリアとしてエリアを確保している。
【0025】
不揮発性メモリ8は、秘密鍵を保存するメモリである。
【0026】
また、ICカード1の外部端子は、入出力端子I/O、クロック端子CLOCK、リセット端子、/RESET及び電源端子VDD,GNDを備えている。これらの外部端子はICカードリーダライタ2の外部端子と接続されて、データの送受信やICカードリーダライタから電源、クロック又はリセット信号の供給などが行われる。
【0027】
ICカード1は、暗号モジュール4又は乱数発生モジュール5並びにRAM7等のメモリの制御はCPU及びシステム制御回路3によって行われている。CPU及びシステム制御回路3と各モジュール及び各メモリはアドレスバス9とデータバス10によって接続されている。
【0028】
また、乱数発生モジュール5はCPU及びシステム制御回路3から乱数読み出し信号を受信して要求に応じて乱数をCPU及びシステム制御回路3にデータバス10を通じて送信する。
【0029】
暗号モジュール4は、暗号解析を要求する軌道信号をCPU及びシステム制御回路3から受信して、暗号モジュール4が処理状態(busy状態)であるか否かをステータス信号としてCPU及びシステム制御信号3に送信する。ステータス信号がbusy状態でない場合、暗号処理に使用するデータをCPU及びシステム制御回路3からデータバス10を通じて暗号モジュール4に送信されて、この処理結果もデータバス10を通じてCPU及びシステム制御回路3に送信される。
【0030】
次に、本発明の実施形態のICカード1内における具体的な暗号処理の一例を図3に示すフローチャートを用いて説明する。
【0031】
先ず、CPU及びシステム制御回路3によって、ICカード1はICカードリーダライタ2から平文を受信する。この場合、受信した平文はRAM7内の平文一時保存エリアに保存される(ステップ1)。
【0032】
次に、CPU及びシステム制御回路3は乱数発生モジュール5から256バイトの乱数データを取得する。乱数発生モジュール5は256バイトの乱数データを発生させて、この256バイトの乱数をエリア0からエリア7までのRAMエリアに頭アドレスから順番に保存する。したがって、エリア0からエリア7までの総てのRAM7エリアには乱数データが保存されていることになる(ステップ2)。
【0033】
次に、CPU及びシステム制御回路3から乱数読み出し信号を乱数発生モジュールに送信する。CPU及びシステム制御回路3は、ステップ2において生成された256バイトの乱数データの中から1バイトの乱数データを取得する。この1バイトの乱数データはCPU及びシステム制御回路3内のAレジスタ31aに保存する(ステップ3)。
【0034】
次に、CPU及びシステム制御回路3は、ステップ3においてAレジスタ31aに保存した1バイトの乱数データとE0h(11100000b)との論理積(AND回路)を取る。論理積の結果の値を再度Aレジスタ31aに保存する(ステップ4)。この論理積結果は上位3ビットの乱数データである。
【0035】
次に、CPU及びシステム制御回路3は、Aレジスタ31aに保存された上位3ビットの乱数データをCレジスタ31cに保存する。また、CPU及びシステム制御回路3は、Bレジスタ31bに00hを保存する(ステップ5)。したがって、CPU31内のBレジスタ31bを上位1バイトとしCレジスタ31cを下位1バイトとする2バイトのBCレジスタ31dは、0000h,0020h,0040h,0060h,0080h,00A0h,00C0h,00E0hの8種類のデータが生成される。これらの8つのデータはRAM7内のエリア0からエリア7までの先頭アドレスと対応している。
【0036】
このように生成されたBCレジスタ31dに生成されたデータは、ICリードライタ2から受信した平文やこの平文の暗号処理結果を保存させるエリア(正エリア)を特定するデータである。例えば、正先頭アドレスが004hとすると正エリアはエリア2である。残りのエリア0,1,3,4,5,6,7は乱数データが保存されてダミーの暗号処理がなされる偽エリアである。BCレジスタ31dに生成されたデータは、3ビットの乱数データから生成されるので、正エリアはランダムな値となり、暗号処理毎に異なる。
【0037】
次に、CPU及びシステム制御回路3は、ステップ1においてRAM7内の平文一時保存エリアに保存した平文をCPU31内のBCレジスタ31dに保存されたデータのアドレス(以下、「正先頭アドレス」という。)に転送する(ステップ6)。
【0038】
次に、CPU及びシステム制御回路3は、正先頭アドレスに8hを加えたアドレス(鍵データ領域)に、不揮発性メモリ8に保存されている秘密鍵を転送する(ステップ7)。
【0039】
次に、CPU及びシステム制御回路3は、正先頭アドレスに18hを加えたデータを暗号文アドレス保存エリア(0108h)に保存する(ステップ8)。この暗号アドレス保存エリアに保存されたアドレスは、後のステップにおいて平文と秘密鍵を使用して暗号処理された暗号結果を保存するアドレスを示している。
【0040】
次に、エリア0の平文データ領域(0000h)のデータと、エリア0の鍵データ領域(0008h)のデータを用いて暗号処理を行い、エリア0の暗号文データ領域(0018h)に暗号結果を保存する(ステップ9)。暗号処理は、CPU及びシステム制御回路3が、RAM7に保存された平文と秘密鍵をデータバスを通じて暗号モジュール4に送信して、起動信号によって暗号処理が開始される。暗号処理終了後、暗号モジュール4からCPU及びシステム制御回路3にステータス信号を送信して、暗号処理の終了を通知する。CPU及びシステム制御回路3は、暗号処理終了の通知を受けて暗号処理結果を暗号モジュール4から取得する。取得した暗号処理結果をエリア0の暗号文データ領域(0018h)に保存する。
【0041】
続けてエリア1からエリア7まで順番にステップ9の暗号処理を行う(ステップ10)。
【0042】
次に、CPU及びシステム制御回路3は、暗号文アドレス保存エリアに保存されたデータをCPU31内のBCレジスタ31dに保存する(ステップ11)。
【0043】
次に、CPU及びシステム制御回路3は、正先頭アドレスから8バイトの暗号文データを取得して、所定の通信プロトコルに従ってICカードリーダライタ2の暗号処理結果を送信する(ステップ12)。ICカードリーダライタ2は、ICカード1に送信した平文に対して秘密鍵を用いて暗号処理した暗号処理結果を受け取ることができる。
【0044】
このように1つの平文の暗号化を行うに当たり、CPU及びシステム制御回路3は計8回暗号モジュール3を起動している。この8回のうち1回は正しい暗号処理用のデータを用いた暗号処理を行う。残りの7回は乱数発生モジュールで生成された乱数データを用いて暗号処理が行われているので正しい暗号処理が行われていない。
【0045】
このようにダミーの暗号処理を行うことによって、正しい暗号処理が行われていることを隠すことができる。すなわち、8回の暗号処理の中で、正しい暗号処理がどの順番でなされているかはBCレジスタ31dに保存された3ビット分の乱数で決定されることによって常に一定ではなく、外部から信号を読み取られ暗号処理を解析されても正しい暗号処理の解析が行い難くすることができる。
【0046】
本実施形態においてRAMエリアの先頭アドレスは0000hとしたがこのアドレスに限定されることは無い。また、平文や秘密鍵等のデータを8バイトで説明をしたが、これに限ることも無い。データ量のRAMエリアを用意することによって本発明を実施することが可能である。
【0047】
また、本実施形態では1つの平文データの暗号処理に対して7つのダミーデータを用意したが、ダミーデータの数は実施形態に限定されることはない。
【0048】
なお、正しい平文データとダミーデータとのサイズや暗号処理手法や暗号処理時間に相違を生じさせないようにしたほうが良い。暗号処理時間等によってどの順番が正しい暗号処理を行っているか外部から容易に知られてしまう恐れがあるからである。
【0049】
【発明の効果】
以上詳述したように本発明によると、ICカードに保存された秘密データの外部への漏洩を防ぐようなシステムを有したICカードを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るICカードの構成図と、ICリーダライタとの接続とを示した構成図である。
【図2】本発明の実施形態に係るICカード内のRAMエリアを示した図である。
【図3】本発明の実施形態に係るICカードの暗号処理の手順を表したフローチャートである。
【符号の説明】
1・・・ICカード
2・・・ICカードリーダライタ
3・・・CPU及びシステム制御回路
31・・・CPU
31a・・・Aレジスタ(1バイト)
31b・・・Bレジスタ(1バイト)
31c・・・Cレジスタ(1バイト)
31d・・・BCレジスタ(2バイト)
4・・・暗号モジュール
5・・・乱数発生モジュール
6・・・ROM
7・・・RAM
8・・・不揮発性メモリ
9・・・アドレスバス
10・・・データバス
【発明の属する技術分野】
本発明は、内部のCPU(Central Processing Unit)によって秘密データを管理するICカードに関する。
【0002】
【従来の技術】
現在、クレジットカードやマネーカード等に用いられているIC(Integrated Circuit)カードはICチップが埋め込まれたカード状デバイスである。
【0003】
このようにICカードの利用分野が金銭に関わってくるものなので、ICカードの取り扱いには慎重にしなくてならない。
【0004】
このICカードを使用する際には、ICカードのリーダライタ(以下、「ICカードリーダライタ」という。)とICカードの相互認証を行い、ICカードとICカードリーダライタが共に正しいか否かの認証をしている。正しいと判断した後に、認証したICカードの処理を行っている。
【0005】
この相互認証は認証アルゴリズムを用いた暗号鍵を使ったデータの暗号化や暗号文の復号化を行っている。
【0006】
暗号鍵は秘密情報であって悪意の使用によって外部に漏れてはいけない。また、ICカードには勝手に書き換えられることのないような情報も保存されている(例えば、特許文献1参照。)。
【0007】
【特許文献1】
特開2002−202916号公報
【0008】
【発明が解決しようとする課題】
一般に、CPUを内蔵したICカードにおいて、CPUの命令処理時における消費電力は、各種命令や各命令が扱うデータによって、若干の相違がある。従って、この消費電力の相違を例えばICカードに供給されている電源の電流によって観察すれば、CPUの動作が解析され易くなる。
【0009】
このため、CPUによってメモリ内の秘密データを管理・処理する際に、秘密データをCPUが処理する時間が特定されてしまうと、秘密データが処理する時間が特定されてしまうと、秘密データが外部に漏洩し易くなる危険性がある。
【0010】
そこで、本発明はICカードに保存された秘密データの外部への漏洩を防ぐようなシステムを有したICカードを提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために本発明の一態様によれば、乱数データを生成する乱数発生モジュール及びデータの暗号処理を行う暗号モジュールとを制御する中央演算処理装置と、データを保存する記憶回路とを備えたICカードにおいて、前記記憶回路内に正エリアと偽エリアを設け、前記暗号モジュールによって前記乱数データ及び暗号処理対象データをそれぞれ暗号処理し、前記暗号処理対象データの暗号結果を前記正エリアに保存し、前記乱数データの暗号結果は前記偽エリアに保存することを特徴とするICカードが提供される。
【0012】
また他の態様によれば、複数のエリアを有する記憶回路と、正データ及び偽データをそれぞれ暗号処理する暗号モジュールと、前記正データ及び偽データのそれぞれ暗号処理結果を前記複数のエリアの中にランダムに保存する手段と、前記記憶回路内から前記正データの暗号処理結果を読み出す手段とを備えたICカードが提供される。
【0013】
また他の態様によれば、記憶回路内に正エリアと偽エリアを設け、前記正エリアに正データを保存し、前記偽エリアに偽データを保存させる手段と、前記正データ及び前記偽データをそれぞれ暗号処理し、前記正データの暗号処理結果を前記正エリアに保存し、前記偽データの暗号処理結果を前記偽エリアに保存させる手段と、前記正エリアに保存された前記正データの暗号処理結果を前記記憶回路から読み出す手段とを備えた暗号処理システムが提供される。
【0014】
【発明の実施の形態】
本発明の実施形態の一例を示したICカード1とICリーダライタ2の構成図を図1に示す。
【0015】
ICカード1は、CPU及びシステム制御回路3、暗号モジュール4、乱数発生モジュール5、ROM(Read Only Memory)6、RAM(Ramdom Access Memory)7及び不揮発性メモリ8を備えている。
【0016】
CPU及びシステム制御回路3は、ICカード1を制御する心臓部であり、各モジュールや各メモリに対して制御信号やアドレスやデータの送受信を行う回路である。CPU31には、いくつかのレジスタがあり、それぞれ1バイトのデータを保存できる。いくつかあるレジスタのうち3つをAレジスタ31a、Bレジスタ31b、Cレジスタ31cとして、本実施形態における暗号処理に使用する。
【0017】
暗号モジュール4は、ICリーダライタ2から送信された平文を暗号処理するための回路である。
【0018】
乱数発生モジュール5は、乱数を発生させる回路である。乱数発生手法は、擬似乱数でも真正乱数であっても構わない。
【0019】
なお、暗号モジュール4及び乱数発生モジュール5は、ハードウエアのみ又はソフトウエアのみで実現していてもよく、或いはその両方で実現していてもよい。
【0020】
ROM6は、CPU31動作させるためのプログラムを格納したメモリである。
【0021】
RAM7は、いわゆる作業メモリであり、CPU及びシステム制御回路3で処理された信号や乱数発生モジュール5で発生された乱数を保存するメモリである。
【0022】
作業メモリであるRAM7は例えば図2のようにエリアの割当がなされている。RAM7の先頭アドレスは0000h(0000hex)とし、先頭番地から、256バイトの領域を8つに分けて、順番にエリア0からエリア7まで名前をつける。エリア0の先頭アドレスは0000h、エリア1の先頭アドレスは0020hとなる。
【0023】
また、各エリアを8バイトずつの領域に分ける。先頭からそれぞれ、平文データ領域、鍵データ領域、空き領域そして暗号文データ領域とする。それぞれの先頭アドレスは、例えばエリア0では、平文データ領域は0000h、鍵データ領域は0008h、空き領域は0010h、暗号文データ領域は0018hとなる。
【0024】
これらのエリア0〜エリア7の後の領域には、先頭アドレス0100hから8バイト分を平文一時保存エリア、先頭アドレス0108hから8バイト分を暗号文アドレス保存エリアとしてエリアを確保している。
【0025】
不揮発性メモリ8は、秘密鍵を保存するメモリである。
【0026】
また、ICカード1の外部端子は、入出力端子I/O、クロック端子CLOCK、リセット端子、/RESET及び電源端子VDD,GNDを備えている。これらの外部端子はICカードリーダライタ2の外部端子と接続されて、データの送受信やICカードリーダライタから電源、クロック又はリセット信号の供給などが行われる。
【0027】
ICカード1は、暗号モジュール4又は乱数発生モジュール5並びにRAM7等のメモリの制御はCPU及びシステム制御回路3によって行われている。CPU及びシステム制御回路3と各モジュール及び各メモリはアドレスバス9とデータバス10によって接続されている。
【0028】
また、乱数発生モジュール5はCPU及びシステム制御回路3から乱数読み出し信号を受信して要求に応じて乱数をCPU及びシステム制御回路3にデータバス10を通じて送信する。
【0029】
暗号モジュール4は、暗号解析を要求する軌道信号をCPU及びシステム制御回路3から受信して、暗号モジュール4が処理状態(busy状態)であるか否かをステータス信号としてCPU及びシステム制御信号3に送信する。ステータス信号がbusy状態でない場合、暗号処理に使用するデータをCPU及びシステム制御回路3からデータバス10を通じて暗号モジュール4に送信されて、この処理結果もデータバス10を通じてCPU及びシステム制御回路3に送信される。
【0030】
次に、本発明の実施形態のICカード1内における具体的な暗号処理の一例を図3に示すフローチャートを用いて説明する。
【0031】
先ず、CPU及びシステム制御回路3によって、ICカード1はICカードリーダライタ2から平文を受信する。この場合、受信した平文はRAM7内の平文一時保存エリアに保存される(ステップ1)。
【0032】
次に、CPU及びシステム制御回路3は乱数発生モジュール5から256バイトの乱数データを取得する。乱数発生モジュール5は256バイトの乱数データを発生させて、この256バイトの乱数をエリア0からエリア7までのRAMエリアに頭アドレスから順番に保存する。したがって、エリア0からエリア7までの総てのRAM7エリアには乱数データが保存されていることになる(ステップ2)。
【0033】
次に、CPU及びシステム制御回路3から乱数読み出し信号を乱数発生モジュールに送信する。CPU及びシステム制御回路3は、ステップ2において生成された256バイトの乱数データの中から1バイトの乱数データを取得する。この1バイトの乱数データはCPU及びシステム制御回路3内のAレジスタ31aに保存する(ステップ3)。
【0034】
次に、CPU及びシステム制御回路3は、ステップ3においてAレジスタ31aに保存した1バイトの乱数データとE0h(11100000b)との論理積(AND回路)を取る。論理積の結果の値を再度Aレジスタ31aに保存する(ステップ4)。この論理積結果は上位3ビットの乱数データである。
【0035】
次に、CPU及びシステム制御回路3は、Aレジスタ31aに保存された上位3ビットの乱数データをCレジスタ31cに保存する。また、CPU及びシステム制御回路3は、Bレジスタ31bに00hを保存する(ステップ5)。したがって、CPU31内のBレジスタ31bを上位1バイトとしCレジスタ31cを下位1バイトとする2バイトのBCレジスタ31dは、0000h,0020h,0040h,0060h,0080h,00A0h,00C0h,00E0hの8種類のデータが生成される。これらの8つのデータはRAM7内のエリア0からエリア7までの先頭アドレスと対応している。
【0036】
このように生成されたBCレジスタ31dに生成されたデータは、ICリードライタ2から受信した平文やこの平文の暗号処理結果を保存させるエリア(正エリア)を特定するデータである。例えば、正先頭アドレスが004hとすると正エリアはエリア2である。残りのエリア0,1,3,4,5,6,7は乱数データが保存されてダミーの暗号処理がなされる偽エリアである。BCレジスタ31dに生成されたデータは、3ビットの乱数データから生成されるので、正エリアはランダムな値となり、暗号処理毎に異なる。
【0037】
次に、CPU及びシステム制御回路3は、ステップ1においてRAM7内の平文一時保存エリアに保存した平文をCPU31内のBCレジスタ31dに保存されたデータのアドレス(以下、「正先頭アドレス」という。)に転送する(ステップ6)。
【0038】
次に、CPU及びシステム制御回路3は、正先頭アドレスに8hを加えたアドレス(鍵データ領域)に、不揮発性メモリ8に保存されている秘密鍵を転送する(ステップ7)。
【0039】
次に、CPU及びシステム制御回路3は、正先頭アドレスに18hを加えたデータを暗号文アドレス保存エリア(0108h)に保存する(ステップ8)。この暗号アドレス保存エリアに保存されたアドレスは、後のステップにおいて平文と秘密鍵を使用して暗号処理された暗号結果を保存するアドレスを示している。
【0040】
次に、エリア0の平文データ領域(0000h)のデータと、エリア0の鍵データ領域(0008h)のデータを用いて暗号処理を行い、エリア0の暗号文データ領域(0018h)に暗号結果を保存する(ステップ9)。暗号処理は、CPU及びシステム制御回路3が、RAM7に保存された平文と秘密鍵をデータバスを通じて暗号モジュール4に送信して、起動信号によって暗号処理が開始される。暗号処理終了後、暗号モジュール4からCPU及びシステム制御回路3にステータス信号を送信して、暗号処理の終了を通知する。CPU及びシステム制御回路3は、暗号処理終了の通知を受けて暗号処理結果を暗号モジュール4から取得する。取得した暗号処理結果をエリア0の暗号文データ領域(0018h)に保存する。
【0041】
続けてエリア1からエリア7まで順番にステップ9の暗号処理を行う(ステップ10)。
【0042】
次に、CPU及びシステム制御回路3は、暗号文アドレス保存エリアに保存されたデータをCPU31内のBCレジスタ31dに保存する(ステップ11)。
【0043】
次に、CPU及びシステム制御回路3は、正先頭アドレスから8バイトの暗号文データを取得して、所定の通信プロトコルに従ってICカードリーダライタ2の暗号処理結果を送信する(ステップ12)。ICカードリーダライタ2は、ICカード1に送信した平文に対して秘密鍵を用いて暗号処理した暗号処理結果を受け取ることができる。
【0044】
このように1つの平文の暗号化を行うに当たり、CPU及びシステム制御回路3は計8回暗号モジュール3を起動している。この8回のうち1回は正しい暗号処理用のデータを用いた暗号処理を行う。残りの7回は乱数発生モジュールで生成された乱数データを用いて暗号処理が行われているので正しい暗号処理が行われていない。
【0045】
このようにダミーの暗号処理を行うことによって、正しい暗号処理が行われていることを隠すことができる。すなわち、8回の暗号処理の中で、正しい暗号処理がどの順番でなされているかはBCレジスタ31dに保存された3ビット分の乱数で決定されることによって常に一定ではなく、外部から信号を読み取られ暗号処理を解析されても正しい暗号処理の解析が行い難くすることができる。
【0046】
本実施形態においてRAMエリアの先頭アドレスは0000hとしたがこのアドレスに限定されることは無い。また、平文や秘密鍵等のデータを8バイトで説明をしたが、これに限ることも無い。データ量のRAMエリアを用意することによって本発明を実施することが可能である。
【0047】
また、本実施形態では1つの平文データの暗号処理に対して7つのダミーデータを用意したが、ダミーデータの数は実施形態に限定されることはない。
【0048】
なお、正しい平文データとダミーデータとのサイズや暗号処理手法や暗号処理時間に相違を生じさせないようにしたほうが良い。暗号処理時間等によってどの順番が正しい暗号処理を行っているか外部から容易に知られてしまう恐れがあるからである。
【0049】
【発明の効果】
以上詳述したように本発明によると、ICカードに保存された秘密データの外部への漏洩を防ぐようなシステムを有したICカードを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るICカードの構成図と、ICリーダライタとの接続とを示した構成図である。
【図2】本発明の実施形態に係るICカード内のRAMエリアを示した図である。
【図3】本発明の実施形態に係るICカードの暗号処理の手順を表したフローチャートである。
【符号の説明】
1・・・ICカード
2・・・ICカードリーダライタ
3・・・CPU及びシステム制御回路
31・・・CPU
31a・・・Aレジスタ(1バイト)
31b・・・Bレジスタ(1バイト)
31c・・・Cレジスタ(1バイト)
31d・・・BCレジスタ(2バイト)
4・・・暗号モジュール
5・・・乱数発生モジュール
6・・・ROM
7・・・RAM
8・・・不揮発性メモリ
9・・・アドレスバス
10・・・データバス
Claims (8)
- 乱数データを生成する乱数発生モジュール及びデータの暗号処理を行う暗号モジュールとを制御する中央演算処理装置と、データを保存する記憶回路とを備えたICカードにおいて、
前記記憶回路内に正エリアと偽エリアを設け、前記暗号モジュールによって前記乱数データ及び暗号処理対象データをそれぞれ暗号処理し、前記暗号処理対象データの暗号結果を前記正エリアに保存し、前記乱数データの暗号結果は前記偽エリアに保存することを特徴とするICカード。 - 前記正エリアのアドレスは前記乱数データから生成された順番アドレスデータによって設定されることを特徴とする請求項1に記載のICカード。
- 複数のエリアを有する記憶回路と、
正データ及び偽データをそれぞれ暗号処理する暗号モジュールと、
前記正データ及び偽データのそれぞれ暗号処理結果を前記複数のエリアの中にランダムに保存する手段と、
前記記憶回路内から前記正データの暗号処理結果を読み出す手段とを備えることを特徴とするICカード。 - 乱数データを生成する乱数発生モジュールを備え、
前記偽データは前記乱数データから生成されることを特徴とする請求項3に記載のICカード。 - 前記正データの暗号処理結果を保存するエリアのアドレスは、前記乱数データから生成された順番アドレスデータによって設定されることを特徴とする請求項3に記載のICカード。
- 記憶回路内に正エリアと偽エリアを設け、前記正エリアに正データを保存し、前記偽エリアに偽データを保存させる手段と、
前記正データ及び前記偽データをそれぞれ暗号処理し、前記正データの暗号処理結果を前記正エリアに保存し、前記偽データの暗号処理結果を前記偽エリアに保存させる手段と、
前記正エリアに保存された前記正データの暗号処理結果を前記記憶回路から読み出す手段とを備えることを特徴とする暗号処理システム。 - 前記偽データは、乱数データからなることを特徴とする請求項6に記載の暗号処理システム。
- 前記正エリアは、前記乱数データから生成したアドレスに対応するエリアであることを特徴とする請求項6に記載の暗号処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003118634A JP2004326335A (ja) | 2003-04-23 | 2003-04-23 | Icカード及び暗号処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003118634A JP2004326335A (ja) | 2003-04-23 | 2003-04-23 | Icカード及び暗号処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004326335A true JP2004326335A (ja) | 2004-11-18 |
Family
ID=33498126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003118634A Pending JP2004326335A (ja) | 2003-04-23 | 2003-04-23 | Icカード及び暗号処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004326335A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006174274A (ja) * | 2004-12-17 | 2006-06-29 | Toshiba Corp | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
JP2006279243A (ja) * | 2005-03-28 | 2006-10-12 | Hewlett-Packard Development Co Lp | 記憶システム、情報を記憶装置に記憶させるための方法及び関連する方法並びにコンピュータ・プログラム・プロダクト |
JP2007067942A (ja) * | 2005-08-31 | 2007-03-15 | Dainippon Printing Co Ltd | Icカード、および、icカード用プログラム |
JP2008033619A (ja) * | 2006-07-28 | 2008-02-14 | Kyocera Corp | 携帯端末装置、その制御方法、およびプログラム |
JP2008535097A (ja) * | 2005-03-26 | 2008-08-28 | プリバシーズ,インコーポレイテッド | 電子ファイナンシャルトランザクションカードおよび方法 |
JP2009223503A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | 携帯可能電子装置およびicカード |
-
2003
- 2003-04-23 JP JP2003118634A patent/JP2004326335A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006174274A (ja) * | 2004-12-17 | 2006-06-29 | Toshiba Corp | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
JP4634788B2 (ja) * | 2004-12-17 | 2011-02-16 | 株式会社東芝 | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
JP2008535097A (ja) * | 2005-03-26 | 2008-08-28 | プリバシーズ,インコーポレイテッド | 電子ファイナンシャルトランザクションカードおよび方法 |
JP2006279243A (ja) * | 2005-03-28 | 2006-10-12 | Hewlett-Packard Development Co Lp | 記憶システム、情報を記憶装置に記憶させるための方法及び関連する方法並びにコンピュータ・プログラム・プロダクト |
JP4658657B2 (ja) * | 2005-03-28 | 2011-03-23 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 記憶システム、情報を記憶装置に記憶させるための方法及び関連する方法並びにコンピュータ・プログラム・プロダクト |
JP2007067942A (ja) * | 2005-08-31 | 2007-03-15 | Dainippon Printing Co Ltd | Icカード、および、icカード用プログラム |
JP2008033619A (ja) * | 2006-07-28 | 2008-02-14 | Kyocera Corp | 携帯端末装置、その制御方法、およびプログラム |
JP2009223503A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | 携帯可能電子装置およびicカード |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7082539B1 (en) | Information processing apparatus | |
US7650503B2 (en) | Memory card | |
US9413535B2 (en) | Critical security parameter generation and exchange system and method for smart-card memory modules | |
TWI524275B (zh) | 儲存裝置及操作一儲存裝置之方法 | |
US7213157B2 (en) | Integrated circuit for digital rights management | |
US9100187B2 (en) | Authenticator | |
CN103415855B (zh) | 大容量存储设备存储器加密方法、系统及装置 | |
US8108941B2 (en) | Processor, memory, computer system, system LSI, and method of authentication | |
EP0905942B1 (en) | Decrypting device | |
EP1643675A1 (en) | Stateless hardware security module | |
JP2007004522A (ja) | 記憶装置 | |
CN107846396B (zh) | 存储器系统及其与主机之间的绑定方法 | |
KR101484110B1 (ko) | 메모리 컨트롤러 및 그에 따른 메모리 장치 | |
CN101346930A (zh) | 安全的片上系统 | |
JP2011522469A (ja) | 保護されたソフトウエアイメージを有する集積回路及びそのための方法 | |
RU97105403A (ru) | Передача лицензии на программное обеспечение для элемента аппаратного обеспечения | |
WO1998019420A1 (en) | A circuit and method for ensuring interconnect security within a multi-chip integrated circuit package | |
JP2018500823A (ja) | 装置鍵保護 | |
JP2001513929A (ja) | 電子的なデータ処理装置およびシステム | |
JP2004266360A (ja) | 認証処理装置及びセキュリティ処理方法 | |
JP2004326335A (ja) | Icカード及び暗号処理システム | |
KR20150020017A (ko) | 비동기적인 인증을 갖는 보안 컴퓨팅 시스템 | |
JP2003208406A (ja) | サービス提供システム、認証装置及び認証プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20200204339A1 (en) | Portable electronic device and ic module | |
JP2000232442A (ja) | 情報処理方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |