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