(57)【要約】【課題】より効率的に検算処理を行うことができる携帯可能電子装置、及び携帯可能電子装置の制御方法を提供する。【解決手段】携帯可能電子装置は、前記入力されるデータに対して第１の演算処理を行い、前記第１の演算処理による第１の演算結果を記憶し、前記第１の演算結果に基づいて第２の演算処理を行い、前記第２の演算処理による第２の演算結果を記憶し、前記第２の演算結果に基づいて第３の演算処理を行い、前記第３の演算処理による第３の演算結果と、前記記憶されている第１の演算結果とを比較し、前記比較の結果において一致した場合、前記記憶されている第２の演算結果を出力するように制御する。【選択図】      図３
2010220064.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータに対して演算処理を行う携帯可能電子装置であって、
前記入力されるデータに対して第１の演算処理を行う第１の演算部と、
前記第１の演算部による第１の演算結果を記憶する第１の記憶部と、
前記第１の演算部による第１の演算結果に基づいて第２の演算処理を行う第２の演算部と、
前記第２の演算部による第２の演算結果を記憶する第２の記憶部と、
前記第２の演算結果に基づいて第３の演算処理を行う第３の演算部と、
前記第３の演算部による第３の演算結果と、前記第１の記憶部に記憶されている第１の演算結果とを比較する比較部と、
前記比較部による比較結果おいて一致した場合、前記第２の記憶部に記憶されている第２の演算結果を出力するように制御する制御部と、
を具備することを特徴とする携帯可能電子装置。
【請求項２】
前記第３の演算部は、前記第２の演算結果に対して前記第２の演算処理の逆演算処理を行うことを特徴とする請求項１に記載の携帯可能電子装置。
【請求項３】
前記第１の演算部は、前記入力されるデータに対して初段から所定段数目までの暗号処理を行い、
前記第２の演算部は、前記第１の演算結果に対して前記所定段数目から最終段までの暗号処理を行い、
前記第３の演算部は、前記第２の演算結果に対して前記最終段から所定段数目までの復号処理を行うことを特徴とする請求項１に記載の携帯可能電子装置。
【請求項４】
前記初段乃至最終段までの暗号鍵と、前記最終段から前記所定段数目までの暗号鍵を一連の処理により出力する鍵生成部をさらに具備することを特徴とする請求項３に記載の携帯可能電子装置。
【請求項５】
入力されるデータに対して演算処理を行う携帯可能電子装置であって、
前記入力されるデータに対して第１の演算処理を行う第１の演算部と、
前記第１の演算部による第１の演算結果を記憶する第１の記憶部と、
前記第１の演算部による第１の演算結果に基づいて第２の演算処理を行う第２の演算部と、
前記第２の演算部による第２の演算結果を記憶する第２の記憶部と、
前記第２の演算部により処理終了後に、前記第１の記憶部により記憶されている前記第１の演算結果に基づいて前記第２の演算処理を再び行う再演算部と、
前記再演算部による再演算結果と、前記第２の記憶部に記憶されている第２の演算結果とを比較する比較部と、
前記比較部による比較結果おいて一致した場合、前記第２の記憶部に記憶されている第２の演算結果を出力するように制御する制御部と、
を具備することを特徴とする携帯可能電子装置。
【請求項６】
前記第１の演算部は、前記入力されるデータに対して初段から所定段数目までの暗号処理を行い、
前記第２の演算部は、前記第１の演算結果に対して前記所定段数目から最終段までの暗号処理を行い、
前記再演算部は、前記第１の記憶により記憶されている前記第１の演算結果に対して前記最終段から所定段数目までの暗号処理を行うことを特徴とする請求項５に記載の携帯可能電子装置。
【請求項７】
前記初段乃至最終段までの暗号鍵と、前記所定段数目から前記最終段までの暗号鍵を一連の処理により出力する鍵生成部をさらに具備することを特徴とする請求項６に記載の携帯可能電子装置。
【請求項８】
入力されるデータに対して演算処理を行う携帯可能電子装置に用いられる制御方法であって、
前記入力されるデータに対して第１の演算処理を行い、
前記第１の演算処理による第１の演算結果を記憶し、
前記第１の演算結果に基づいて第２の演算処理を行い、
前記第２の演算処理による第２の演算結果を記憶し、
前記第２の演算結果に基づいて第３の演算処理を行い、
前記第３の演算処理による第３の演算結果と、前記記憶されている第１の演算結果とを比較し、
前記比較の結果において一致した場合、前記記憶されている第２の演算結果を出力するように制御する、
ことを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、外部装置からのコマンドに応じて処理を行う携帯可能電子装置、及び携帯可能電子装置の制御方法に関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵとを有している。
【０００３】
ＩＣカードは、例えば、ＩＳＯ／ＩＥＣ７８１６−１ｐａｒｔ１，２に準拠したＩＣカードである。ＩＣカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ＩＣカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【０００４】
通常、ＩＣカードは、保持している機密性の高い情報を第三者に不正に読み取れないように、データを暗号化して送受信を行う。ＩＣカードは、例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、またはＲＳＡ暗号方式等の規格により暗号化を行う。
【０００５】
しかし、従来のＩＣカードは、特定の条件により誤動作を起こす可能性があり、誤動作を起こした場合、ＩＣカードに記憶されている情報が不正に読み出される可能性がある。
【０００６】
そこで、暗号化処理（復号処理）の演算を２度行う、または逆演算を行い、処理結果を比較し、一致した場合のみ結果を出力する技術が提供されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１５４９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記した技術は、処理に時間がかかるという問題がある。即ち、上記の技術を備えるＩＣカードは、入力されるデータに対して２度演算を行い、さらに結果を比較する必要がある。
【０００９】
近年、暗号処理をソフトウェアではなくハードウェアにより行うことで、処理を高速化する技術が実現されている。しかし、上記した技術により検算を行う場合、演算を行う毎にハードウェアを起動する必要がある為、十分に高速な処理を行う事ができないという問題がある。
【００１０】
そこで、本発明の目的は、より効率的に検算処理を行うことができる携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一実施形態としての携帯可能電子装置は、入力されるデータに対して演算処理を行う携帯可能電子装置であって、前記入力されるデータに対して第１の演算処理を行う第１の演算部と、前記第１の演算部による第１の演算結果を記憶する第１の記憶部と、前記第１の演算部による第１の演算結果に基づいて第２の演算処理を行う第２の演算部と、前記第２の演算部による第２の演算結果を記憶する第２の記憶部と、前記第２の演算結果に基づいて第３の演算処理を行う第３の演算部と、前記第３の演算部による第３の演算結果と、前記第１の記憶部に記憶されている第１の演算結果とを比較する比較部と、前記比較部による比較結果おいて一致した場合、前記第２の記憶部に記憶されている第２の演算結果を出力するように制御する制御部と、を具備する。
【００１２】
また、本発明の一実施形態としての携帯可能電子装置の制御方法は、入力されるデータに対して演算処理を行う携帯可能電子装置に用いられる制御方法であって、前記入力されるデータに対して第１の演算処理を行い、前記第１の演算処理による第１の演算結果を記憶し、前記第１の演算結果に基づいて第２の演算処理を行い、前記第２の演算処理による第２の演算結果を記憶し、前記第２の演算結果に基づいて第３の演算処理を行い、前記第３の演算処理による第３の演算結果と、前記記憶されている第１の演算結果とを比較し、前記比較の結果において一致した場合、前記記憶されている第２の演算結果を出力するように制御する。
【発明の効果】
【００１３】
この発明の一形態によれば、より効率的に検算処理を行うことができる携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の一実施形態に係る携帯可能電子装置、及び携帯可能電子装置の制御方法の構成の例について説明するためのブロック図である。
【図２】図２は、図１に示すＩＣカードの構成例について説明するためのブロック図である。
【図３】図３は、図２に示す暗号処理部の構成及び動作について説明するための説明図である。
【図４】図４は、図３に示す暗号処理部により行われる処理について説明するためのフローチャートである。
【図５】図５は、図３に示す暗号処理部により行われる処理の他の例について説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、本発明の一実施形態に係る携帯可能電子装置、及び携帯可能電子装置の制御方法について詳細に説明する。
【００１６】
図１は、本発明の一実施形態に係る携帯可能電子装置、及び携帯可能電子装置の制御方法の構成の例について説明するためのブロック図である。  
図１は、本実施形態に係るＩＣカード２と通信を行うＩＣカード処理装置１の構成例について説明するためのブロック図である。  
図１に示すようにＩＣカード処理装置１は、端末装置１１、ディスプレイ１２、キーボード１３、及びカードリーダライタ１４などを有している。
【００１７】
端末装置１１は、ＣＰＵ、種々のメモリ、及び各種インターフェースなどを備える。端末装置１１は、ＩＣカード処理装置１全体の動作を制御する。
【００１８】
ディスプレイ１２は、端末装置１１の制御により種々の情報を表示する。キーボード１３は、ＩＣカード処理装置１の操作者による操作を操作信号として受け取る。
【００１９】
カードリーダライタ１４は、ＩＣカード２と通信を行うためのインターフェース装置である。カードリーダライタ１４は、ＩＣカード２に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【００２０】
端末装置１１は、カードリーダライタ１４によりＩＣカード２に対して種々のコマンドを入力する。ＩＣカード２は、例えば、カードリーダライタ１４からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
【００２１】
また、端末装置１１は、ＩＣカード２に読み取りコマンドを送信することにより、ＩＣカード２からデータを読み出す。端末装置１１は、ＩＣカード２から受信したデータに基づいて種々の処理を行う。
【００２２】
図２は、図１に示すＩＣカード２の構成例について説明するためのブロック図である。  
図２に示すように、ＩＣカード２は、カード状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備えている。ＩＣモジュール２２は、１つ又は複数のＩＣチップ２３と、通信部２４とを備える。ＩＣチップ２３と通信部２４とは、互いに接続された状態でＩＣモジュール２２に形成されている。
【００２３】
ＩＣチップ２３は、通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、及び暗号処理部２９などを備えている。
【００２４】
ＩＣカード２は、ＩＣカード処理装置１などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ＩＣカード２が接触式通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触式のＩＣカードで構成される場合、ＩＣカード２は、通信部としてのコンタクト部などを介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２５】
また、ＩＣカード２が非接触式の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信部としてのアンテナなどを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００２６】
通信部２４は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェースである。  
通信部２４は、例えば、ＩＣカード処理装置１のカードリーダライタ１４と接触して信号の送受信を行うコンタクト部を備える。この場合、ＩＣカード２は、接触式のＩＣカードとして機能する。  
また、通信部２４は、例えば、ＩＣカード処理装置１のカードリーダライタ１４と無線通信を行うアンテナを備える。この場合、ＩＣカード２は、非接触式のＩＣカードとして機能する。
【００２７】
ＣＰＵ２５は、ＩＣカード２全体の制御を司る。ＣＰＵ２５は、ＲＯＭ２６あるいは不揮発性メモリ２８に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００２８】
ＲＯＭ２６は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２６は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２内に組み込まれる。即ち、ＲＯＭ２６に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２９】
ＲＡＭ２７は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２７は、ＣＰＵ２５の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２７は、通信部２４を介してＩＣカード処理装置１から受信したデータを一時的に格納する。また、ＲＡＭ２７は、ＣＰＵ２５が実行するプログラムを一時的に格納する。
【００３０】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。不揮発性メモリ２８は、ＩＣカード２の運用用途に応じて制御プログラム及び種々のデータを格納する。
【００３１】
たとえば、不揮発性メモリ２８では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。ＣＰＵ２５は、不揮発性メモリ２８、または、ＲＯＭに記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００３２】
暗号処理部２９は、暗号鍵を用いて暗号化されたデータの復号、及び、平文のデータの暗号化を行う。
【００３３】
図３は、図２に示す暗号処理部２９の構成及び動作について説明するための説明図である。なお、ここでは、暗号処理部２９は、ＤＥＳにより暗号処理を行うとして説明するが、これに限定されない。例えば、ＡＥＳなどにより暗号処理を行う場合であっても、同様に本発明を実施することができる。また、暗号処理ではなく復号処理を行う場合であっても、同様に本発明を実施することができる。
【００３４】
本実施形態に係る暗号処理部２９は、非線形処理を含む一定の処理を１６回（通常１６段という）行う。誤動作により不正にデータを出力しない為に、暗号処理部２９は、検算を行う。即ち、暗号処理部２９は、この検算の結果が問題ない場合にのみデータを出力する。
【００３５】
この為に、本実施形態では、暗号処理部２９は、１０段目の中間結果を一時的に格納し、１６段目まで処理し、１６段目の処理結果を用いて１０段目まで逆演算を行い、１０段目における処理結果を比較する。比較結果が一致する場合、暗号処理部２９は、１６段目における処理結果を出力する。
【００３６】
暗号処理部２９は、初期転置処理部２９１、演算部２９２、鍵生成部２９３、制御部２９４、中間レジスタ２９５、最終レジスタ２９６、及び比較部２９７などを備えている。また、暗号処理部２９は、図示しない入力レジスタ（データ入力部）、及び出力バッファ（データ出力部）などをさらに備えている。
【００３７】
初期転置処理部２９１は、暗号処理部２９に入力されたデータの並べ替えを行う。例えば、６４ビットのデータが入力された場合、初期転置処理部２９１は、入力された６４ビットのデータを３２ビットずつに区切る。初期転置処理部２９１は、上位の３２ビットを第１の入力データＬｉ、下位の３２ビットを第２の入力データＲｉとして演算部２９２にそれぞれ入力する。
【００３８】
演算部２９２は、入力されたデータと鍵生成部２９３とに基づいて演算を行い、データの暗号化（複合化）する処理を行う。
【００３９】
鍵生成部２９３は、予め共通暗号鍵を記憶している。鍵生成部２９３は、記憶している共通暗号鍵に対して、転置処理、変換処理、及びシフト処理を行い、巡回鍵を生成する。ＤＥＳによる暗号化処理は、通常、第１段から第１６段の処理を有している。即ち、暗号処理部２９は、演算部２９２にデータを入力し、その演算結果である出力を得る処理を１つの段として、１６段の処理を繰り返す。鍵生成部２９３は、各段に毎に異なる鍵Ｋ１乃至Ｋ１６（Ｋｎ）を逐次生成し、演算部２９２に供給する。
【００４０】
演算部２９２は、入力データＬｉ及び入力データＲｉに基づいて、演算を行い、出力データＬｏ及び出力データＲｏを出力する。演算部２９２は、鍵生成部２９３から供給される鍵ＫｎとＲｉとに基づいて、Ｆ関数の演算を行う。即ち、演算部２９２は、変換処理、及び排他的論理和などの演算を行う。演算部２９２は、この演算結果と、Ｌｉとで排他的論理和を行う。演算部は、この結果を出力データＲｏとして出力する。また、演算部２９２は、入力データＲｉを出力データＬｏとして出力する。これにより、演算部による１段の処理が終了する。
【００４１】
例えば、１段目の暗号処理を行う場合、演算部２９２は、鍵生成部２９３から鍵Ｋ１を受け取る。また、２段目の暗号処理を行う場合、演算部２９２は、鍵生成部２９３から鍵Ｋ２を受け取る。
【００４２】
また、例えば、２段目の暗号処理の出力結果に対して再び鍵Ｋ２を用いて演算処理を行う場合、１段目の暗号処理の出力結果と同一のデータが出力される。即ち、演算部２９２は、暗号処理に用いられた鍵を用いて演算処理を行うことにより、暗号化されたデータを復号することができる。
【００４３】
例えば、１乃至１６段の暗号処理により暗号化されたデータを複合する場合、演算部２９２は、鍵Ｋ１６乃至Ｋ１を順に用いて演算処理を行うことにより元の平文データを取得することができる。
【００４４】
制御部２９４は、演算部２９２による処理が何段目であるかをカウントする。制御部２９４は、演算部２９２による処理結果を受け取り、カウントした段数に応じて適宜出力先を選択する。
【００４５】
例えば、演算部２９２による処理が１段目乃至９段目である場合、制御部２９４は、出力データＬｏ及びＲｏを演算部２９２に入力する。演算部は入力されたＬｏ及びＲｏに対して、繰り返し上記した処理を行う。
【００４６】
また、例えば、演算部２９２による処理が１０段目である場合、制御部２９４は、出力データＬｏ及びＲｏを中間レジスタ２９５に入力する。中間レジスタ２９５は、出力データＬｏ及びＲｏを一時的に記憶する。即ち、中間レジスタ２９５は、１０段目の処理における出力データ（中間結果）を記憶する。中間レジスタ２９５は、制御部２９４から受信したデータを記憶し、同データを演算部２９２に供給する。
【００４７】
また、例えば、演算部２９２による処理が１６段目である場合、制御部２９４は、出力データＬｏ及びＲｏを最終レジスタ２９６に出力する。最終レジスタ２９６は、出力データＬｏ及びＲｏを一時的に記憶する。即ち、最終レジスタ２９６は、１６段目の処理における出力データ（最終結果）を記憶する。最終レジスタ２９６は、制御部２９４から受信したデータを記憶し、同データを演算部２９２に供給する。
【００４８】
演算部２９２は、供給された１６段目の出力データに対して、１６段乃至１１段の逆演算処理、即ち復号処理を行う。即ち、この場合、鍵生成部２９３は、鍵Ｋ１６乃至Ｋ１１を順に演算部２９２に供給する。演算部２９２は、上記した処理を、鍵Ｋ１６乃至Ｋ１１を用いて順に行う。
【００４９】
制御部２９４は、演算部２９２における処理が逆演算処理における１１段目であると判断した場合、１１段目の出力結果（検算データ）を比較部２９７に出力する。同時に、制御部２９４は、中間レジスタ２９５に格納されている中間結果を比較部２９７に出力するように制御する。
【００５０】
比較部２９７は、検算データと中間結果とが一致するか否か判定する。一致すると判定した場合、一致した旨を示す判定結果を制御部２９４に出力する。制御部２９４は、一致の判定結果を受信した場合、最終レジスタ２９６に格納されている最終結果を上記した一連の暗号処理の処理結果として暗号処理部２９から出力する。
【００５１】
上記のような暗号処理を行う為に、鍵生成部２９３は、例えば鍵Ｋ１乃至Ｋ１６、鍵Ｋ１６乃至Ｋ１１を順に出力する構成をハードウェアにより備えている。即ち、この構成よると、ハードウェアを２度起動することなく、逆演算により検算を行う事ができる。
【００５２】
また、上記した例では、１０段目の処理結果を中間結果として格納し、比較する構成として説明したが、これに限定されない。逆演算の結果と比較する段はどの段であっても本発明を実現することができる。但し、通常、外乱により不正な出力を得る手法が用いられる場合、後半の段（例えば、１０段目乃至１５段目）を処理するタイミングで仕掛けられる可能性が高い。この為、１６段のうちの後半の段の処理結果を中間結果として格納しておくことにより、より効果的に攻撃を防ぐことができる。
【００５３】
また、復号処理を行う場合、１６段目から１段目まで順に処理する。この為、後半の段（例えば、７段目乃至２段目）の処理結果を中間結果として格納する構成となる。またこの場合、鍵生成部２９３は、例えば鍵Ｋ１６乃至Ｋ１、鍵Ｋ１乃至Ｋ１１を順に出力する構成をハードウェアにより備えている。
【００５４】
図４は、図３に示す暗号処理部２９により行われる処理について説明するためのフローチャートである。  
まず、データが暗号処理部２９に入力される（ステップＳ１１）。初期転置処理部２９１は、入力されたデータを上位３２ビットのデータ、及び下位３２ビットのデータに分割し、演算部２９２に入力する。
【００５５】
演算部２９２は、入力されたデータに基づいて、１段目から１０段目までの演算処理を行う（ステップＳ１２）。制御部２９４は、１０段目の処理結果を中間レジスタ２９５に格納する（ステップＳ１３）。
【００５６】
演算部２９２は、１１段目から１６段目までの演算処理を行う（ステップＳ１４）。制御部２９４は、１６段目の処理結果を最終レジスタ２９６に格納する（ステップＳ１５）。
【００５７】
演算部２９２は、１６段目から１１段目までの逆演算処理を行う（ステップＳ１６）。比較部２９７は、逆演算処理における１１段目の処理結果と、中間レジスタ２９５に格納されている中間結果とを比較し、一致するか否か判定する。（ステップＳ１８）。
【００５８】
比較結果が一致する場合（ステップＳ１８、ＹＥＳ）、制御部２９４は、最終レジスタ２９６に格納されている最終結果を暗号処理部２９から出力する（ステップＳ１９）。また、比較結果が一致しない場合（ステップＳ１８、ＮＯ）、制御部２９４は、エラーを示す情報を暗号処理部２９から出力する（ステップＳ２０）。
【００５９】
上記したように、本実施形態の暗号処理部２９は、暗号処理及び復号処理の一連の処理において、中間結果と最終結果とを格納し、最終結果に基づいて中間結果を保存した段まで逆演算を行う。暗号処理部２９は、中間結果と逆演算処理の結果とを比較し、一致した場合のみ最終結果を出力する。これにより、外乱による不正な読み出しを防ぎ、且つ、処理時間を短縮することができる。この結果として、より効率的に検算処理を行うことができる携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することができる。
【００６０】
例えば、暗号処理部２９の検算検証処理をソフトウェアにより構成する場合の処理時間（ハードウェアの処理時間×２＋ソフトウェアによるデータの退避、及び比較などの処理時間）を、ハードウェアの処理時間＋数段分の処理時間（数クロック〜数十クロック）に抑えることができる。また、暗号処理部２９の検算検証処理をハードウェアにより構成する場合の処理時間（ハードウェアの処理時間×２）を、ハードウェアの処理時間＋数段分の処理時間に抑えることができる。
【００６１】
なお、上記した実施形態では、中間結果を格納し、最終結果からの逆演算の結果と比較する構成として説明したが、これに限定されない。例えば、中間結果から通常の演算処理を行い、最終結果同士で比較を行う構成であってもよい。
【００６２】
この場合、制御部２９４は、例えば、演算部２９２による１段目乃至９段目の処理の処理結果を演算部２９２に入力する。
【００６３】
演算部２９２による処理が１０段目である場合、制御部２９４は、出力データＬｏ及びＲｏを中間レジスタ２９５に入力する。中間レジスタ２９５は、出力データＬｏ及びＲｏを一時的に記憶する。
【００６４】
演算部２９２による処理が１６段目である場合、制御部２９４は、出力データＬｏ及びＲｏを最終レジスタ２９６に出力する。最終レジスタ２９６は、出力データＬｏ及びＲｏを一時的に記憶する。
【００６５】
制御部２９４は、中間レジスタ２９５に格納されている中間結果を演算部２９２に入力するように制御する。演算部２９２は、入力された中間結果に基づいて、１１段目乃至１６段目の再演算処理を行う。制御部２９４は、１６段目の処理結果（検算データ）を比較部２９７に出力する。同時に、制御部２９４は、最終レジスタ２９６に格納されている最終結果を比較部２９７に出力するように制御する。
【００６６】
比較部２９７は、検算データと最終結果とが一致するか否か判定する。一致すると判定した場合、一致した旨を示す判定結果を制御部２９４に出力する。制御部２９４は、一致の判定結果を受信した場合、最終レジスタ２９６に格納されている最終結果を上記した一連の暗号処理の処理結果として暗号処理部２９から出力する。
【００６７】
上記のような暗号処理を行う為に、鍵生成部２９３は、例えば鍵Ｋ１乃至Ｋ１６、鍵Ｋ１１乃至Ｋ１６を順に出力する構成をハードウェアにより備えている。
【００６８】
図５は、図３に示す暗号処理部２９により行われる処理の他の例について説明するためのフローチャートである。  
まず、データが暗号処理部２９に入力される（ステップＳ２１）。初期転置処理部２９１は、入力されたデータを上位３２ビットのデータ、及び下位３２ビットのデータに分割し、演算部２９２に入力する。
【００６９】
演算部２９２は、入力されたデータに基づいて、１段目から１０段目までの演算処理を行う（ステップＳ２２）。制御部２９４は、１０段目の処理結果を中間レジスタ２９５に格納する（ステップＳ２３）。
【００７０】
演算部２９２は、１１段目から１６段目までの演算処理を行う（ステップＳ２４）。制御部２９４は、１６段目の処理結果を最終レジスタ２９６に格納する（ステップＳ２５）。
【００７１】
演算部２９２は、中間レジスタに格納されている中間結果を入力データとして、１１段目から１６段目までの再演算処理を行う（ステップＳ２６）。比較部２９７は、再演算処理における１６段目の処理結果と、最終レジスタ２９６に格納されている最終結果とを比較し、一致するか否か判定する。（ステップＳ２８）。
【００７２】
比較結果が一致する場合（ステップＳ２８、ＹＥＳ）、制御部２９４は、最終レジスタ２９６に格納されている最終結果を暗号処理部２９から出力する（ステップＳ２９）。また、比較結果が一致しない場合（ステップＳ２８、ＮＯ）、制御部２９４は、エラーを示す情報を暗号処理部２９から出力する（ステップＳ３０）。
【００７３】
上記した方法においても、外乱による不正な読み出しを防ぎ、且つ、処理時間を短縮することができる。この結果として、より効率的に検算処理を行うことができる携帯可能電子装置、及び携帯可能電子装置の制御方法を提供することができる。
【００７４】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【００７５】
例えば、中間結果を格納する段を、上記の一連の処理を実行する毎に変える構成であってもよい。この場合、暗号処理部２９は、乱数により中間結果を保存する段を、例えば１０段目乃至１５段目の中から乱数に基づいて決定する。また、鍵生成部２９３は、決定した段に応じた巡回鍵を適宜出力する。この構成により、よりセキュリティ性を高めることができる。
【００７６】
また、上記した実施形態では、暗号処理部２９をハードウェアにより構成する例について説明したが、ソフトウェアにより構成されている場合においても、本発明を適用することができる。また、本発明を適用することにより、処理時間の短縮化を図ることができる。
【符号の説明】
【００７７】
１…ＩＣカード処理装置、２…ＩＣカード、１１…端末装置、１２…ディスプレイ、１３…キーボード、１４…カードリーダライタ、２１…本体、２２…ＩＣモジュール、２３…ＩＣチップ、２４…通信部、２５…ＣＰＵ、２６…ＲＯＭ、２７…ＲＡＭ、２８…不揮発性メモリ、２９…暗号処理部、２９１…初期転置処理部、２９２…演算部、２９３…鍵生成部、２９４…制御部、２９５…中間レジスタ、２９６…最終レジスタ、２９７…比較部。
【図１】
2010220064.tif 000003
【図２】
2010220064.tif 000004
【図３】
2010220064.tif 000005
【図４】
2010220064.tif 000006
【図５】
2010220064.tif 000007