携帯可能電子装置
【課題】 元データ及び暗号鍵の推定を困難にし、より高レベルのセキュリティを有する携帯可能電子装置を提供する。
【解決手段】複数の暗号鍵に暗号鍵インデックスを付与して記憶しておき、データを不揮発性メモリに書込む際に、乱数を生成し、前記生成された乱数に基づいて暗号鍵インデックスを特定し、特定された暗号鍵インデックスに応じた暗号鍵を前記記憶されている複数の暗号鍵から1つ選択し、前記選択された暗号鍵を用いてデータを暗号化し、前記暗号化した暗号化データを不揮発性メモリに書込むようにしてものである。
【解決手段】複数の暗号鍵に暗号鍵インデックスを付与して記憶しておき、データを不揮発性メモリに書込む際に、乱数を生成し、前記生成された乱数に基づいて暗号鍵インデックスを特定し、特定された暗号鍵インデックスに応じた暗号鍵を前記記憶されている複数の暗号鍵から1つ選択し、前記選択された暗号鍵を用いてデータを暗号化し、前記暗号化した暗号化データを不揮発性メモリに書込むようにしてものである。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば、制御素子、通信インターフェース、不揮発性メモリなどを有するICチップが内蔵されたICカードなどの携帯可能電子装置に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置としてのICカードは、プラスチックなどで形成されたカード状の筐体内にICチップが埋め込まれているものである。上記のようなICカードでは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)、あるいはフラッシュROMなどの不揮発性メモリを有している。このようなICカードは、上記不揮発性メモリに種々のデータを記録する。近年では、不揮発性メモリの小型化等の技術が進歩し、ICカードには、記憶容量の大きい不揮発性メモリを設けることが可能となっている。これにより、ICカードでは、大量のデータを扱うことができることから、次世代のカードとして広く注目を集めている。
【0003】
たとえば、上記ICカードは、エレクトリック・パース(電子貨幣、電子マネー)、電子商取引(エレクトリック・コマース)、及び企業内部のプライベートセキュリティシステム(ドアセキュリティシステム、ネットワーク上のアクセス管理など)に用いられている。これらのような用途においては、セキュリティが極めて重要となる。従来のICカードには、不正利用を防止するため、不揮発性メモリにPIN(Personal Identification Number)、若しくは、鍵情報などの認証用の情報が記憶されるものがある。このような認証用の情報が悪意のある者により特定されてしまった場合、当該ICカードが不正使用される可能性があるという問題がある。そこで、ICカードの保持している暗号鍵を用いてデータの暗号化及び復号化を行い、書き込み及び読出しを実行するICカードシステムが提示されている(たとえば、特許文献1参照)。
【0004】
しかしながら、上記した従来のICカードシステムでは、常に同一の暗号鍵がデータの暗号化及び復号化に用いられている。この場合、既知の暗号化前のデータ(元データ)と暗号化後のデータ(暗号化データ)の相関関係に着目することにより、暗号化データから未知の元データを解析することができる可能性があるという問題がある。また、暗号化処理の処理内容を解析して暗号鍵を推定することがされた場合、ICカードが容易に不正使用することが可能となってしまうという問題がある。
【特許文献1】特開2005−122402号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の一形態では、上記のような問題点を解決するものであり、高レベルのセキュリティを有する携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態としての携帯可能電子装置は、複数の暗号鍵を記憶している記憶手段と、乱数を生成する乱数生成手段と、前記乱数生成手段により生成された乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する選択手段と、前記選択手段により選択された暗号鍵を用いてデータを暗号化する暗号化手段と、前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリとを有する。
【0007】
本発明の一実施形態としての携帯可能電子装置は、複数の暗号鍵を記憶している記憶手段と、複数の異なる暗号方式による暗号化を行う複数の暗号処理部と、第1、及び第2の乱数を生成する乱数生成手段と、前記乱数生成手段により生成された第1の乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する第1の選択手段と、前記乱数生成手段により生成された第2の乱数に基づいて前記複数の暗号処理部から1つの暗号処理部を選択する第2の選択手段と、前記第1の選択手段により選択された暗号鍵を用いて、前記第2の選択手段により選択された暗号処理部によりデータを暗号化する暗号化手段と、前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリとを有する。
【発明の効果】
【0008】
この発明の一形態によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、この発明の実施の形態について図面を参照して説明する。
まず、第1の実施の形態について説明する。
図1は、本第1の実施の形態に係る携帯可能電子装置(ICカード)200との通信機能を有する外部装置としてのICカード処理装置100の構成例を概略的に示すブロック図である。
上記ICカード処理装置100は、端末装置110、ディスプレイ120、キーボード130、テンキー140、及び、カードリーダライタ150などを有している。
【0010】
上記端末装置110は、CPU、種々のメモリ及び各種インターフェースなどを有する装置により構成され、ICカード処理装置100全体の動作を制御するものである。上記端末装置110は、上記カードリーダライタ150によりICカード200へコマンドを送信する機能、ICカード200から受信したデータを基に種々の処理を行う機能などを有している。
たとえば、上記端末装置110は、カードリーダライタ150を介してICカード200にデータの書き込みコマンドを送信することによりICカード200内の不揮発性メモリにデータを書き込む。また、上記端末装置110は、ICカード200に読み取りコマンドを送信することによりICカード200からデータを読み出す。
【0011】
上記ディスプレイ120は、上記端末装置110の制御により種々の情報を表示する表示装置である。上記キーボード130は、当該ICカード処理装置100の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー140は、数字を入力する為の入力部として機能する。
上記カードリーダライタ150は、上記ICカード200との通信を行うためのインターフェース装置である。上記カードリーダライタ150では、上記ICカード200に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ150は、上記端末装置110による制御に基づいて上記ICカード200の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【0012】
次に、上記ICカード200について説明する。
上記ICカード200は、上記ICカード処理装置100などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード200が接触式通信によりICカード処理装置100と接続される場合、つまり、ICカード200が接触式のICカードで構成される場合、上記ICカード200は、通信インターフェースとしての通信インターフェース220を介してICカード処理装置100からの動作電源及び動作クロックの供給を受けて活性化される。
【0013】
また、上記ICカード200が非接触式の通信方式によりICカード処理装置100と接続される場合、つまり、上記ICカード200が非接触式のICカードで構成される場合、上記ICカード200は、通信インターフェースとしてのアンテナ及び通信制御部などを介してICカード処理装置100からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0014】
次に、上記ICカード200の構成例について説明する。
【0015】
図2は、本第1の実施の形態に係るICカード200の構成例を概略的に示すブロック図である。上記ICカード200は、本体201を構成する筐体内にモジュール202が内蔵されている。上記モジュール202は、1つまたは複数のICチップ203と通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード200の本体201内に埋設されている。また、上記ICカード200のモジュール202は、図2に示すように、制御部210、通信インターフェース220、ROM230、RAM240、不揮発性メモリ250、乱数生成部260、及び暗号復号部270を有してしている。
【0016】
上記制御部210は、当該ICカード200全体の制御を司るものである。上記制御部210は、上記ROM230あるいは上記不揮発性メモリ250に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の処理手段として機能する。
【0017】
上記通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150との通信を行うためのインターフェースである。当該ICカード200が接触式のICカードとして実現される場合、通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150と接触して信号の送受信を行うための通信制御部と外部インターフェースとしてのコンタクト部とにより構成される。また、当該ICカード200が非接触式のICカードとして実現される場合、通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150との無線通信を行うための通信制御部と外部インターフェースとしてのアンテナとにより構成される。
【0018】
上記ROM230は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM230は、製造段階で制御プログラムや制御データなどが記憶された状態でICカード200内に組み込まれるものである。つまり、上記ROM230に記憶されている制御プログラムや制御データは、予め当該ICカード200の仕様に応じて組み込まれる。
上記RAM240は、ワーキングメモリとして機能する揮発性のメモリである。また、上記RAM240は、制御部210が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記RAM240は、上記通信インターフェース220を介してICカード処理装置100から受信したデータを一時保管するようになっている。
【0019】
上記不揮発性メモリ250は、例えば、EEPROMあるいはフラッシュROMなどの、データの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ250には、当該ICカード200の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、上記不揮発性メモリ250では、プログラムファイルやデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。
上記乱数生成部260は、乱数を生成するものである。上記乱数生成部260は、上記制御部210からの指示に応じて乱数を生成するようになっている。上記乱数生成部260は、たとえば、制御部210に乱数を生成させるためのプログラムにより構成するようにしても良い。
【0020】
ここでは、上記ROM230あるいは不揮発性メモリ250には、暗号化及び復号の処理に用いられる複数の暗号鍵情報(以下、単に、暗号鍵とも称する)を記憶しているものとする。各暗号鍵は、数字または文字列などにより構成される認証用の情報である。また、上記ROM230あるいは不揮発性メモリ250に記憶される複数の暗号鍵には、それぞれ、各暗号鍵を識別するための識別情報としての暗号鍵インデックスが付加されているものとする。なお、以下の説明では、ROM230に複数の暗号鍵が記憶されているものとする。
【0021】
また、上記制御部210では、上記乱数生成部260により生成された乱数に基づいて、暗号鍵を特定する機能を有している。すなわち、上記制御部210では、乱数に応じて暗号鍵インデックスを決定し、当該暗号鍵インデックスに対応する暗号鍵を判定するようになっている。
【0022】
たとえば、ICカード処理装置100からのデータの書き込みコマンドを受信した場合、上記制御部210は、上記乱数生成部260により乱数Rを生成する。上記乱数生成部260により乱数Rを生成すると、上記制御部210は、当該乱数Rに応じて暗号鍵インデックスを決定する。当該乱数Rに応じた暗号鍵インデックスを決定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する。このように乱数Rに基づいて暗号鍵KRを特定すると、上記制御部210は、当該暗号鍵KRと上記書込みコマンドに応じて不揮発性メモリ250に書込むべきデータとを暗号復号部270へ供給する。これにより、上記暗号復号部270は、暗号鍵KRを用いて不揮発性メモリ250に書込むべきデータを暗号化する。この暗号化されたデータ(暗号化データ)が、上記不揮発性メモリ250に書込まれる。この際、不揮発性メモリ250には、当該暗号化データに対応づけて暗号鍵KRを特定するための乱数Rが記憶されるようになっている。
【0023】
また、読出しコマンドに応じて上記不揮発性メモリ250に記憶されている暗号化データを読み出す場合、上記制御部210は、当該暗号化データに対応する乱数Rが読み出し、当該乱数Rに対応する暗号鍵インデックスを特定する。暗号鍵インデックスが特定されると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する。暗号鍵KRが特定されると、上記制御部210は、暗号鍵KRと上記読出しコマンドに応じて読み出すべき暗号化データとを上記暗号復号部270に供給する。これにより、上記暗号復号部270では、当該暗号鍵KRを用いて暗号化データを復号化する。この復号化されたデータが、上記読出しコマンドに応じて外部へ出力されるデータとなる。
【0024】
なお、上記不揮発性メモリ250に書込むデータの暗号化は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に行うようにしても良い。これらの場合、上記制御部210は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に、乱数Rを生成し、乱数Rに基づいて暗号鍵を設定するようになっている。
【0025】
図3は、上記ROM230(あるいは不揮発性メモリ250)に記憶される複数の暗号鍵を示す図である。なお、図3に示す暗号鍵群231は、これらの複数の暗号鍵を模式的に示したものである。
図3に示すように、上記ROM230には、複数の暗号鍵(暗号鍵A、暗号鍵B、暗号鍵C、…)が暗号鍵インデックスに対応づけて記憶されている。図1に示す例では、暗号鍵A、暗号鍵B、暗号鍵C、…に対して、それぞれ「01」、「02」、「03」、…という暗号インデックスが対応づけて記憶されている。つまり、上記ROM230に記憶されている暗号鍵は、暗号インデックスにより特定されるようになっている。
【0026】
次に、上記ICカード200に用いられる不揮発性メモリ250に記憶されるデータの構成について説明する。
図4は、上記不揮発性メモリ250に記憶されるデータの構成例を示す図である。
図4に示す例では、上記不揮発性メモリ250には、各データ252が暗号鍵のインデックスデータ251に対応づけて記憶されている。
上記各暗号鍵のインデックスデータ251は、対応する各データを暗号化するために用いられた暗号鍵を特定するための情報である。つまり、上記各暗号鍵のインデックスデータ251としては、ROM230に記憶されている暗号鍵を特定するための乱数Rあるいは暗号鍵インデックスである。従って、上記制御部210は、暗号鍵のインデックスデータ251により対応するデータを暗号化するために用いられた暗号鍵を特定することができるようになっている。また、各暗号鍵のインデックスデータ251は、たとえば、1つのデータのセットである1ファイル毎のデータ、あるいは、所定のアドレス毎に区切られる上記不揮発性メモリ上の各ブロック毎のデータに対して設定されている。なお、図4に示す例では、各ファイル毎のデータ252に対して暗号鍵のインデックスデータ251が設定されているものとする。
【0027】
また、図4に示す例では、各暗号鍵のインデックスデータ251に対応するデータ252として、複数の管理データのファイルと複数のアプリケーションデータのファイルとが記憶されている状態を示している。これらの各データ252は、それぞれ対応する暗号鍵のインデックスデータ251により特定される暗号鍵で暗号化された状態となっている。従って、各データ252を読み出すためには、対応する暗号鍵のインデックスデータ251により特定される暗号鍵で復号化することが必要となる。
【0028】
なお、上記管理データは、アプリケーションデータにアクセスする為の情報であり、アプリケーションデータと対になって構成されている。各管理データは、たとえば、対応するアプリケーションデータのアドレス、およびバイト数を示す情報などで構成される。各アプリケーションデータは、プログラムファイルやプログラムで使用されるデータファイルなどである。
【0029】
次に、上記のように構成されるICカード200におけるデータ書込み処理について説明する。
図5は、上記ICカード200におけるデータ書き込みコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて、上記ICカード200が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ書き込みコマンドと書き込むべきデータ(元データ)がICカード200へ送信されたものとする。
【0030】
上記ICカード200では、ICカード処理装置100からのデータ書き込みコマンドと元データを通信インターフェース220により受信する。すると、上記ICカード200の制御部210は、元データのファイル毎に乱数を生成するように乱数生成部260へ指示を出す(ステップS11)。乱数生成部260は、上記制御部210からの指示に基いて乱数Rを生成し、制御部210へ送信する(ステップS12)。
【0031】
上記乱数生成部260から乱数Rを受信すると、上記制御部210は、受信した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS13)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS14)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵KRを取得することとなる。
【0032】
上記乱数Rに基づいて暗号鍵KRを取得すると、上記制御部210は、取得した暗号鍵KRと元データとを暗号復号部270へ送信し、暗号化を行なうように暗号復号部270へ指示する。上記制御部210から暗号化の要求を受けた暗号復号部270は、指定された暗号鍵KRと所定の暗号方式とを用いて、元データを暗号化する(ステップS15)。上記暗号復号部270により暗号化されたデータ(暗号化データ)は、上記制御部210の制御によりデータ252として不揮発性メモリ250に書き込まれる(ステップS16)。上記不揮発性メモリ250に暗号化データ252を書込むと、上記制御部210は、さらに、当該暗号化データ252の暗号化に用いた暗号鍵KRを選択するために用いた乱数Rあるいは暗号鍵インデックスを、当該暗号化データ252の暗号鍵のインデックスデータ251として、不揮発性メモリ250に書き込み(ステップS17)、処理を終了する。
【0033】
上記のように、第1の実施の形態のデータ書込処理では、制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。暗号復号部270は、暗号鍵KRを用いて、所定の暗号方式によりデータを暗号化する。さらに、制御部210は、上記暗号復号部270により暗号鍵KRを用いて暗号したデータと当該暗号鍵KRを特定するための乱数あるいは乱数から特定された暗号鍵インデックスとを対応づけて不揮発性メモリ250に記憶する。
このようなデータの書込処理によれば、不揮発性メモリに記憶するデータを暗号化するために用いる暗号鍵を乱数に基づいて選択する為、元データおよび暗号鍵の推定を困難にすることができる。この結果として、上記したデータ書込み処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0034】
次に、上記ICカード200におけるデータの読出し処理について説明する。
図6は、上記ICカード200におけるデータ読み出しコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて上記ICカード200が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ読み出しコマンドが上記ICカード200へ送信されたものとする。この読み出しコマンドでは、読み出すべきデータ(暗号化データ)の先頭アドレスおよびデータ長などが指定されているものとする。
【0035】
上記ICカード200では、上記ICカード処理装置100からのデータ読み出しコマンドを上記通信インターフェース220により受信する。すると、上記ICカード200の制御部210は、当該読み出しコマンドで指定されている先頭アドレスとデータ長とに基いて、上記不揮発性メモリ250に記憶されている暗号化データにアクセスする(ステップS21)。上記制御部210は、アクセスした暗号化データの暗号鍵のインデックスデータ251から乱数Rを読み出す(ステップS22)。
【0036】
上記暗号鍵のインデックスデータ251から乱数Rを読み出すと、上記制御部210は、読み出した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS23)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS24)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵KRを取得することとなる。
【0037】
上記乱数Rに基づいて暗号鍵KRを取得すると、上記制御部210は、上記不揮発性メモリ250から暗号化データを読み出す(ステップS25)。暗号化データを読み出すと、上記制御部210は、取得した暗号鍵KRと読み出した暗号化データとを暗号復号部270へ送信し、復号化を行なうように指示する。上記制御部210から復号化の要求を受けた暗号復号部270は、指定された暗号鍵KRと所定の暗号方式とを用いて、暗号化データを復号化する(ステップS26)。上記暗号復号部270により復号化されたデータ(元データ)は、上記制御部210の制御により通信インターフェース220を介し、上記ICカード処理装置100へ送信され(ステップS27)、処理を終了する。
【0038】
上記のように、第1の実施の形態のデータ読出処理では、制御部210は、暗号化データ252の暗号鍵のインデックスデータ251から乱数Rを読み出し、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。暗号復号部270は、暗号鍵KRを用いて、所定の暗号方式によりデータを復号化する。さらに、制御部210は、復号化されたデータを通信インターフェースを介して読み出しコマンドの送信元に出力する。
このようなデータ読出処理によれば、暗号化されて不揮発性メモリに記憶されている暗号化データを復号化するのに用いる暗号鍵を当該暗号化データに対応づけて記憶されている乱数に基づいて選択する構成となっている為、元データ及び暗号鍵の推定を困難にすることができる。この結果として、上記したデータ読出処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0039】
次に、第2の実施の形態にについて説明する。
図7は、本第2の実施の形態に係るICカード300の構成例を概略的に示すブロック図である。なお、図7に示すICカード300は、たとえば、図1に示すようなICカードシステムに用いられるものとする。また、ICカード300については、図7に示すように、図2に示すICカード200と同一の部分には同一の参照符号を付し、詳細な説明は省略する。
上記ICカード300は、図2に示すICカード200と比較すると、暗号復号部270に替えて暗号復号部370が設けられている。上記暗号復号部370では、種々の暗号方式による暗号化および復号化を行う機能を有している。また、上記暗号復号部370では、種々の暗号方式による暗号化および復号化を各暗号鍵によって行うようになっている。なお、本第2の実施の形態では、説明を簡単化するため、上記暗号復号部370が実現する種々の暗号方式は、DES方式、AES方式などの共通鍵暗号方式であることを想定している。
【0040】
図8は、上記暗号復号部370の構成例を示す図である。
図8に示すように、上記ICカード300の暗号復号部370は、さらに、暗号化及び復号化の方式である複数の異なる暗号方式による処理を行うための複数の暗号処理部371(371a、371b、371c、…)と、鍵適合化部372とを有している。暗号方式Aの暗号処理部371a、暗号方式Bの暗号処理部371b、暗号方式Cの暗号処理部371c、…には、それぞれ暗号方式インデックスが付加されている。上記暗号方式インデックスは、暗号方式を特定するための識別情報である。
【0041】
また、各暗号処理部371の各暗号方式は、その種類によって必要とする暗号鍵のビット数が異なることがある。そこで、鍵適合化部372は、暗号鍵のビット数を、使用する暗号方式の暗号鍵に適するビット数に変換するようになっている。なお、本第2の実施形態では、各暗号鍵は、各暗号方式で用いる暗号鍵の中で最長のビット数を有するものとする。つまり、各暗号鍵は、上記鍵適合化部372により各暗号方式で使用可能な暗号鍵に変換されるようになっている。
【0042】
また、上記ICカード300の制御部210では、上記第1の実施の形態と同様に、上記乱数生成部260により生成された乱数Rに基づいて暗号鍵を特定する機能を有している。さらに、上記ICカード300の制御部210では、上記乱数生成部260により生成された乱数rに基づいて暗号方式を特定する機能を有している。すなわち、上記ICカード300の制御部210では、乱数Rに応じて暗号鍵インデックスを決定することにより暗号鍵を特定するとともに、乱数rに応じて暗号方式インデックスを決定することにより暗号方式を特定するようになっている。
【0043】
たとえば、ICカード処理装置100からのデータの書き込みコマンドを受信した場合、上記制御部210は、上記乱数生成部260により乱数Rと乱数rとを生成する。すると、上記制御部210は、上記乱数Rに応じて暗号鍵インデックスを決定するとともに、上記乱数rに応じて暗号方式インデックスを決定する。暗号鍵インデックスを決定すると、上記制御部210は、上記暗号鍵インデックスに対応する暗号鍵KRを特定する。暗号鍵KRを特定すると、上記制御部210は、上記暗号鍵KRと暗号方式インデックスと上記書込みコマンドに応じて不揮発性メモリ250に書込むべきデータとを暗号復号部370へ供給する。これにより、上記暗号復号部370は、暗号方式インデックスに応じて暗号方式(暗号処理部)を選択し、鍵適合化部372により暗号鍵KRのビット数を選択した暗号方式に応じたビット数に変換し、その後、選択した暗号方式の暗号処理部371により上記暗号鍵KRを用いて不揮発性メモリ250に書込むべきデータを暗号化する。この暗号化されたデータ(暗号化データ)が、上記不揮発性メモリ250に書込まれる。この際、不揮発性メモリ250には、暗号鍵KRを特定するための乱数Rおよび暗号方式CALCrを特定するための乱数rとが当該暗号化データに対応づけて記憶されるようになっている。
【0044】
また、上記不揮発性メモリ250に記憶されている暗号化データを読出しコマンドに応じて読み出す場合、上記ICカード300の制御部210は、当該暗号化データに対応する乱数Rおよび乱数rを読み出し、乱数Rに対応する暗号鍵インデックスおよび乱数rに対応する暗号方式インデックスとを特定する。暗号鍵インデックスを特定すると、上記制御部210は、暗号鍵インデックスに応じた暗号鍵KRを特定する。暗号鍵KRが特定されると、上記制御部210は、上記暗号鍵KRと暗号方式インデックスと上記読出しコマンドに応じて不揮発性メモリ250から読み出すべきデータ(暗号化データ)とを暗号復号部370へ供給する。これにより、上記暗号復号部370は、暗号方式インデックスに応じて暗号方式(暗号処理部)を選択し、鍵適合化部372により暗号鍵KRのビット数を選択した暗号方式に応じたビット数に変換し、その後、選択した暗号処理部371により上記暗号鍵KRを用いて不揮発性メモリ250から読み出すべき暗号化データを復号化する。この復号化されたデータが、上記読出しコマンドに応じて外部へ出力すべきデータである。
【0045】
なお、上記不揮発性メモリ250に書込むデータの暗号化は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に行うようにしても良い。これらの場合、上記制御部210は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に、乱数R及び乱数rを生成し、乱数Rに基づいて暗号鍵を設定するとともに、乱数rに応じて暗号方式を設定するようになっている。
【0046】
次に、上記ICカード300の不揮発性メモリ250に記憶されるデータの構成について説明する。
図9は、上記ICカード300の不揮発性メモリ250に記憶されるデータの構成例を示す図である。
図9に示す例では、上記不揮発性メモリ250には、各データ252が暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253とに対応づけて記憶されている。
上記各暗号鍵のインデックスデータ251は、上記第1の実施形態で説明したように、対応するデータ252を暗号化するために用いられた暗号鍵を特定するための識別情報である。上記制御部210は、暗号鍵のインデックスデータ251により対応するデータを暗号化するために用いられた暗号鍵を特定することができるようになっている。また、上記暗号方式のインデックスデータ253は、対応するデータ252を暗号化するための暗号方式を特定するための識別情報である。上記制御部210は、暗号方式のインデックスデータ253により対応するデータを暗号化するために用いた暗号方式を特定することができるようになっている。
【0047】
すなわち、図9に示すような構成の各データ252は、暗号鍵のインデックスデータ251で暗号鍵が特定され、暗号方式のインデックスデータ253で暗号方式が特定されることができるようになっている。
【0048】
また、各データ252としては、たとえば、上記第1の実施の形態と同様に、1つのデータのセットである1ファイル毎のデータ、あるいは、所定のアドレス毎に区切られる上記不揮発性メモリ上の各ブロック毎のデータであることを想定している。つまり、1ファイル毎のデータ252、あるいは、所定のアドレス毎に区切られる各ブロック毎のデータ252には、暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253とが設定されている。なお、図9に示す例では、各ファイル毎のデータ252に対して暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253が設定されているものとする。
【0049】
次に、上記ICカード300におけるデータ書込み処理について説明する。
図10は、上記ICカード300におけるデータ書き込みコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて、上記ICカード300が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ書き込みコマンドと書き込むべきデータ(元データ)がICカード300へ送信されたものとする。
【0050】
上記ICカード300では、ICカード処理装置100からのデータ書き込みコマンドと元データを通信インターフェース220により受信する。すると、上記ICカード300の制御部210は、元データのファイル毎に乱数を生成するように乱数生成部260へ指示を出す(ステップS31)。乱数生成部260は、上記制御部210からの指示に基いて乱数Rを生成し、制御部210へ送信する(ステップS32)。
【0051】
上記乱数生成部260から乱数Rを受信すると、上記制御部210は、受信した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS33)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS34)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵を取得することとなる。
【0052】
次に、乱数生成部260は、上記制御部210からの指示に基いて乱数rを生成し、制御部210へ送信する(ステップS35)。上記乱数生成部260から乱数rを受信すると、上記制御部210は、受信した乱数rを暗号方式インデックスとして用いられている桁数に変換することにより、乱数rに応じた暗号方式インデックスを特定する(ステップS36)。上記乱数rに基づいて暗号方式インデックスを特定すると、上記制御部210は、取得した暗号鍵KRと元データと特定した暗号方式インデックスを上記暗号復号部370へ送信し、暗号化を行なうように上記暗号復号部370へ指示する。
【0053】
上記暗号復号部370は、受信した暗号方式インデックスに応じて暗号処理部371を選択する。上記暗号処理部371を選択すると、鍵適合化部372は、選択した上記暗号処理部371の暗号鍵に適するビット数に変換し、暗号鍵の適合化を行う(ステップS37)。暗号鍵の適合化を行うと、上記暗号復号部370は、適合化した暗号鍵KRと選択した上記暗号処理部371とを用いて、元データを暗号化する(ステップS38)。上記暗号復号部370により暗号化されたデータ(暗号化データ)は、上記制御部210の制御によりデータ252として不揮発性メモリ250に書き込まれる(ステップS39)。
【0054】
上記不揮発性メモリ250に暗号化データを書込むと、上記制御部210は、さらに、当該暗号化データの暗号化に用いた暗号鍵KRを選択するために用いた乱数Rを、当該暗号化データの暗号鍵のインデックスデータ251として、不揮発性メモリ250に書き込む(ステップS40)。また、上記制御部210は、当該暗号化データの暗号化に用いた上記暗号処理部371を選択するために用いた乱数rを、当該暗号化データの暗号方式のインデックスデータ253として、不揮発性メモリ250に書き込み(ステップS41)、処理を終了する。
【0055】
上記のように、第2の実施の形態のデータ書込処理では、制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。また、制御部210は、乱数rに応じて暗号方式インデックスを特定する。暗号復号部370は、特定した暗号方式インデックスに対応する暗号処理部371を選択する。暗号復号部370は、暗号鍵KRを用いて、選択した暗号処理部371によりデータを暗号化する。さらに、制御部210は、上記暗号処理部371により暗号化されたデータと暗号鍵KRを特定するための乱数Rと暗号方式を特定するための乱数rとを対応づけて不揮発性メモリ250に書込む。
【0056】
このようなデータの書込み処理によれば、不揮発性メモリに書込むデータを暗号化するために用いる暗号鍵と暗号方式とをそれぞれ乱数に基づいて選択する為、元データ及び暗号鍵の推定をより困難にすることができる。この結果として、上記のようなデータの書込み処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0057】
次に、上記ICカード300におけるデータの読出し処理について説明する。
図11は、上記ICカード300におけるデータ読み出しコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて上記ICカード300が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ読み出しコマンドが上記ICカード300へ送信されたものとする。この読み出しコマンドでは、読み出すべきデータ(暗号化データ)の先頭アドレスとデータ長とが指定されている。
【0058】
上記ICカード300では、上記ICカード処理装置100からのデータ読み出しコマンドを上記通信インターフェース220により受信する。すると、上記ICカード300の制御部210は、当該読出しコマンドで指定されている先頭アドレスとデータ長とに基づいて、上記不揮発性メモリ250に記憶されている暗号化データ252にアクセスする(ステップS51)。上記制御部210は、アクセスした暗号化データ252に対応する暗号鍵のインデックスデータ251から乱数Rを読み出す(ステップS52)。
【0059】
上記暗号鍵のインデックスデータ251から乱数Rを読み出すと、上記制御部210は、読み出した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS53)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS54)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵を取得することとなる。
【0060】
また、上記制御部210は、アクセスした暗号化データ252の暗号方式のインデックスデータ253から乱数rを読み出す(ステップS55)。上記暗号方式のインデックスデータ253から乱数rを読み出すと、上記制御部210は、読み出した乱数rを暗号方式インデックスとして用いられている桁数に変換することにより、乱数rに応じた暗号方式インデックスを特定する(ステップS56)。
【0061】
上記乱数rに基づいて暗号方式インデックスを特定すると、上記制御部210は、上記不揮発性メモリ250から暗号化データを読み出す(ステップS57)。暗号化データを読み出すと、上記制御部210は、取得した暗号鍵KRと特定した暗号方式インデックスと読み出した暗号化データとを暗号復号部370へ送信し、復号化を行なうように暗号復号部370へ指示する。
【0062】
上記暗号復号部370は、受信した暗号方式インデックスに応じて暗号処理部371を選択する。上記暗号処理部371を選択すると、鍵適合化部372は、暗号鍵KRを選択した上記暗号処理部371の暗号方式に対応する暗号鍵に適するビット数に変換することにより暗号鍵KRの適合化を行う(ステップS58)。暗号鍵の適合化を行うと、上記暗号復号部370は、適合化した暗号鍵KRと選択した上記暗号処理部371とを用いて、暗号化データを復号化する(ステップS59)。上記暗号復号部370により復号化されたデータ(元データ)は、上記制御部210の制御により通信インターフェース220を介し、上記ICカード処理装置100へ送信され(ステップS60)、処理を終了する。
【0063】
上記のように、第2の実施の形態のデータ読出処理では、制御部210は、暗号化データ252に対応する暗号鍵のインデックスデータ251から乱数R(あるいは暗号鍵インデックス)を読み出し、暗号方式のインデックスデータ253から乱数r(あるいは暗号方式のインデックス)を読み出す。制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。また、制御部210は、乱数rに応じて暗号方式インデックスを特定する。暗号復号部370は、特定した暗号方式インデックスに対応する暗号処理部371を選択する。暗号復号部370は、暗号鍵KRを選択した暗号処理部の暗号方式に適合するものに適合化し、適合化した暗号鍵KRを用いて選択した暗号処理部371により上記暗号化データを復号化する。
このようなデータ読出処理によれば、暗号化されて不揮発性メモリに記憶されている暗号化データを復号化するのに用いる暗号鍵と暗号方式とを、当該暗号化データに対応づけて記憶されている乱数(あるいは暗号鍵インデックス及び暗号方式インデックス)に基づいて選択する構成となっている為、元データ及び暗号鍵の推定をより困難にすることができる。この結果として、上記したデータ読出処理によれば、より高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0064】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0065】
【図1】第1の実施の形態に係るICカードとの通信機能を有する外部装置としてのICカード処理装置の構成例を概略的に示すブロック図である。
【図2】図1に示すICカードにおける構成例を概略的に示すブロック図である。
【図3】図2に示すROM若しくは不揮発性メモリに記憶される複数の暗号鍵の例を示す模式的に示す図である。
【図4】図2に示す不揮発性メモリ内に記憶されるデータの構成例を示す図である。
【図5】図2に示すICカードにおけるデータ書き込みコマンドに対するデータ書込処理の例を説明するためのフローチャートである。
【図6】図2に示すICカードにおけるデータ読み出しコマンドに対するデータ読出処理の例を説明するためのフローチャートである。
【図7】第2の実施の形態に係るICカードにおける構成例を概略的に示すブロック図である。
【図8】図7に示す暗号復号部の構成例を示すブロック図である。
【図9】図7に示す不揮発性メモリ内に記憶されるデータの構成例を示す図である。
【図10】図7に示すICカードにおけるデータ書き込みコマンドに対するデータ書込処理の例を説明するためのフローチャートである。
【図11】図7に示すICカードにおけるデータ読み出しコマンドに対するデータ読出処理の例を説明するためのフローチャートである。
【符号の説明】
【0066】
210…制御部、231…暗号鍵群、250…不揮発性メモリ、260…乱数生成部、270…暗号復号部、371…暗号処理部、372…鍵適合化部、R…乱数、r…乱数、KR…暗号鍵。
【技術分野】
【0001】
この発明は、例えば、制御素子、通信インターフェース、不揮発性メモリなどを有するICチップが内蔵されたICカードなどの携帯可能電子装置に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置としてのICカードは、プラスチックなどで形成されたカード状の筐体内にICチップが埋め込まれているものである。上記のようなICカードでは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)、あるいはフラッシュROMなどの不揮発性メモリを有している。このようなICカードは、上記不揮発性メモリに種々のデータを記録する。近年では、不揮発性メモリの小型化等の技術が進歩し、ICカードには、記憶容量の大きい不揮発性メモリを設けることが可能となっている。これにより、ICカードでは、大量のデータを扱うことができることから、次世代のカードとして広く注目を集めている。
【0003】
たとえば、上記ICカードは、エレクトリック・パース(電子貨幣、電子マネー)、電子商取引(エレクトリック・コマース)、及び企業内部のプライベートセキュリティシステム(ドアセキュリティシステム、ネットワーク上のアクセス管理など)に用いられている。これらのような用途においては、セキュリティが極めて重要となる。従来のICカードには、不正利用を防止するため、不揮発性メモリにPIN(Personal Identification Number)、若しくは、鍵情報などの認証用の情報が記憶されるものがある。このような認証用の情報が悪意のある者により特定されてしまった場合、当該ICカードが不正使用される可能性があるという問題がある。そこで、ICカードの保持している暗号鍵を用いてデータの暗号化及び復号化を行い、書き込み及び読出しを実行するICカードシステムが提示されている(たとえば、特許文献1参照)。
【0004】
しかしながら、上記した従来のICカードシステムでは、常に同一の暗号鍵がデータの暗号化及び復号化に用いられている。この場合、既知の暗号化前のデータ(元データ)と暗号化後のデータ(暗号化データ)の相関関係に着目することにより、暗号化データから未知の元データを解析することができる可能性があるという問題がある。また、暗号化処理の処理内容を解析して暗号鍵を推定することがされた場合、ICカードが容易に不正使用することが可能となってしまうという問題がある。
【特許文献1】特開2005−122402号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の一形態では、上記のような問題点を解決するものであり、高レベルのセキュリティを有する携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態としての携帯可能電子装置は、複数の暗号鍵を記憶している記憶手段と、乱数を生成する乱数生成手段と、前記乱数生成手段により生成された乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する選択手段と、前記選択手段により選択された暗号鍵を用いてデータを暗号化する暗号化手段と、前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリとを有する。
【0007】
本発明の一実施形態としての携帯可能電子装置は、複数の暗号鍵を記憶している記憶手段と、複数の異なる暗号方式による暗号化を行う複数の暗号処理部と、第1、及び第2の乱数を生成する乱数生成手段と、前記乱数生成手段により生成された第1の乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する第1の選択手段と、前記乱数生成手段により生成された第2の乱数に基づいて前記複数の暗号処理部から1つの暗号処理部を選択する第2の選択手段と、前記第1の選択手段により選択された暗号鍵を用いて、前記第2の選択手段により選択された暗号処理部によりデータを暗号化する暗号化手段と、前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリとを有する。
【発明の効果】
【0008】
この発明の一形態によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、この発明の実施の形態について図面を参照して説明する。
まず、第1の実施の形態について説明する。
図1は、本第1の実施の形態に係る携帯可能電子装置(ICカード)200との通信機能を有する外部装置としてのICカード処理装置100の構成例を概略的に示すブロック図である。
上記ICカード処理装置100は、端末装置110、ディスプレイ120、キーボード130、テンキー140、及び、カードリーダライタ150などを有している。
【0010】
上記端末装置110は、CPU、種々のメモリ及び各種インターフェースなどを有する装置により構成され、ICカード処理装置100全体の動作を制御するものである。上記端末装置110は、上記カードリーダライタ150によりICカード200へコマンドを送信する機能、ICカード200から受信したデータを基に種々の処理を行う機能などを有している。
たとえば、上記端末装置110は、カードリーダライタ150を介してICカード200にデータの書き込みコマンドを送信することによりICカード200内の不揮発性メモリにデータを書き込む。また、上記端末装置110は、ICカード200に読み取りコマンドを送信することによりICカード200からデータを読み出す。
【0011】
上記ディスプレイ120は、上記端末装置110の制御により種々の情報を表示する表示装置である。上記キーボード130は、当該ICカード処理装置100の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。上記テンキー140は、数字を入力する為の入力部として機能する。
上記カードリーダライタ150は、上記ICカード200との通信を行うためのインターフェース装置である。上記カードリーダライタ150では、上記ICカード200に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ150は、上記端末装置110による制御に基づいて上記ICカード200の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
【0012】
次に、上記ICカード200について説明する。
上記ICカード200は、上記ICカード処理装置100などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード200が接触式通信によりICカード処理装置100と接続される場合、つまり、ICカード200が接触式のICカードで構成される場合、上記ICカード200は、通信インターフェースとしての通信インターフェース220を介してICカード処理装置100からの動作電源及び動作クロックの供給を受けて活性化される。
【0013】
また、上記ICカード200が非接触式の通信方式によりICカード処理装置100と接続される場合、つまり、上記ICカード200が非接触式のICカードで構成される場合、上記ICカード200は、通信インターフェースとしてのアンテナ及び通信制御部などを介してICカード処理装置100からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0014】
次に、上記ICカード200の構成例について説明する。
【0015】
図2は、本第1の実施の形態に係るICカード200の構成例を概略的に示すブロック図である。上記ICカード200は、本体201を構成する筐体内にモジュール202が内蔵されている。上記モジュール202は、1つまたは複数のICチップ203と通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード200の本体201内に埋設されている。また、上記ICカード200のモジュール202は、図2に示すように、制御部210、通信インターフェース220、ROM230、RAM240、不揮発性メモリ250、乱数生成部260、及び暗号復号部270を有してしている。
【0016】
上記制御部210は、当該ICカード200全体の制御を司るものである。上記制御部210は、上記ROM230あるいは上記不揮発性メモリ250に記憶されている制御プログラムや制御データに基づいて動作することにより、種々の処理手段として機能する。
【0017】
上記通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150との通信を行うためのインターフェースである。当該ICカード200が接触式のICカードとして実現される場合、通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150と接触して信号の送受信を行うための通信制御部と外部インターフェースとしてのコンタクト部とにより構成される。また、当該ICカード200が非接触式のICカードとして実現される場合、通信インターフェース220は、上記ICカード処理装置100のカードリーダライタ150との無線通信を行うための通信制御部と外部インターフェースとしてのアンテナとにより構成される。
【0018】
上記ROM230は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。上記ROM230は、製造段階で制御プログラムや制御データなどが記憶された状態でICカード200内に組み込まれるものである。つまり、上記ROM230に記憶されている制御プログラムや制御データは、予め当該ICカード200の仕様に応じて組み込まれる。
上記RAM240は、ワーキングメモリとして機能する揮発性のメモリである。また、上記RAM240は、制御部210が処理中のデータなどを一時保管するバッファとしても機能する。例えば、上記RAM240は、上記通信インターフェース220を介してICカード処理装置100から受信したデータを一時保管するようになっている。
【0019】
上記不揮発性メモリ250は、例えば、EEPROMあるいはフラッシュROMなどの、データの書き込み及び書換えが可能な不揮発性のメモリにより構成される。上記不揮発性メモリ250には、当該ICカード200の運用用途に応じて制御プログラムや種々のデータが書込まれる。たとえば、上記不揮発性メモリ250では、プログラムファイルやデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。
上記乱数生成部260は、乱数を生成するものである。上記乱数生成部260は、上記制御部210からの指示に応じて乱数を生成するようになっている。上記乱数生成部260は、たとえば、制御部210に乱数を生成させるためのプログラムにより構成するようにしても良い。
【0020】
ここでは、上記ROM230あるいは不揮発性メモリ250には、暗号化及び復号の処理に用いられる複数の暗号鍵情報(以下、単に、暗号鍵とも称する)を記憶しているものとする。各暗号鍵は、数字または文字列などにより構成される認証用の情報である。また、上記ROM230あるいは不揮発性メモリ250に記憶される複数の暗号鍵には、それぞれ、各暗号鍵を識別するための識別情報としての暗号鍵インデックスが付加されているものとする。なお、以下の説明では、ROM230に複数の暗号鍵が記憶されているものとする。
【0021】
また、上記制御部210では、上記乱数生成部260により生成された乱数に基づいて、暗号鍵を特定する機能を有している。すなわち、上記制御部210では、乱数に応じて暗号鍵インデックスを決定し、当該暗号鍵インデックスに対応する暗号鍵を判定するようになっている。
【0022】
たとえば、ICカード処理装置100からのデータの書き込みコマンドを受信した場合、上記制御部210は、上記乱数生成部260により乱数Rを生成する。上記乱数生成部260により乱数Rを生成すると、上記制御部210は、当該乱数Rに応じて暗号鍵インデックスを決定する。当該乱数Rに応じた暗号鍵インデックスを決定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する。このように乱数Rに基づいて暗号鍵KRを特定すると、上記制御部210は、当該暗号鍵KRと上記書込みコマンドに応じて不揮発性メモリ250に書込むべきデータとを暗号復号部270へ供給する。これにより、上記暗号復号部270は、暗号鍵KRを用いて不揮発性メモリ250に書込むべきデータを暗号化する。この暗号化されたデータ(暗号化データ)が、上記不揮発性メモリ250に書込まれる。この際、不揮発性メモリ250には、当該暗号化データに対応づけて暗号鍵KRを特定するための乱数Rが記憶されるようになっている。
【0023】
また、読出しコマンドに応じて上記不揮発性メモリ250に記憶されている暗号化データを読み出す場合、上記制御部210は、当該暗号化データに対応する乱数Rが読み出し、当該乱数Rに対応する暗号鍵インデックスを特定する。暗号鍵インデックスが特定されると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する。暗号鍵KRが特定されると、上記制御部210は、暗号鍵KRと上記読出しコマンドに応じて読み出すべき暗号化データとを上記暗号復号部270に供給する。これにより、上記暗号復号部270では、当該暗号鍵KRを用いて暗号化データを復号化する。この復号化されたデータが、上記読出しコマンドに応じて外部へ出力されるデータとなる。
【0024】
なお、上記不揮発性メモリ250に書込むデータの暗号化は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に行うようにしても良い。これらの場合、上記制御部210は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に、乱数Rを生成し、乱数Rに基づいて暗号鍵を設定するようになっている。
【0025】
図3は、上記ROM230(あるいは不揮発性メモリ250)に記憶される複数の暗号鍵を示す図である。なお、図3に示す暗号鍵群231は、これらの複数の暗号鍵を模式的に示したものである。
図3に示すように、上記ROM230には、複数の暗号鍵(暗号鍵A、暗号鍵B、暗号鍵C、…)が暗号鍵インデックスに対応づけて記憶されている。図1に示す例では、暗号鍵A、暗号鍵B、暗号鍵C、…に対して、それぞれ「01」、「02」、「03」、…という暗号インデックスが対応づけて記憶されている。つまり、上記ROM230に記憶されている暗号鍵は、暗号インデックスにより特定されるようになっている。
【0026】
次に、上記ICカード200に用いられる不揮発性メモリ250に記憶されるデータの構成について説明する。
図4は、上記不揮発性メモリ250に記憶されるデータの構成例を示す図である。
図4に示す例では、上記不揮発性メモリ250には、各データ252が暗号鍵のインデックスデータ251に対応づけて記憶されている。
上記各暗号鍵のインデックスデータ251は、対応する各データを暗号化するために用いられた暗号鍵を特定するための情報である。つまり、上記各暗号鍵のインデックスデータ251としては、ROM230に記憶されている暗号鍵を特定するための乱数Rあるいは暗号鍵インデックスである。従って、上記制御部210は、暗号鍵のインデックスデータ251により対応するデータを暗号化するために用いられた暗号鍵を特定することができるようになっている。また、各暗号鍵のインデックスデータ251は、たとえば、1つのデータのセットである1ファイル毎のデータ、あるいは、所定のアドレス毎に区切られる上記不揮発性メモリ上の各ブロック毎のデータに対して設定されている。なお、図4に示す例では、各ファイル毎のデータ252に対して暗号鍵のインデックスデータ251が設定されているものとする。
【0027】
また、図4に示す例では、各暗号鍵のインデックスデータ251に対応するデータ252として、複数の管理データのファイルと複数のアプリケーションデータのファイルとが記憶されている状態を示している。これらの各データ252は、それぞれ対応する暗号鍵のインデックスデータ251により特定される暗号鍵で暗号化された状態となっている。従って、各データ252を読み出すためには、対応する暗号鍵のインデックスデータ251により特定される暗号鍵で復号化することが必要となる。
【0028】
なお、上記管理データは、アプリケーションデータにアクセスする為の情報であり、アプリケーションデータと対になって構成されている。各管理データは、たとえば、対応するアプリケーションデータのアドレス、およびバイト数を示す情報などで構成される。各アプリケーションデータは、プログラムファイルやプログラムで使用されるデータファイルなどである。
【0029】
次に、上記のように構成されるICカード200におけるデータ書込み処理について説明する。
図5は、上記ICカード200におけるデータ書き込みコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて、上記ICカード200が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ書き込みコマンドと書き込むべきデータ(元データ)がICカード200へ送信されたものとする。
【0030】
上記ICカード200では、ICカード処理装置100からのデータ書き込みコマンドと元データを通信インターフェース220により受信する。すると、上記ICカード200の制御部210は、元データのファイル毎に乱数を生成するように乱数生成部260へ指示を出す(ステップS11)。乱数生成部260は、上記制御部210からの指示に基いて乱数Rを生成し、制御部210へ送信する(ステップS12)。
【0031】
上記乱数生成部260から乱数Rを受信すると、上記制御部210は、受信した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS13)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS14)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵KRを取得することとなる。
【0032】
上記乱数Rに基づいて暗号鍵KRを取得すると、上記制御部210は、取得した暗号鍵KRと元データとを暗号復号部270へ送信し、暗号化を行なうように暗号復号部270へ指示する。上記制御部210から暗号化の要求を受けた暗号復号部270は、指定された暗号鍵KRと所定の暗号方式とを用いて、元データを暗号化する(ステップS15)。上記暗号復号部270により暗号化されたデータ(暗号化データ)は、上記制御部210の制御によりデータ252として不揮発性メモリ250に書き込まれる(ステップS16)。上記不揮発性メモリ250に暗号化データ252を書込むと、上記制御部210は、さらに、当該暗号化データ252の暗号化に用いた暗号鍵KRを選択するために用いた乱数Rあるいは暗号鍵インデックスを、当該暗号化データ252の暗号鍵のインデックスデータ251として、不揮発性メモリ250に書き込み(ステップS17)、処理を終了する。
【0033】
上記のように、第1の実施の形態のデータ書込処理では、制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。暗号復号部270は、暗号鍵KRを用いて、所定の暗号方式によりデータを暗号化する。さらに、制御部210は、上記暗号復号部270により暗号鍵KRを用いて暗号したデータと当該暗号鍵KRを特定するための乱数あるいは乱数から特定された暗号鍵インデックスとを対応づけて不揮発性メモリ250に記憶する。
このようなデータの書込処理によれば、不揮発性メモリに記憶するデータを暗号化するために用いる暗号鍵を乱数に基づいて選択する為、元データおよび暗号鍵の推定を困難にすることができる。この結果として、上記したデータ書込み処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0034】
次に、上記ICカード200におけるデータの読出し処理について説明する。
図6は、上記ICカード200におけるデータ読み出しコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて上記ICカード200が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ読み出しコマンドが上記ICカード200へ送信されたものとする。この読み出しコマンドでは、読み出すべきデータ(暗号化データ)の先頭アドレスおよびデータ長などが指定されているものとする。
【0035】
上記ICカード200では、上記ICカード処理装置100からのデータ読み出しコマンドを上記通信インターフェース220により受信する。すると、上記ICカード200の制御部210は、当該読み出しコマンドで指定されている先頭アドレスとデータ長とに基いて、上記不揮発性メモリ250に記憶されている暗号化データにアクセスする(ステップS21)。上記制御部210は、アクセスした暗号化データの暗号鍵のインデックスデータ251から乱数Rを読み出す(ステップS22)。
【0036】
上記暗号鍵のインデックスデータ251から乱数Rを読み出すと、上記制御部210は、読み出した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS23)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS24)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵KRを取得することとなる。
【0037】
上記乱数Rに基づいて暗号鍵KRを取得すると、上記制御部210は、上記不揮発性メモリ250から暗号化データを読み出す(ステップS25)。暗号化データを読み出すと、上記制御部210は、取得した暗号鍵KRと読み出した暗号化データとを暗号復号部270へ送信し、復号化を行なうように指示する。上記制御部210から復号化の要求を受けた暗号復号部270は、指定された暗号鍵KRと所定の暗号方式とを用いて、暗号化データを復号化する(ステップS26)。上記暗号復号部270により復号化されたデータ(元データ)は、上記制御部210の制御により通信インターフェース220を介し、上記ICカード処理装置100へ送信され(ステップS27)、処理を終了する。
【0038】
上記のように、第1の実施の形態のデータ読出処理では、制御部210は、暗号化データ252の暗号鍵のインデックスデータ251から乱数Rを読み出し、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。暗号復号部270は、暗号鍵KRを用いて、所定の暗号方式によりデータを復号化する。さらに、制御部210は、復号化されたデータを通信インターフェースを介して読み出しコマンドの送信元に出力する。
このようなデータ読出処理によれば、暗号化されて不揮発性メモリに記憶されている暗号化データを復号化するのに用いる暗号鍵を当該暗号化データに対応づけて記憶されている乱数に基づいて選択する構成となっている為、元データ及び暗号鍵の推定を困難にすることができる。この結果として、上記したデータ読出処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0039】
次に、第2の実施の形態にについて説明する。
図7は、本第2の実施の形態に係るICカード300の構成例を概略的に示すブロック図である。なお、図7に示すICカード300は、たとえば、図1に示すようなICカードシステムに用いられるものとする。また、ICカード300については、図7に示すように、図2に示すICカード200と同一の部分には同一の参照符号を付し、詳細な説明は省略する。
上記ICカード300は、図2に示すICカード200と比較すると、暗号復号部270に替えて暗号復号部370が設けられている。上記暗号復号部370では、種々の暗号方式による暗号化および復号化を行う機能を有している。また、上記暗号復号部370では、種々の暗号方式による暗号化および復号化を各暗号鍵によって行うようになっている。なお、本第2の実施の形態では、説明を簡単化するため、上記暗号復号部370が実現する種々の暗号方式は、DES方式、AES方式などの共通鍵暗号方式であることを想定している。
【0040】
図8は、上記暗号復号部370の構成例を示す図である。
図8に示すように、上記ICカード300の暗号復号部370は、さらに、暗号化及び復号化の方式である複数の異なる暗号方式による処理を行うための複数の暗号処理部371(371a、371b、371c、…)と、鍵適合化部372とを有している。暗号方式Aの暗号処理部371a、暗号方式Bの暗号処理部371b、暗号方式Cの暗号処理部371c、…には、それぞれ暗号方式インデックスが付加されている。上記暗号方式インデックスは、暗号方式を特定するための識別情報である。
【0041】
また、各暗号処理部371の各暗号方式は、その種類によって必要とする暗号鍵のビット数が異なることがある。そこで、鍵適合化部372は、暗号鍵のビット数を、使用する暗号方式の暗号鍵に適するビット数に変換するようになっている。なお、本第2の実施形態では、各暗号鍵は、各暗号方式で用いる暗号鍵の中で最長のビット数を有するものとする。つまり、各暗号鍵は、上記鍵適合化部372により各暗号方式で使用可能な暗号鍵に変換されるようになっている。
【0042】
また、上記ICカード300の制御部210では、上記第1の実施の形態と同様に、上記乱数生成部260により生成された乱数Rに基づいて暗号鍵を特定する機能を有している。さらに、上記ICカード300の制御部210では、上記乱数生成部260により生成された乱数rに基づいて暗号方式を特定する機能を有している。すなわち、上記ICカード300の制御部210では、乱数Rに応じて暗号鍵インデックスを決定することにより暗号鍵を特定するとともに、乱数rに応じて暗号方式インデックスを決定することにより暗号方式を特定するようになっている。
【0043】
たとえば、ICカード処理装置100からのデータの書き込みコマンドを受信した場合、上記制御部210は、上記乱数生成部260により乱数Rと乱数rとを生成する。すると、上記制御部210は、上記乱数Rに応じて暗号鍵インデックスを決定するとともに、上記乱数rに応じて暗号方式インデックスを決定する。暗号鍵インデックスを決定すると、上記制御部210は、上記暗号鍵インデックスに対応する暗号鍵KRを特定する。暗号鍵KRを特定すると、上記制御部210は、上記暗号鍵KRと暗号方式インデックスと上記書込みコマンドに応じて不揮発性メモリ250に書込むべきデータとを暗号復号部370へ供給する。これにより、上記暗号復号部370は、暗号方式インデックスに応じて暗号方式(暗号処理部)を選択し、鍵適合化部372により暗号鍵KRのビット数を選択した暗号方式に応じたビット数に変換し、その後、選択した暗号方式の暗号処理部371により上記暗号鍵KRを用いて不揮発性メモリ250に書込むべきデータを暗号化する。この暗号化されたデータ(暗号化データ)が、上記不揮発性メモリ250に書込まれる。この際、不揮発性メモリ250には、暗号鍵KRを特定するための乱数Rおよび暗号方式CALCrを特定するための乱数rとが当該暗号化データに対応づけて記憶されるようになっている。
【0044】
また、上記不揮発性メモリ250に記憶されている暗号化データを読出しコマンドに応じて読み出す場合、上記ICカード300の制御部210は、当該暗号化データに対応する乱数Rおよび乱数rを読み出し、乱数Rに対応する暗号鍵インデックスおよび乱数rに対応する暗号方式インデックスとを特定する。暗号鍵インデックスを特定すると、上記制御部210は、暗号鍵インデックスに応じた暗号鍵KRを特定する。暗号鍵KRが特定されると、上記制御部210は、上記暗号鍵KRと暗号方式インデックスと上記読出しコマンドに応じて不揮発性メモリ250から読み出すべきデータ(暗号化データ)とを暗号復号部370へ供給する。これにより、上記暗号復号部370は、暗号方式インデックスに応じて暗号方式(暗号処理部)を選択し、鍵適合化部372により暗号鍵KRのビット数を選択した暗号方式に応じたビット数に変換し、その後、選択した暗号処理部371により上記暗号鍵KRを用いて不揮発性メモリ250から読み出すべき暗号化データを復号化する。この復号化されたデータが、上記読出しコマンドに応じて外部へ出力すべきデータである。
【0045】
なお、上記不揮発性メモリ250に書込むデータの暗号化は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に行うようにしても良い。これらの場合、上記制御部210は、データのセットであるファイル毎、あるいは、不揮発性メモリ250における所定のアドレス毎で区切られる各ブロックに記憶するデータ毎に、乱数R及び乱数rを生成し、乱数Rに基づいて暗号鍵を設定するとともに、乱数rに応じて暗号方式を設定するようになっている。
【0046】
次に、上記ICカード300の不揮発性メモリ250に記憶されるデータの構成について説明する。
図9は、上記ICカード300の不揮発性メモリ250に記憶されるデータの構成例を示す図である。
図9に示す例では、上記不揮発性メモリ250には、各データ252が暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253とに対応づけて記憶されている。
上記各暗号鍵のインデックスデータ251は、上記第1の実施形態で説明したように、対応するデータ252を暗号化するために用いられた暗号鍵を特定するための識別情報である。上記制御部210は、暗号鍵のインデックスデータ251により対応するデータを暗号化するために用いられた暗号鍵を特定することができるようになっている。また、上記暗号方式のインデックスデータ253は、対応するデータ252を暗号化するための暗号方式を特定するための識別情報である。上記制御部210は、暗号方式のインデックスデータ253により対応するデータを暗号化するために用いた暗号方式を特定することができるようになっている。
【0047】
すなわち、図9に示すような構成の各データ252は、暗号鍵のインデックスデータ251で暗号鍵が特定され、暗号方式のインデックスデータ253で暗号方式が特定されることができるようになっている。
【0048】
また、各データ252としては、たとえば、上記第1の実施の形態と同様に、1つのデータのセットである1ファイル毎のデータ、あるいは、所定のアドレス毎に区切られる上記不揮発性メモリ上の各ブロック毎のデータであることを想定している。つまり、1ファイル毎のデータ252、あるいは、所定のアドレス毎に区切られる各ブロック毎のデータ252には、暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253とが設定されている。なお、図9に示す例では、各ファイル毎のデータ252に対して暗号鍵のインデックスデータ251と暗号方式のインデックスデータ253が設定されているものとする。
【0049】
次に、上記ICカード300におけるデータ書込み処理について説明する。
図10は、上記ICカード300におけるデータ書き込みコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて、上記ICカード300が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ書き込みコマンドと書き込むべきデータ(元データ)がICカード300へ送信されたものとする。
【0050】
上記ICカード300では、ICカード処理装置100からのデータ書き込みコマンドと元データを通信インターフェース220により受信する。すると、上記ICカード300の制御部210は、元データのファイル毎に乱数を生成するように乱数生成部260へ指示を出す(ステップS31)。乱数生成部260は、上記制御部210からの指示に基いて乱数Rを生成し、制御部210へ送信する(ステップS32)。
【0051】
上記乱数生成部260から乱数Rを受信すると、上記制御部210は、受信した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS33)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS34)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵を取得することとなる。
【0052】
次に、乱数生成部260は、上記制御部210からの指示に基いて乱数rを生成し、制御部210へ送信する(ステップS35)。上記乱数生成部260から乱数rを受信すると、上記制御部210は、受信した乱数rを暗号方式インデックスとして用いられている桁数に変換することにより、乱数rに応じた暗号方式インデックスを特定する(ステップS36)。上記乱数rに基づいて暗号方式インデックスを特定すると、上記制御部210は、取得した暗号鍵KRと元データと特定した暗号方式インデックスを上記暗号復号部370へ送信し、暗号化を行なうように上記暗号復号部370へ指示する。
【0053】
上記暗号復号部370は、受信した暗号方式インデックスに応じて暗号処理部371を選択する。上記暗号処理部371を選択すると、鍵適合化部372は、選択した上記暗号処理部371の暗号鍵に適するビット数に変換し、暗号鍵の適合化を行う(ステップS37)。暗号鍵の適合化を行うと、上記暗号復号部370は、適合化した暗号鍵KRと選択した上記暗号処理部371とを用いて、元データを暗号化する(ステップS38)。上記暗号復号部370により暗号化されたデータ(暗号化データ)は、上記制御部210の制御によりデータ252として不揮発性メモリ250に書き込まれる(ステップS39)。
【0054】
上記不揮発性メモリ250に暗号化データを書込むと、上記制御部210は、さらに、当該暗号化データの暗号化に用いた暗号鍵KRを選択するために用いた乱数Rを、当該暗号化データの暗号鍵のインデックスデータ251として、不揮発性メモリ250に書き込む(ステップS40)。また、上記制御部210は、当該暗号化データの暗号化に用いた上記暗号処理部371を選択するために用いた乱数rを、当該暗号化データの暗号方式のインデックスデータ253として、不揮発性メモリ250に書き込み(ステップS41)、処理を終了する。
【0055】
上記のように、第2の実施の形態のデータ書込処理では、制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。また、制御部210は、乱数rに応じて暗号方式インデックスを特定する。暗号復号部370は、特定した暗号方式インデックスに対応する暗号処理部371を選択する。暗号復号部370は、暗号鍵KRを用いて、選択した暗号処理部371によりデータを暗号化する。さらに、制御部210は、上記暗号処理部371により暗号化されたデータと暗号鍵KRを特定するための乱数Rと暗号方式を特定するための乱数rとを対応づけて不揮発性メモリ250に書込む。
【0056】
このようなデータの書込み処理によれば、不揮発性メモリに書込むデータを暗号化するために用いる暗号鍵と暗号方式とをそれぞれ乱数に基づいて選択する為、元データ及び暗号鍵の推定をより困難にすることができる。この結果として、上記のようなデータの書込み処理によれば、高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0057】
次に、上記ICカード300におけるデータの読出し処理について説明する。
図11は、上記ICカード300におけるデータ読み出しコマンドに対する動作例を説明するためのフローチャートである。
まず、上記ICカード処理装置100からの電源供給、動作クロック信号およびリセット信号等を受けて上記ICカード300が活性化された状態であるものとする。この状態において、上記ICカード処理装置100からデータ読み出しコマンドが上記ICカード300へ送信されたものとする。この読み出しコマンドでは、読み出すべきデータ(暗号化データ)の先頭アドレスとデータ長とが指定されている。
【0058】
上記ICカード300では、上記ICカード処理装置100からのデータ読み出しコマンドを上記通信インターフェース220により受信する。すると、上記ICカード300の制御部210は、当該読出しコマンドで指定されている先頭アドレスとデータ長とに基づいて、上記不揮発性メモリ250に記憶されている暗号化データ252にアクセスする(ステップS51)。上記制御部210は、アクセスした暗号化データ252に対応する暗号鍵のインデックスデータ251から乱数Rを読み出す(ステップS52)。
【0059】
上記暗号鍵のインデックスデータ251から乱数Rを読み出すと、上記制御部210は、読み出した乱数Rを暗号鍵インデックスとして用いられている桁数に変換することにより、乱数Rに応じた暗号鍵インデックスを特定する。上記乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、当該暗号鍵インデックスに対応する暗号鍵KRを特定する(ステップS53)。乱数Rに応じた暗号鍵インデックスを特定すると、上記制御部210は、特定した暗号鍵インデックスに対応する暗号鍵KRをROM230から読み込む(ステップS54)。これにより、上記制御部210では、乱数生成部260により生成された乱数Rに応じた暗号鍵を取得することとなる。
【0060】
また、上記制御部210は、アクセスした暗号化データ252の暗号方式のインデックスデータ253から乱数rを読み出す(ステップS55)。上記暗号方式のインデックスデータ253から乱数rを読み出すと、上記制御部210は、読み出した乱数rを暗号方式インデックスとして用いられている桁数に変換することにより、乱数rに応じた暗号方式インデックスを特定する(ステップS56)。
【0061】
上記乱数rに基づいて暗号方式インデックスを特定すると、上記制御部210は、上記不揮発性メモリ250から暗号化データを読み出す(ステップS57)。暗号化データを読み出すと、上記制御部210は、取得した暗号鍵KRと特定した暗号方式インデックスと読み出した暗号化データとを暗号復号部370へ送信し、復号化を行なうように暗号復号部370へ指示する。
【0062】
上記暗号復号部370は、受信した暗号方式インデックスに応じて暗号処理部371を選択する。上記暗号処理部371を選択すると、鍵適合化部372は、暗号鍵KRを選択した上記暗号処理部371の暗号方式に対応する暗号鍵に適するビット数に変換することにより暗号鍵KRの適合化を行う(ステップS58)。暗号鍵の適合化を行うと、上記暗号復号部370は、適合化した暗号鍵KRと選択した上記暗号処理部371とを用いて、暗号化データを復号化する(ステップS59)。上記暗号復号部370により復号化されたデータ(元データ)は、上記制御部210の制御により通信インターフェース220を介し、上記ICカード処理装置100へ送信され(ステップS60)、処理を終了する。
【0063】
上記のように、第2の実施の形態のデータ読出処理では、制御部210は、暗号化データ252に対応する暗号鍵のインデックスデータ251から乱数R(あるいは暗号鍵インデックス)を読み出し、暗号方式のインデックスデータ253から乱数r(あるいは暗号方式のインデックス)を読み出す。制御部210は、乱数Rに応じて暗号鍵インデックスを特定し、上記暗号鍵インデックスに対応する暗号鍵KRをROM230より取得する。また、制御部210は、乱数rに応じて暗号方式インデックスを特定する。暗号復号部370は、特定した暗号方式インデックスに対応する暗号処理部371を選択する。暗号復号部370は、暗号鍵KRを選択した暗号処理部の暗号方式に適合するものに適合化し、適合化した暗号鍵KRを用いて選択した暗号処理部371により上記暗号化データを復号化する。
このようなデータ読出処理によれば、暗号化されて不揮発性メモリに記憶されている暗号化データを復号化するのに用いる暗号鍵と暗号方式とを、当該暗号化データに対応づけて記憶されている乱数(あるいは暗号鍵インデックス及び暗号方式インデックス)に基づいて選択する構成となっている為、元データ及び暗号鍵の推定をより困難にすることができる。この結果として、上記したデータ読出処理によれば、より高レベルのセキュリティを有する携帯可能電子装置を提供することができる。
【0064】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0065】
【図1】第1の実施の形態に係るICカードとの通信機能を有する外部装置としてのICカード処理装置の構成例を概略的に示すブロック図である。
【図2】図1に示すICカードにおける構成例を概略的に示すブロック図である。
【図3】図2に示すROM若しくは不揮発性メモリに記憶される複数の暗号鍵の例を示す模式的に示す図である。
【図4】図2に示す不揮発性メモリ内に記憶されるデータの構成例を示す図である。
【図5】図2に示すICカードにおけるデータ書き込みコマンドに対するデータ書込処理の例を説明するためのフローチャートである。
【図6】図2に示すICカードにおけるデータ読み出しコマンドに対するデータ読出処理の例を説明するためのフローチャートである。
【図7】第2の実施の形態に係るICカードにおける構成例を概略的に示すブロック図である。
【図8】図7に示す暗号復号部の構成例を示すブロック図である。
【図9】図7に示す不揮発性メモリ内に記憶されるデータの構成例を示す図である。
【図10】図7に示すICカードにおけるデータ書き込みコマンドに対するデータ書込処理の例を説明するためのフローチャートである。
【図11】図7に示すICカードにおけるデータ読み出しコマンドに対するデータ読出処理の例を説明するためのフローチャートである。
【符号の説明】
【0066】
210…制御部、231…暗号鍵群、250…不揮発性メモリ、260…乱数生成部、270…暗号復号部、371…暗号処理部、372…鍵適合化部、R…乱数、r…乱数、KR…暗号鍵。
【特許請求の範囲】
【請求項1】
複数の暗号鍵を記憶している記憶手段と、
乱数を生成する乱数生成手段と、
前記乱数生成手段により生成された乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する選択手段と、
前記選択手段により選択された暗号鍵を用いてデータを暗号化する暗号化手段と、
前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリと、
を具備することを特徴とする携帯可能電子装置。
【請求項2】
前記不揮発性メモリには、さらに、前記暗号化データに対応づけて前記乱数生成手段により生成された乱数を記憶する、ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
さらに、前記不揮発性メモリに記憶するファイル毎に、前記乱数生成手段による乱数の生成、前記選択手段による暗号鍵の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
さらに、前記不揮発性メモリにおける特定のアドレス毎に区切られる各ブロックに記憶するデータ毎に、前記乱数生成手段による乱数の生成、前記選択手段による暗号鍵の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
さらに、前記不揮発性メモリに記憶されている暗号化データに対応づけられている乱数に基づいて前記選択手段により選択される暗号鍵を用いて当該暗号化データを復号化する復号化手段を具備することを特徴とする前記請求項2に記載の携帯可能電子装置。
【請求項6】
複数の暗号鍵を記憶している記憶手段と、
複数の異なる暗号方式による暗号化を行う複数の暗号処理部と、
第1、及び第2の乱数を生成する乱数生成手段と、
前記乱数生成手段により生成された第1の乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する第1の選択手段と、
前記乱数生成手段により生成された第2の乱数に基づいて前記複数の暗号処理部から1つの暗号処理部を選択する第2の選択手段と、
前記第1の選択手段により選択された暗号鍵を用いて、前記第2の選択手段により選択された暗号処理部によりデータを暗号化する暗号化手段と、
前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリと、
を具備することを特徴とする携帯可能電子装置。
【請求項7】
前記不揮発性メモリには、さらに、前記暗号化データに対応づけて前記乱数生成手段により生成された第1及び第2の乱数を記憶する、ことを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項8】
さらに、前記不揮発性メモリに記憶するファイル毎に、前記乱数生成手段による第1及び第2の乱数の生成、前記第1の選択手段による暗号鍵の選択、前記第2の選択手段による暗号処理部の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項9】
さらに、前記不揮発性メモリにおける特定のアドレス毎に区切られる各ブロックに記憶するデータ毎に、前記乱数生成手段による第1及び第2の乱数の生成、前記第1の選択手段による暗号鍵の選択、前記第2の選択手段による暗号処理部の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項10】
さらに、前記不揮発性メモリに記憶されている暗号化データに対応づけられている第1の乱数に基づいて前記第1の選択手段により選択される暗号鍵を用いて、前記第2の乱数に基づいて前記第2の選択手段により選択される暗号処理部により、当該暗号化データを復号化する復号化手段を具備することを特徴とする前記請求項7に記載の携帯可能電子装置。
【請求項11】
さらに、前記暗号化手段は、前記第1の選択手段により選択される暗号鍵のビット数を、前記第2の選択手段により選択される暗号処理部の暗号鍵に適するビット数に変換する鍵適合化手段を具備することを特徴する請求項6記載の携帯可能電子装置。
【請求項12】
さらに、前記各手段と前記不揮発性メモリとを有するモジュールと、
前記モジュールが内蔵された本体と、
を具備することを特徴する請求項1乃至11記載の携帯可能電子装置。
【請求項1】
複数の暗号鍵を記憶している記憶手段と、
乱数を生成する乱数生成手段と、
前記乱数生成手段により生成された乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する選択手段と、
前記選択手段により選択された暗号鍵を用いてデータを暗号化する暗号化手段と、
前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリと、
を具備することを特徴とする携帯可能電子装置。
【請求項2】
前記不揮発性メモリには、さらに、前記暗号化データに対応づけて前記乱数生成手段により生成された乱数を記憶する、ことを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項3】
さらに、前記不揮発性メモリに記憶するファイル毎に、前記乱数生成手段による乱数の生成、前記選択手段による暗号鍵の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項4】
さらに、前記不揮発性メモリにおける特定のアドレス毎に区切られる各ブロックに記憶するデータ毎に、前記乱数生成手段による乱数の生成、前記選択手段による暗号鍵の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項1に記載の携帯可能電子装置。
【請求項5】
さらに、前記不揮発性メモリに記憶されている暗号化データに対応づけられている乱数に基づいて前記選択手段により選択される暗号鍵を用いて当該暗号化データを復号化する復号化手段を具備することを特徴とする前記請求項2に記載の携帯可能電子装置。
【請求項6】
複数の暗号鍵を記憶している記憶手段と、
複数の異なる暗号方式による暗号化を行う複数の暗号処理部と、
第1、及び第2の乱数を生成する乱数生成手段と、
前記乱数生成手段により生成された第1の乱数に基づいて前記記憶手段に記憶されている複数の暗号鍵から1つの暗号鍵を選択する第1の選択手段と、
前記乱数生成手段により生成された第2の乱数に基づいて前記複数の暗号処理部から1つの暗号処理部を選択する第2の選択手段と、
前記第1の選択手段により選択された暗号鍵を用いて、前記第2の選択手段により選択された暗号処理部によりデータを暗号化する暗号化手段と、
前記暗号化手段により暗号化された暗号化データを記憶する不揮発性メモリと、
を具備することを特徴とする携帯可能電子装置。
【請求項7】
前記不揮発性メモリには、さらに、前記暗号化データに対応づけて前記乱数生成手段により生成された第1及び第2の乱数を記憶する、ことを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項8】
さらに、前記不揮発性メモリに記憶するファイル毎に、前記乱数生成手段による第1及び第2の乱数の生成、前記第1の選択手段による暗号鍵の選択、前記第2の選択手段による暗号処理部の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項9】
さらに、前記不揮発性メモリにおける特定のアドレス毎に区切られる各ブロックに記憶するデータ毎に、前記乱数生成手段による第1及び第2の乱数の生成、前記第1の選択手段による暗号鍵の選択、前記第2の選択手段による暗号処理部の選択、前記暗号化手段による暗号化を行う制御手段を具備することを特徴とする前記請求項6に記載の携帯可能電子装置。
【請求項10】
さらに、前記不揮発性メモリに記憶されている暗号化データに対応づけられている第1の乱数に基づいて前記第1の選択手段により選択される暗号鍵を用いて、前記第2の乱数に基づいて前記第2の選択手段により選択される暗号処理部により、当該暗号化データを復号化する復号化手段を具備することを特徴とする前記請求項7に記載の携帯可能電子装置。
【請求項11】
さらに、前記暗号化手段は、前記第1の選択手段により選択される暗号鍵のビット数を、前記第2の選択手段により選択される暗号処理部の暗号鍵に適するビット数に変換する鍵適合化手段を具備することを特徴する請求項6記載の携帯可能電子装置。
【請求項12】
さらに、前記各手段と前記不揮発性メモリとを有するモジュールと、
前記モジュールが内蔵された本体と、
を具備することを特徴する請求項1乃至11記載の携帯可能電子装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−109276(P2008−109276A)
【公開日】平成20年5月8日(2008.5.8)
【国際特許分類】
【出願番号】特願2006−288867(P2006−288867)
【出願日】平成18年10月24日(2006.10.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成20年5月8日(2008.5.8)
【国際特許分類】
【出願日】平成18年10月24日(2006.10.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]