説明

携帯可能電子装置、及び携帯可能電子装置の制御方法

【課題】より安全性の高い携帯可能電子装置、及び携帯可能電子装置の制御方法を提供する。
【解決手段】携帯可能電子装置(2)は、制御部(25)と、前記制御部とバスを介して接続される暗号処理部(29)とを具備する。前記制御部は、前記暗号処理部に対して暗号処理を行うデータを前記バスを介して入力し、前記暗号処理部に対して鍵指定情報を前記バスを介して入力する。前記暗号処理部は、予め鍵指定情報と暗号鍵とを対応付けて複数記憶し、前記制御部から入力される鍵指定情報に基づいて暗号鍵を予め記憶した複数の暗号鍵の中から取得し、前記取得した暗号鍵に基づいて前記制御部から入力されるデータに対して演算処理を行い、前記演算処理の処理結果を前記バスを介して前記制御部に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、外部装置からのコマンドに応じて処理を行う携帯可能電子装置、及び携帯可能電子装置の制御方法に関する。
【背景技術】
【0002】
一般的に、携帯可能電子装置として用いられるICカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0003】
ICカードは、例えば、ISO/IEC7816−1part1,2に準拠したICカードである。ICカードは、一般的に、CPU、ROM、RAM、不揮発性メモリ(EEPROM)、及び通信部などを備えており、互いにデータバスなどを介して接続されている。
【0004】
ICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0005】
この為、保持している機密性の高い情報を第三者に不正に読み取れないように、データを暗号化して送受信を行う携帯可能電子装置が提供されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−45760号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記した携帯可能電子装置は、暗号化処理を行う為のコプロセッサ(暗号処理部)を備えている。ICカードは、コプロセッサにより、例えば、DES(Data Encryption Standard)、またはAES(Advanced Encryption Standard)等の規格に基づいて暗号処理を行う。
【0008】
またさらに、暗号化処理の出力と入力との排他的論理和を入力として暗号化を行うCipher Block Chain(CBC)モードによる暗号処理も一般的に用いられている。
【0009】
また、上記した携帯可能電子装置は、暗号化に用いる鍵、及びCBCモードに用いられる初期値などを不揮発性メモリ、またはROMなどに記憶している。携帯可能電子装置のCPUは、不揮発性メモリ、またはROMから鍵及び初期値などを読み出し、コプロセッサにデータバスを介して送信する。コプロセッサは、受け取った鍵及び初期値を用いて暗号化処理を行う。
【0010】
このような暗号処理を行う際に、暗号鍵または初期値が解析される可能性があるという問題がある。
【0011】
そこで、本発明の目的は、より安全性の高い携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することにある。
【課題を解決するための手段】
【0012】
本発明の一実施形態としての携帯可能電子装置は、制御部と、前記制御部とバスを介して接続される暗号処理部とを備える携帯可能電子装置であって、前記制御部は、前記暗号処理部に対して暗号処理を行うデータを前記バスを介して入力するデータ入力部と、前記暗号処理部に対して鍵指定情報を前記バスを介して入力する鍵指定部と、を具備し、前記暗号処理部は、予め鍵指定情報と暗号鍵とを対応付けて複数記憶する鍵記憶部と、前記制御部から入力される鍵指定情報に基づいて暗号鍵を前記鍵記憶部から取得する鍵取得部と、前記鍵取得部により取得した暗号鍵に基づいて前記制御部から入力されるデータに対して演算処理を行う第1の暗号演算部と、前記第1の暗号演算部の処理結果を前記バスを介して前記制御部に出力する出力部と、を具備する。
【0013】
また、本発明の一実施形態としての携帯可能電子装置の制御方法は、制御部と、前記制御部とバスを介して接続される暗号処理部とを備える携帯可能電子装置の制御方法であって、前記制御部は、前記暗号処理部に対して暗号処理を行うデータを前記バスを介して入力し、前記暗号処理部に対して鍵指定情報を前記バスを介して入力し、前記暗号処理部は、予め鍵指定情報と暗号鍵とを対応付けて複数記憶し、前記制御部から入力される鍵指定情報に基づいて暗号鍵を予め記憶した複数の暗号鍵の中から取得し、前記取得した暗号鍵に基づいて前記制御部から入力されるデータに対して演算処理を行い、前記演算処理の処理結果を前記バスを介して前記制御部に出力する。
【発明の効果】
【0014】
この発明の一形態によれば、より安全性の高い携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】図1は、本発明の一実施形態に係る携帯可能電子装置、及び携帯可能電子装置の制御方法の構成の例について説明するためのブロック図である。
【図2】図2は、図1に示すICカードの構成例について説明するためのブロック図である。
【図3】図3は、図2に示すコプロセッサの構成及び動作について説明するための説明図である。
【図4】図4は、図1乃至図3に示すICカードの動作について説明するためのフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら、本発明の一実施形態に係る携帯可能電子装置、及び携帯可能電子装置の制御方法について詳細に説明する。
【0017】
図1は、本実施形態に係るICカード2と通信を行うICカード処理装置1の構成例について説明するためのブロック図である。
図1に示すようにICカード処理装置1は、端末装置11、ディスプレイ12、キーボード13、及びカードリーダライタ14などを有している。
【0018】
端末装置11は、CPU、種々のメモリ、及び各種インターフェースなどを備える。端末装置11は、ICカード処理装置1全体の動作を制御する。
【0019】
ディスプレイ12は、端末装置11の制御により種々の情報を表示する。キーボード13は、ICカード処理装置1の操作者による操作を操作信号として受け取る。
【0020】
カードリーダライタ14は、ICカード2と通信を行うためのインターフェース装置である。カードリーダライタ14は、ICカード2に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【0021】
端末装置11は、カードリーダライタ14によりICカード2に対して種々のコマンドを入力する。ICカード2は、例えば、カードリーダライタ14からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【0022】
また、端末装置11は、ICカード2に読み取りコマンドを送信することにより、ICカード2からデータを読み出す。端末装置11は、ICカード2から受信したデータに基づいて種々の処理を行う。
【0023】
図2は、図1に示すICカード2の構成例について説明するためのブロック図である。
図2に示すように、ICカード2は、カード状の本体21と、本体21内に内蔵されたICモジュール22とを備えている。ICモジュール22は、1つ又は複数のICチップ23と、通信部24とを備える。ICチップ23と通信部24とは、互いに接続された状態でICモジュール22に形成されている。
【0024】
ICチップ23は、データバス20、通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、及びコプロセッサ29などを備えている。通信部24、CPU25、ROM26、RAM27、不揮発性メモリ28、及びコプロセッサ29は、データバス20を介して互いに接続されている。
【0025】
ICカード2は、ICカード処理装置1などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ICカード2が接触式通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触式のICカードで構成される場合、ICカード2は、通信部としてのコンタクト部などを介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0026】
また、ICカード2が非接触式の通信方式によりICカード処理装置1と接続される場合、つまり、ICカード2が非接触式のICカードで構成される場合、ICカード2は、通信部としてのアンテナなどを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【0027】
通信部24は、ICカード処理装置1のカードリーダライタ14との通信を行うためのインターフェースである。
通信部24は、例えば、ICカード処理装置1のカードリーダライタ14と接触して信号の送受信を行うコンタクト部を備える。この場合、ICカード2は、接触式のICカードとして機能する。
また、通信部24は、例えば、ICカード処理装置1のカードリーダライタ14と無線通信を行うアンテナを備える。この場合、ICカード2は、非接触式のICカードとして機能する。
【0028】
CPU25は、ICカード2全体の制御を司る制御部として機能する。CPU25は、ROM26あるいは不揮発性メモリ28に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【0029】
ROM26は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM26は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2内に組み込まれる。即ち、ROM26に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0030】
RAM27は、ワーキングメモリとして機能する揮発性のメモリである。RAM27は、CPU25の処理中のデータなどを一時的に格納する。例えば、RAM27は、通信部24を介してICカード処理装置1から受信したデータを一時的に格納する。また、RAM27は、CPU25が実行するプログラムを一時的に格納する。
【0031】
不揮発性メモリ28は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ28は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【0032】
たとえば、不揮発性メモリ28では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU25は、不揮発性メモリ28、または、ROMに記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0033】
コプロセッサ29は、暗号鍵を用いて暗号化されたデータの復号、及び、平文のデータの暗号化を行う。即ち、コプロセッサ29は、暗号処理部として機能する。例えば、CPU25は、暗号処理を行いデータをコプロセッサ29にバス20を介して入力する。この場合、CPU25は、データ入力部として機能する。コプロセッサ29は、入力されるデータに対して暗号処理を施し、CPU25にバス20を介して出力する。
【0034】
図3は、図2に示すコプロセッサ29の構成及び動作について説明するための説明図である。なお、ここでは、コプロセッサ29は、DESにより暗号処理を行うとして説明するが、これに限定されない。例えば、AESなどにより暗号処理を行う場合であっても、同様に本発明を実施することができる。また、暗号処理ではなく復号処理を行う場合であっても、同様に本発明を実施することができる。
【0035】
本実施形態に係るコプロセッサ29は、入力データに対して非線形処理を含む一定の演算処理を所定回数行う。コプロセッサ29は、この演算処理を行う為に暗号鍵を用いる。
【0036】
図3に示すように、コプロセッサは、インターフェース部291、初期値ストレージ292、鍵ストレージ293、制御部294、初期転置処理部295、演算部296及び、鍵生成部297を備えている。
【0037】
インターフェース部291は、データバス20と接続するためのインターフェースである。インターフェース部291は、入力レジスタ2911、出力レジスタ2912、初期値レジスタ2913、及び鍵レジスタ2914などを備えている。
【0038】
入力レジスタ2911は、データバス20を介してコプロセッサ29に入力されるデータを一時的に格納する。即ち、ICカード2のCPU25は、入力レジスタ2911にデータを書き込むことにより、コプロセッサ29に対してデータを送信する。通常、入力レジスタ2911に格納される入力データは、所定の長さのビットを1ブロックとする複数ブロックのデータを格納する。
【0039】
出力レジスタ2912は、データバス20を介してコプロセッサ29から出力するデータを一時的に格納する。即ち、ICカード2のCPU25は、出力レジスタ2912に書き込まれているデータを読み込む事により、コプロセッサ29からデータを受信する。出力レジスタ2912は、制御部294の制御に基づいて動作することにより、出力部として機能する。
【0040】
初期値レジスタ2913は、初期値指定情報記憶部として機能する。初期値レジスタ2913は、CBCモードにおける暗号処理に用いる初期値を決定するための初期値ID(初期値指定情報)を格納する。また、鍵レジスタ2914は、鍵指定情報記憶部として機能する。鍵レジスタ2914は、暗号処理に用いる鍵を決定するための鍵ID(鍵指定情報)を格納する。鍵ID及び初期値IDは、CPU25により書き込まれる。初期値IDは、CPU25により書き込まれる。
【0041】
初期値ストレージ292は、初期値記憶部及び初期値取得部として機能する。初期値ストレージ292は、複数の異なる初期値を記憶する。また、初期値ストレージ292は、各初期値にそれぞれ固有のID(初期値ID)を対応付けて記憶する。この複数の異なる初期値は、カード発行段階で格納される。初期値ストレージ292は、初期値レジスタ2913に初期値IDが書き込まれる場合、初期値レジスタ2913に書き込まれた初期値IDと一致する初期値IDに対応付けられている初期値を出力する。
【0042】
鍵ストレージ293は、鍵記憶部及び鍵取得部として機能する。鍵ストレージ293は、複数の異なる暗号鍵を記憶する。また、鍵ストレージ293は、各暗号鍵にそれぞれ固有のID(鍵ID)を対応付けて記憶する。この複数の異なる暗号鍵は、カード発行段階で格納される。鍵ストレージ293は、鍵レジスタ2914に鍵IDが書き込まれる場合、鍵レジスタ2914に書き込まれた鍵IDと一致する鍵IDに対応付けられている暗号鍵を出力する。
【0043】
制御部294は、コプロセッサ29内の各部の動作を制御する制御部である。入力レジスタ2911に入力データが入力される場合、制御部294は、入力データを1ブロック読み出す。また、初期値ストレージ292から出力される初期値を取得する。制御部294は、読み出した1ブロックの入力データと、初期値との排他的論理和を演算し、初期転置処理部295に出力する。この場合、制御部294は、暗号演算部として機能する。
【0044】
初期転置処理部295は、入力されたデータの並べ替えを行う。例えば、64ビットのデータが入力された場合、初期転置処理部295は、入力された64ビットのデータを32ビットずつに区切る。初期転置処理部295は、上位の32ビットを第1の入力データLi、下位の32ビットを第2の入力データRiとして演算部296にそれぞれ入力する。
【0045】
演算部296は、入力されたデータと鍵生成部297から出力される鍵とに基づいて演算を行い、データを暗号化(復号)する処理を行う。即ち、初期転置処理部295、演算部296、及び鍵生成部297は、暗号演算部として機能する。
【0046】
鍵生成部297は、鍵ストレージ293から出力される鍵を記憶するレジスタを備えている。鍵生成部297は、レジスタに格納されている鍵に対して、転置処理、変換処理、及びシフト処理を行い、巡回鍵を生成する。DESによる暗号化処理は、通常、第1段から第16段の処理を有している。即ち、コプロセッサ29は、演算部296にデータを入力し、その演算結果である出力を得る処理を1つの段として、16段の処理を繰り返す。鍵生成部297は、各段に毎に異なる鍵K1乃至K16(Kn)を逐次生成し、演算部296に供給する。
【0047】
演算部296は、入力データLi、入力データRi、及び鍵生成部297から供給される巡回鍵に基づいて、演算を行い、出力データLo及び出力データRoを出力する。まず、演算部296は、鍵生成部297から供給される鍵KnとRiとに基づいて、F関数の演算を行う。即ち、演算部296は、変換処理、及び排他的論理和などの演算を行う。演算部296は、この演算結果と、Liとで排他的論理和を行う。演算部296は、この結果を出力データRoとして出力する。また、演算部296は、入力データRiを出力データLoとして出力する。これにより、演算部296による1段の処理が終了する。
【0048】
例えば、1段目の暗号処理を行う場合、演算部296は、鍵生成部297から鍵K1を受け取る。また、2段目の暗号処理を行う場合、演算部296は、鍵生成部297から鍵K2を受け取る。
【0049】
また、例えば、2段目の暗号処理の出力結果に対して再び鍵K2を用いて演算処理を行う場合、1段目の暗号処理の出力結果と同一のデータが出力される。即ち、演算部296は、暗号処理に用いられた鍵を用いて演算処理を行うことにより、暗号化されたデータを復号することができる。
【0050】
例えば、1乃至16段の暗号処理により暗号化されたデータを複合する場合、演算部296は、鍵K16乃至K1を順に用いて演算処理を行うことにより元の平文データを取得することができる。
【0051】
制御部294は、演算部296による処理が何段目であるかをカウントする。制御部294は、演算部296による処理結果を受け取り、カウントした段数に応じて適宜出力先を選択する。
【0052】
例えば、演算部296による処理が1段目乃至15段目である場合、制御部294は、出力データLo及びRoを演算部296に入力する。演算部296は入力されたLo及びRoに対して、繰り返し上記した処理を行う。
【0053】
また、例えば、演算部296による処理が16段目である場合、制御部294は、出力データLo及びRoを出力レジスタ2912に入力する。さらに、制御部294は、次のブロックの処理に移行する。即ち、制御部294は、入力レジスタ2911から、入力データを1ブロック読み出す。制御部294は、読み出した1ブロックの入力データと、演算部296の出力データLo及びRoとの排他的論理和を演算し、演算部296に入力する。
【0054】
コプロセッサ29は、上記した処理を入力レジスタ2911の入力データの全てのブロックに対して行う。全てのブロックについて暗号処理を行った場合、コプロセッサ29は、出力レジスタ2912に格納されているデータを出力する。
【0055】
なお、コプロセッサ29がCBCモードを用いずに暗号処理を行う場合、初期値レジスタ2913、初期値ストレージ292の構成を省略することができる。また、この場合、制御部294は、排他的論理和の演算を行わない。
【0056】
図2に示す不揮発性メモリ28は、上記の鍵ID及び初期値IDを記憶する記憶部として機能する。即ち、不揮発性メモリ28は、当該ICカード2で実行することができるアプリケーションを示す情報の一覧を記憶する。不揮発性メモリ28は、アプリケーションを示す情報に、それぞれ鍵ID及び初期値IDを対応付けて記憶する。例えば、不揮発性メモリ28は、アプリケーションAを示す情報に、鍵ID−A、及び初期値ID−Aを対応付けて記憶することができる。
【0057】
CPU25は、ICカード処理装置1から受信するコマンドに基づいて、不揮発性メモリ28に格納されている複数のアプリケーションから実行するアプリケーションを選択する。CPU25は、選択したアプリケーションを読み出し、実行する。
【0058】
この場合、CPU25は、実行するアプリケーションを示す情報に対応付けられている鍵ID及び初期値IDを取得する。例えば、実行するアプリケーションがアプリケーションAである場合、CPU25は、鍵ID−A、及び初期値ID−Aを不揮発性メモリ28から読み出す。CPU25は、読み出した鍵ID及び初期値IDをコプロセッサ29のインターフェース部291の初期値レジスタ2913、及び鍵レジスタ2914にそれぞれ書き込む。即ち、CPU25は、鍵指定部、及び初期値指定部として機能する。
【0059】
図4は、図1乃至図3に示すICカード2の動作について説明するためのフローチャートである。
ICカード2は、ICカード処理装置1から起動コマンドを受信することにより起動される。ICカード2は、ICカード処理装置1からコマンドを受信する(ステップS11)。
【0060】
CPU25は、ICカード処理装置1から受信するコマンドに基づいて、不揮発性メモリ28に格納されている複数のアプリケーションから実行するアプリケーションを選択し、不揮発性メモリ28から読み出す(ステップS12)。
【0061】
CPU25は、不揮発性メモリ28を参照し、読み出したアプリケーションに対応するアプリケーション情報に対応付けられている鍵ID及び初期値IDを取得する(ステップS13)。
【0062】
CPU25は、読み出した鍵ID及び初期値IDをコプロセッサ29のインターフェース部291の初期値レジスタ2913、及び鍵レジスタ2914にそれぞれ書き込む(ステップS14)。また、暗号処理を行うデータがある場合、CPU25は、データ(入力データ)をコプロセッサ29の入力レジスタ2911に書き込む。
【0063】
コプロセッサ29の初期値ストレージ292は、初期値レジスタ2913に書き込まれた初期値IDと一致する初期値IDに対応付けられている初期値を出力する(ステップS15)。
【0064】
コプロセッサ29の制御部294は、入力レジスタ2911から入力データを1ブロック読み出す(ステップS16)。また、制御部294は、初期値ストレージ292から出力される初期値を取得する。
【0065】
制御部294は、読み出した1ブロックの入力データと、初期値との排他的論理和を演算し、初期転置処理部295に出力する(ステップS17)。初期転置処理部295は、入力されたデータを上位32ビットのデータ、及び下位32ビットのデータに分割し、コプロセッサ29の演算部296に入力する。
【0066】
コプロセッサ29の鍵ストレージ293は、鍵レジスタ2914に書き込まれた鍵IDと一致する鍵IDに対応付けられている暗号鍵を鍵生成部297に出力する(ステップS18)。これにより、鍵生成部297は、逐次巡回鍵を生成し、演算部296に入力する。
【0067】
演算部296は、初期転置処理部295から入力されるデータ及び鍵生成部297から入力される巡回鍵に基づいて暗号処理を行い、結果を制御部294に出力する(ステップS19)。
【0068】
制御部294は、演算部296による処理が何段目であるかをカウントすることにより、暗号処理が完了したか否かを判断する(ステップS20)。
【0069】
即ち、制御部294は、例えば、演算部296による処理が1段目乃至15段目である場合、暗号処理が未了であると判断し(ステップS20、NO)、ステップS19に移行し、暗号処理を継続する。
【0070】
制御部294は、例えば、演算部296による処理が16段目である場合、1ブロックのデータに対する暗号処理が完了したと判断する(ステップS20、YES)。制御部294は、暗号処理の結果をコプロセッサ29の出力レジスタ2912に格納する。
【0071】
また、制御部294は、入力データの全てのブロックに対して暗号処理が完了したか否か判断する(ステップS21)。即ち、制御部294は、入力レジスタ2911に未処理のデータブロックが存在するか否か判断する。
【0072】
全てのブロックに対して暗号処理が完了していないと判断した場合(ステップS21、NO)、制御部294は、ステップS16に移行し、入力レジスタ2911から1ブロックのデータを読み出す。この場合、制御部294は、1つ前のブロックの暗号処理の結果と、読み出したデータとの排他的論理和を初期転置処理部295に対して出力する。
【0073】
全てのブロックに対して暗号処理が完了したと判断した場合(ステップS21、YES)、制御部294は、出力レジスタ2912に格納されている出力データをデータバス20を介してCPU25に出力し(ステップS22)、処理を終了する。
【0074】
上記したように、本実施形態に係るICカード2は、複数の異なる初期値及び暗号鍵がコプロセッサ29のチップ内に格納された状態で発行される。また、ICカード2の不揮発性メモリ28は、コプロセッサ29内に格納されている初期値及び暗号鍵を識別するためのIDと、アプリケーションを識別するための情報とを対応付けて記憶する。
【0075】
CPU25は、実行するアプリケーションに基づいて不揮発性メモリ28を参照し、初期値ID及び鍵IDを取得し、コプロセッサ29に送信する。コプロセッサ29は、受信した初期値ID及び鍵IDに基づいて記憶している複数の初期値及び暗号鍵から暗号処理に用いる初期値及び暗号鍵を選択する。
【0076】
この構成によると、暗号処理を行う場合、暗号化データ、復号データ、及び、初期値と暗号鍵とを指定するためのIDがICカード2のデータバス20を流れる。即ち、暗号鍵、及び初期値がデータバス20を流れない。この結果、より安全性の高い携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することができる。
【0077】
なお、初期値ストレージ292と制御部294との間で初期値の送受信が行われる場合、乱数によりスクランブルされた状態のデータが送受信される。また、鍵ストレージ293と鍵生成部297との間で初期値の送受信が行われる場合、乱数によりスクランブルされた状態のデータが送受信される。これにより、コプロセッサ29内における送受信においても、高セキュリティを実現することができる。
【0078】
また、演算途中の初期値のデータを保存しておき、別の暗号化処理を割り込ませて実施する場合、制御部294は、演算途中の初期値のデータ(演算部296の出力)にIDを付与し、初期値ストレージ292の空き領域に保存する。処理を再開する場合、制御部294は、付与したIDを指定して初期値ストレージ292から初期値のデータを取得する。これにより、制御部294は、演算途中の初期値のデータを取得し、演算の続きの処理を行うことができる。
【0079】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【0080】
例えば、トリプルDESなどの、複数の鍵を同時に利用する必要がある場合であっても、本発明を容易に適用することができる。この場合、不揮発性メモリ28は、アプリケーション毎に複数の鍵IDを対応付けて記憶する。また、鍵レジスタ2914は、複数の鍵IDを個別に格納することができるように構成される。鍵ストレージ293は、鍵レジスタ2914に格納される複数の鍵IDに基づいて、複数の暗号鍵を鍵生成部297に適宜出力する。これにより、複数の鍵を同時に使用する暗号方式にも本発明を適用させることができる。
【0081】
例えば、トリプルDESにより暗号処理を行う場合、2KEY(16バイト)または3KEY(24バイト)で暗号処理が行われる。本発明では、この鍵に対して、8バイト毎に鍵IDを付与する。鍵IDは、例えば1バイトのデータであり、鍵8バイト+鍵ID1バイトのデータがICカード2の発行時に鍵ストレージ293に格納される。同時に、鍵IDは、アプリケーションを示す情報と対応付けられた状態で不揮発性メモリ28にも格納される。
【符号の説明】
【0082】
1…ICカード処理装置、2…ICカード、11…端末装置、12…ディスプレイ、13…キーボード、14…カードリーダライタ、20…データバス、21…本体、22…ICモジュール、23…ICチップ、24…通信部、25…CPU、26…ROM、27…RAM、28…不揮発性メモリ、29…コプロセッサ、291…インターフェース部、292…初期値ストレージ、293…鍵ストレージ、294…制御部、295…初期転置処理部、296…演算部、297…鍵生成部、2911…入力レジスタ、2912…出力レジスタ、2913…初期値レジスタ、2914…鍵レジスタ。

【特許請求の範囲】
【請求項1】
制御部と、前記制御部とバスを介して接続される暗号処理部とを備える携帯可能電子装置であって、
前記制御部は、
前記暗号処理部に対して暗号処理を行うデータを前記バスを介して入力するデータ入力部と、
前記暗号処理部に対して鍵指定情報を前記バスを介して入力する鍵指定部と、
を具備し、
前記暗号処理部は、
予め鍵指定情報と暗号鍵とを対応付けて複数記憶する鍵記憶部と、
前記制御部から入力される鍵指定情報に基づいて暗号鍵を前記鍵記憶部から取得する鍵取得部と、
前記鍵取得部により取得した暗号鍵に基づいて前記制御部から入力されるデータに対して演算処理を行う第1の暗号演算部と、
前記第1の暗号演算部の処理結果を前記バスを介して前記制御部に出力する出力部と、
を具備することを特徴とする携帯可能電子装置。
【請求項2】
前記暗号処理部は、鍵指定情報を記憶する為の鍵指定情報記憶部をさらに具備し、
前記鍵指定部は、鍵指定情報を前記鍵指定情報記憶部に書き込み、
前記鍵取得部は、前記鍵指定情報記憶部に格納されている鍵指定情報と一致する鍵指定情報に対応付けられている暗号鍵を前記鍵記憶部から取得する、
ことを特徴とする請求項1に記載の携帯可能電子装置。
【請求項3】
前記制御部は、アプリケーションと鍵指定情報とを対応付けて記憶する記憶部をさらに具備し、
前記鍵指定部は、実行するアプリケーションに対応付けられている鍵指定情報を前記記憶部から取得することを特徴とする請求項1に記載の携帯可能電子装置。
【請求項4】
前記鍵取得部は、取得した暗号鍵を乱数によりスクランブルし、前記第1の暗号演算部に出力することを特徴とする請求項1に記載の携帯可能電子装置。
【請求項5】
前記制御部は、
前記暗号処理部に対して初期値指定情報を前記バスを介して入力する初期値指定部をさらに具備し、
前記暗号処理部は、
予め初期値指定情報と初期値のデータとを対応付けて複数記憶する初期値記憶部と、
前記制御部から入力される初期値指定情報に基づいて初期値のデータを前記初期値記憶部から取得する初期値取得部と、
前記初期値取得部により取得した初期値のデータと前記制御部から入力されるデータとの排他的論理和を行い、結果を前記1の暗号演算部に入力する第2の暗号演算部と、
をさらに具備することを特徴とする請求項1に記載の携帯可能電子装置。
【請求項6】
前記暗号処理部は、初期値指定情報を記憶する為の初期値指定情報記憶部をさらに具備し、
前記初期値指定部は、初期値指定情報を前記初期値指定情報記憶部に書き込み、
前記初期値取得部は、前記初期値指定情報記憶部に格納されている初期値指定情報と一致する初期値指定情報に対応付けられている初期値のデータを前記初期値記憶部から取得する、
ことを特徴とする請求項5に記載の携帯可能電子装置。
【請求項7】
前記制御部は、アプリケーションと初期値指定情報とを対応付けて記憶する記憶部をさらに具備し、
前記初期値指定部は、実行するアプリケーションに対応付けられている初期値指定情報を前記記憶部から取得することを特徴とする請求項5に記載の携帯可能電子装置。
【請求項8】
前記初期値取得部は、取得した初期値のデータを乱数によりスクランブルし、前記第2の暗号演算部に出力することを特徴とする請求項5に記載の携帯可能電子装置。
【請求項9】
前記制御部から暗号処理の割り込み要求がある場合、前記初期値記憶部は、演算途中の前記第1の暗号演算部の出力に対して識別情報を付与して記憶し、
暗号処理が再開される場合、前記初期値取得部は、前記初期値記憶部により付与した識別情報に基づいて初期値のデータを前記初期値記憶部から取得することを特徴とする請求項5に記載の携帯可能電子装置。
【請求項10】
制御部と、前記制御部とバスを介して接続される暗号処理部とを備える携帯可能電子装置の制御方法であって、
前記制御部は、
前記暗号処理部に対して暗号処理を行うデータを前記バスを介して入力し、
前記暗号処理部に対して鍵指定情報を前記バスを介して入力し、
前記暗号処理部は、
予め鍵指定情報と暗号鍵とを対応付けて複数記憶し、
前記制御部から入力される鍵指定情報に基づいて暗号鍵を予め記憶した複数の暗号鍵の中から取得し、
前記取得した暗号鍵に基づいて前記制御部から入力されるデータに対して演算処理を行い、
前記演算処理の処理結果を前記バスを介して前記制御部に出力する、
ことを特徴とする携帯可能電子装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−10218(P2011−10218A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−154008(P2009−154008)
【出願日】平成21年6月29日(2009.6.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】