(57)【要約】【課題】接触方式と非接触方式とのいずれの方式でも動作可能なバッテリレスのＩＣカードにおいて、低消費電力化のために非接触環境時にクロック周波数を下げ場合にも、コプロセッサの処理性能の低下を抑え、非接触環境時でも高速処理を可能とするＩＣカードを提供する。【解決手段】デュアルインターフェースカード１０００は、接触方式と非接触方式とのいずれの方式でも動作可能なバッテリレスのＩＣカードである。デュアルインターフェースカード１０００は、接触方式では高クロックで動作し、非接触環境では低クロックで動作する。デュアルインターフェースカード１０００の基本演算回路群０１０３は、接触環境下では、１サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの基本演算を実行し、非接触環境下では、１サイクルで、処理対象演算のうちの少なくとも２つの基本演算を順次に実行する。【選択図】図１
2010117922.tif 000002
【特許請求の範囲】
【請求項１】
クロックを供給されて演算を実行する演算装置であって、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置において、
前記高クロックモードでは、前記クロック周波数の１サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
前記低クロックモードでは、前記クロック周波数の１サイクルで、前記処理対象演算のうちの少なくとも２つの前記基本演算を順次に実行する演算実行部を備えたことを特徴とする演算装置。
【請求項２】
前記演算装置は、
前記高クロックモードのクロック周波数が供給される場合には前記高クロックモードを示す高クロックモード情報を出力し、前記低クロックモードのクロック周波数が供給される場合には前記低クロックモードを示す低クロックモード情報を出力する外部回路から、前記高クロックモード情報と前記低クロックモード情報とのいずれかを、供給されるクロック周波数に対応して入力し、記憶するクロックモード記憶部を備え、
前記演算実行部は、
前記クロックモード記憶部に前記高クロックモード情報が記憶された場合には前記クロック周波数の１サイクルで、前記処理対象演算のうちの一つの前記基本演算を実行し、
前記クロックモード記憶部に前記低クロックモード情報が記憶された場合には前記クロック周波数の１サイクルで、前記処理対象演算のうちの少なくとも２つの前記基本演算を順次に実行することを特徴とする請求項１記載の演算装置。
【請求項３】
前記演算装置は、
接触方式と非接触方式とのいずれの方式によっても相手方の装置から電力の供給を受けて動作可能であると共に、
前記クロックモード記憶部は、
前記接触方式により前記相手方の装置から電力の供給を受ける時には前記外部回路から前記高クロックモード情報を入力して記憶し、前記非接触方式により前記相手方の装置から電力の供給を受ける時には前記外部回路から前記低クロックモード情報を入力して記憶することを特徴とする請求項２記載の演算装置。
【請求項４】
前記クロックモード記憶部は、
前記外部回路から製品用途に応じて、前記高クロックモード情報と前記低クロックモード情報とのいずれかを入力して記憶することを特徴とする請求項２記載の演算装置。
【請求項５】
前記処理対象演算は、
各基本演算ごとに、前記基本演算の前に実行するべき初期化処理を有し、
前記演算実行部は、
前記高クロックモードでは、前記クロック周波数の１サイクルで、一つの前記基本演算と一つの前記初期化処理とのいずれかを実行し、
前記低クロックモードでは、前記クロック周波数の１サイクルで、少なくとも一つの前記基本演算と少なくとも一つの前記初期化処理とを順次に実行することを特徴とする請求項１〜４のいずれかに記載の演算装置。
【請求項６】
前記処理対象演算は、
暗号化演算であることを特徴とする請求項１〜５のいずれかに記載の演算装置。
【請求項７】
前記請求項１〜６のいずれかに記載の演算装置を備えたことを特徴とするＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード
【請求項８】
クロックを供給されて演算を実行すると共に、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置が実行する演算処理方法において、
前記演算装置は、
前記高クロックモードでは、前記クロック周波数の１サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
前記低クロックモードでは、前記クロック周波数の１サイクルで、前記処理対象演算のうちの少なくとも２つの前記基本演算を順次に実行することを特徴とする演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、接触方式と非接触方式の両方式を１つのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップで対応するデュアルインターフェースカードにおいて、それぞれの環境に適した暗号演算を行う演算装置に関する。
【背景技術】
【０００２】
近年、交通機関の自動改札やオフィスへの入退室を、非接触型のバッテリレスのＩＣカードで運用する環境が普及している。「非接触型」（非接触方式）とは、例えば相手方の装置であるリーダライタ装置と非接触において、ＩＣカードはリーダライタ装置から受信する電波から動作電力を生成する方式である。
【０００３】
また、銀行のＡＴＭ（Ａｕｔｏｍａｔｅｄ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）やＥＴＣ（Ｅｌｅｃｔｒｏｎｉｃ  Ｔｏｌｌ  Ｃｏｌｌｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）車載器などのシステムにおいては、接触型のＩＣカードが一般的に利用されている。「接触型」（接触方式）とは、例えばＩＣカードが相手方の装置であるＥＴＣ車載器と直接に接続し、この接続状態において、ＥＴＣ車載器から動作電力を供給される方式である。
【０００４】
一方で、これらインフラの利用者からは、複数のカードを持ち歩きたくないというニーズや、高機能化のために、それぞれのインフラにおける利用情報の共有が必要であり、このため接触・非接触の両方式に対応するデュアルインターフェースカードの普及が進んでいる。デュアルインターフェースカードを実現する上でコスト及び機能面から優位性の高いものは、１つのＩＣチップで両方式を達成する形態である。
【０００５】
ところが、接触及び非接触環境では、ＩＣチップの動作環境が大きくことなる。特に、非接触環境では接触環境よりも少ない消費電力、かつ消費電力の変動を抑えた条件において必要な処理を行うことが求められる。このため、一般に非接触環境では、接触環境よりも低いクロック周波数をＩＣチップに供給するのが一般的である。
【０００６】
従来のデュアルインターフェースカードに対応するＩＣチップでは、ＩＣチップに供給される電力量を監視し、受信電力量が少ないときにはＩＣチップ内部の機能を一部停止することで低消費電力化を行っていた。例えば、特許文献１では、ＩＣチップを構成するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、コプロセッサに対して、電力量の監視結果が非接触環境であれば、コプロセッサ動作時にはＣＰＵやメモリへのクロック供給を止め、ＣＰＵ動作時にはコプロセッサ、メモリへのクロック供給を止めることで低消費電力化を行っている。また、電力量の監視結果が接触環境であれば、ＣＰＵ、メモリ、コプロセッサをそれぞれ並列動作させ、高速動作を実現している。
【０００７】
ここで、ＩＣチップにおけるコプロセッサとして代表例としては、暗号処理を行うコプロセッサがある。暗号処理を行うコプロセッサの低消費電力化を実現する従来技術としては、回路規模の小型化と、信号到達時刻のばらつきを抑えることで解決する方法も非特許文献１で提案されている。
【特許文献１】特開２００４−２０６４０９号公報  非接触式ＩＣカード
【非特許文献１】Ｍｏｒｉｏｋａ，  Ｓ．  ａｎｄ  Ｓａｔｏｈ，  Ａ．：  Ａｎ  Ｏｐｔｉｍｉｚｅｄ  Ｓ−Ｂｏｘ  Ｃｉｒｃｕｉｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｌｏｗ  Ｐｏｗｅｒ  ＡＥＳ  Ｄｅｓｉｇｎ，  ＣＨＥＳ２００２，  ＬＮＣＳ  Ｖｏｌ．２５２３，  ｐｐ．１７２−１８６（２００２）．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１における従来技術は、コプロセッサそのものの構成や動作を切り替えることを行わないため、前述のように、非接触環境時に利用する接触環境より低いクロック周波数での動作を前提とした場合、クロック周波数の減少分だけコプロセッサの処理性能は低下する。これは、非接触環境時に利用する周波数が接触環境の１／ｎとなれば、コプロセッサの処理性能も１／ｎとなることを意味する。つまり、単純なクロック周波数の減速と、クロック供給の有無を切り替えるだけでは、処理性能の大幅な低下を招くことになる。
【０００９】
一方で、非特許文献１における技術は、コプロセッサそのもの構成を最適化することで低消費電力化を図ることが可能となる。しかしながら、この技術も非接触環境の周波数が接触環境の１／ｎとなれば、コプロセッサの処理性能も１／ｎとなり、周波数の減少が直接的に処理性能の低下を招くことになる。
【００１０】
この発明は上記のような課題を解決するためになされたもので、低消費電力化のためにクロック周波数を下げても、コプロセッサの処理性能の低下を抑え、非接触環境時でも高速処理を可能とする演算装置の提供を目的とする。
【課題を解決するための手段】
【００１１】
この発明の演算装置は、
クロックを供給されて演算を実行する演算装置であって、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置において、
前記高クロックモードでは、前記クロック周波数の１サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
前記低クロックモードでは、前記クロック周波数の１サイクルで、前記処理対象演算のうちの少なくとも２つの前記基本演算を順次に実行する演算実行部を備えたことを特徴とする。
【発明の効果】
【００１２】
この発明により、低消費電力化のためにクロック周波数を下げても、コプロセッサの処理性能の低下を抑え、非接触環境時でも高速処理を可能とするＩＣカードを提供することができる。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
図１〜図３を参照して実施の形態１のＩＣカードを説明する。以下の実施の形態１〜３では動作モード（演算処理方式）を切り替えるケースとして、接触、非接触の例を挙げて説明するが、これは一例である。例えば、製品用途に応じて、ＩＣカードの動作電圧、動作周波数、消費電流などの仕様が相違するからである。製品用途としては、ＥＴＣなどの交通用途向け、キャッシュカードやクレジットカードなどの金融用途向け、携帯電話などの通信用途向け、あるいはこれらの複合用途向けなどが考えられる。
【００１４】
まず、実施の形態１を説明する。図１に、実施の形態１におけるデュアルインターフェースカード１０００（ＩＣカード）のブロック構成図を示す。なお、図１は、デュアルインターフェースカード１０００の主要構成部のみを示している。デュアルインターフェースカード１０００は相手方の装置から動作電力の供給を受けるバッテリレスのＩＣカードである。デュアルインターフェースカード１０００は、クロックを生成するクロックジェネレータ１０、外部回路（例えばＣＰＵ）２０、暗号コプロセッサ１０１（演算装置の一例）を備える。暗号コプロセッサ１０１は、クロックジェネレータ１０からクロックを供給されて演算を実行する演算装置である。後述のように、暗号コプロセッサ１０１は、所定のクロック周波数（ｆｃ）が供給される接触環境（高クロックモード）と、接触環境よりも低い所定のクロック周波数（ｆｌ）が供給される非接触環境（低クロックモード）とのいずれのモードでも演算が実行可能である。
【００１５】
また、暗号コプロセッサ１０１（演算装置）は、制御用レジスタ１０２（クロックモード記憶部）、入力レジスタ１０４、出力レジスタ１０５、中間値格納レジスタ１０６、暗号コプロセッサ制御回路１０７、基本演算回路群１０３（演算実行部）を備えている。
【００１６】
入力レジスタ１０４は、ＣＰＵ等の外部回路から設定される演算対象データを格納する。また、出力レジスタ１０５は、演算結果を格納するためのレジスタである。中間値格納レジスタ１０６は、暗号アルゴリズムを処理する過程で発生する中間値を格納するためのレジスタである。装置の実施形態によっては、出力レジスタ１０５及び中間値格納レジスタ１０６は入力レジスタ１０４と部分的あるいはすべて共有化してもよいが、図１では以降の説明を簡便にするために別々に表記している。
【００１７】
暗号コプロセッサ１０１は、ある特定の暗号アルゴリズムを処理するものとする。暗号アルゴリズムの例としては、ＡＥＳ、ＳＨＡ−２５６、ＲＳＡ（登録商標）などがある。ここで、暗号アルゴリズム（処理対象演算の一例）は基本処理（基本演算）である基本処理ＯＰ１からＯＰｎまでのｎ種類の処理で構成されるものとする。また、接触環境（接触方式）における最大動作周波数をｆｃとし、非接触環境（非接触方式）における最大動作周波数をｆｌと表記し、接触環境の最大動作周波数ｆｃは、非接触環境の最大動作周波数ｆｌよりも極めて大きいとする。すなわち、
ｆｃ＞＞ｆｌ
である。
ｆｃは、例えば、「２０ＭＨｚ」程度であり、ｆｌは例えば「３．６ＭＨｚ」程度である。さらに、基本処理ＯＰ１から基本処理ＯＰｎは、ｆｃ以下のクロック周波数において、それぞれ１サイクルで処理可能な演算器を構成可能な処理とする。
【００１８】
（暗号コプロセッサ１０１の特徴）
以下の実施の形態１〜３に示す暗号コプロセッサの特徴は、接触・非接触環境の動作モードの通知を受け取る制御用レジスタ１０２を備え、接触環境時（動作クロックｆｃ程度）には基本処理ＯＰ１からＯＰｎのうちの任意の１つの演算を、１サイクルで、基本演算回路群１０３によって処理し、また、非接触環境（動作クロックｆｌ程度）では基本処理ＯＰ１からＯＰｎのある特定の組み合わせの処理を、同一の基本演算回路群１０３によって、１サイクルで、処理する機能を備える点である。以下に動作を説明する。
【００１９】
（動作説明）
次に動作について説明する。
（１）まず、外部回路２０は、制御用レジスタ１０２に動作環境を設定する（Ｓ１１）。
（２）次に外部回路２０は、入力レジスタ１０４に演算対象データを設定する（Ｓ１２）。
（３）また、外部回路２０は、入力レジスタ１０４への演算対象データ設定が完了次第、制御用レジスタ１０２に「演算開始通知」を設定する（Ｓ１３）。
（４）暗号コプロセッサ１０１では制御用レジスタ１０２に「演算開始通知」が設定されると、暗号コプロセッサ１０１が、入力レジスタ１０４の演算対象データを中間値格納レジスタ１０６へ転送する（Ｓ１４）。
（５）中間値格納レジスタ１０６に格納された演算対象データは、基本演算回路群１０３が、暗号コプロセッサ制御回路１０７から指定される演算を、１サイクルで処理する（Ｓ１５）。
（６）そして、基本演算回路群１０３は演算結果を、再び中間値格納レジスタ１０６に格納する（Ｓ１６）。
【００２０】
（暗号コプロセッサ制御回路１０７による指定内容）
（１）このとき、制御用レジスタ１０２に設定された「動作環境」が接触環境（高クロックモード情報の一例）を表すならば、基本演算回路群１０３によって１サイクルで実行される演算は、基本処理ＯＰ１からＯＰｎのどれか１つの演算となる。すなわち、制御用レジスタ１０２に「動作環境」として「接触環境」（高クロックモード情報）が設定されている場合には、暗号コプロセッサ制御回路１０７は、基本演算回路群１０３に対して基本処理ＯＰ１からＯＰｎのどれか１つの実行を指定する。この場合、クロックジェネレータ１０はｆｃ相当のクロックを供給する。ｆｃは高い周波数であり、基本演算回路群１０３は１サイクルで一つの基本処理（基本演算）のみを実行する。
（２）一方、制御用レジスタ１０２の設定が「非接触環境」（低クロックモード情報）を表すならば、１サイクルで実行される演算は、基本処理ＯＰ１からＯＰｎにおける複数の演算の組み合わせとなる。すなわち、制御用レジスタ１０２に「動作環境」として「非接触環境」が設定されている場合には、暗号コプロセッサ制御回路１０７は、基本演算回路群１０３に対して基本処理ＯＰ１からＯＰｎのうちの複数の基本演算の組み合わせを指定する。この場合、当然にクロックジェネレータ１０はｆｌ相当の、ｆｃに比べて低いクロックを供給する。ｆｌはｆｃに比べてきわめて低い周波数のため、基本演算回路群１０３は１サイクルで複数の基本処理（基本演算）を実行する。
（３）以降、基本演算回路群１０３は、中間値格納レジスタ１０６に格納されたデータに対して演算を行い、基本演算回路群１０３により暗号アルゴリズムとして必要な全ての演算が実行される。この基本演算回路群１０３による演算が完了した段階で、中間値格納レジスタ１０６のデータは出力レジスタ１０５に転送される。また、暗号コプロセッサ制御回路１０７は外部回路２０へ演算完了を通知する。
【００２１】
図２は、処理対象の暗号アルゴリズム（処理対象演算）をＡＥＳとした場合におけるＡＥＳコプロセッサ２０１を示している。図２のＡＥＳコプロセッサ２０１は、図１の暗号コプロセッサ１０１に対応し、構成要素のＡＥＳ制御用レジスタ２０２等は暗号コプロセッサ１０１の制御用レジスタ１０２等に対応する。
【００２２】
ＡＥＳの暗号化処理は、主に、
（１）ＳｈｉｆｔＲｏｗ演算、
（２）ＳｕｂＢｙｔｅｓ演算、
（３）ＭｉｘＣｏｌｕｍｎｓ演算、
（４）ＡｄｄＲｏｕｎｄＫｅｙ演算、
の４つの演算を組み合わせて構成される演算を繰り返し行う処理である。ここで、図２では、これらの処理を実行する回路をＡＥＳ基本演算回路群２０３で持つものとする。
【００２３】
（接触環境ｆｃ）
接触環境におけるＡＥＳコプロセッサ２０１による暗号化処理の動作は、中間値格納レジスタ２０６のデータに対して、暗号コプロセッサ制御回路２０７で指定する１演算（基本演算）を、ＡＥＳ基本演算回路群２０３で実行し、中間値格納レジスタ２０６へ格納する。従って、ＡＥＳにおけるラウンド関数と呼ばれる処理を実行するためには、次の手順で処理する。
【００２４】
（１）中間値格納レジスタ２０６の値に対して、ＳｈｉｆｔＲｏｗ回路２０８によりＳｈｉｆｔＲｏｗ演算を行う。
（２）（１）の結果に対してＳｕｂＢｙｔｅｓ回路２０９によりＳｕｂＢｙｔｅｓ演算を行う。
（３）（２）の結果に対してＭｉｘＣｏｌｕｍｎｓ回路２１０によりＭｉｘＣｏｌｕｍｎｓ演算を行う。
（４）（３）の結果に対してＡｄｄＲｏｕｎｄＫｅｙ回路２１１によりＡｄｄＲｏｕｎｄＫｅｙ演算を行う。
【００２５】
ここで、接触環境下の場合にはｆｃ相当の高クロックが供給されるが、その場合、上記（１）から（４）の処理をそれぞれ１サイクル毎に実行する。その場合この処理には４サイクル掛かることになる。
【００２６】
（非接触環境ｆｌ）
一方、非接触環境下の場合、接触環境下のクロックに比べてｆｌ相当の低クロックが供給されるが、この場合、ＡＥＳ基本演算回路群２０３では、前記４つの組み合わせを１サイクルで実行するような、接触環境ｆｃからの動作モードの切り替えを行い、上記（１）から（４）の処理を１サイクルで処理する。
【００２７】
図３は、図２のＡＥＳ基本演算回路群２０３を詳細化した図である。図３のＡＥＳ基本演算回路群３０１は図２のＡＥＳ基本演算回路群２０３を具体化した一例である。図３を参照して、図２の場合をさらに具体的に説明する。
【００２８】
（接触環境ｆｃ）
接触環境下においては、図３の上部にある３つのマルチプレクサ３１１〜３１３はＡＥＳ制御用レジスタ２０２の設定に従い、０側の入力を選択する。また、暗号コプロセッサ制御回路２０７からの指定される信号値によって、どの演算を行うかを下部にあるマルチプレクサ３２１で選択して出力する。例えば、ＳｕｂＢｙｔｅｓ演算を行う場合、暗号コプロセッサ制御回路２０７からの指定される演算選択の信号値は「１」となる。
【００２９】
（非接触環境ｆｌ）
一方、非接触環境下においては、図３の上部にある３つのマルチプレクサ３１１〜３１３はＡＥＳ制御用レジスタ２０２の設定に従い、１側の入力を選択する。また、暗号コプロセッサ制御回路２０７からの指定される信号値は「３」に設定され、４つの演算を全て実行した結果を選択する。
【００３０】
実施の形態１のデュアルインターフェースカード１０００は、制御用レジスタ１０２に記憶された動作環境に応じて動作モードを切り替えるので、接触／非接触、あるいは製品規格の違いに応じて、迅速な演算処理を実現できる。
【００３１】
実施の形態２．
次に図４、図５を参照して実施の形態２を説明する。ＩＣカードにおける暗号コプロセッサでは、実装上の安全性要件を満たすためにアルゴリズムの処理を「初期化処理」と「通常処理」の２段階に分ける実装方法がある。この場合、暗号アルゴリズムが基本処理（基本演算）ＯＰ１からＯＰｎまでのｎ種類の処理で構成されるものとすれば、各基本処理（通常処理）を実行する前にそれぞれ初期化処理を行うこととなる。つまり、基本処理ＯＰ１の処理を行う場合は、ＯＰ１初期化処理を実行したあとにＯＰ１通常処理を行う。従って、初期化処理を行う場合は、通常処理のみをおこなった場合と比較して、２倍のサイクル数を必要とする。このようなケースにおける場合を実施の形態２として説明する。
【００３２】
図４は、実施の形態２におけるＡＥＳコプロセッサ４０１のブロック図である。ＡＥＳコプロセッサ４０１は、図２のＡＥＳコプロセッサ２０１に対応するが、ＡＥＳ基本演算回路群４０３は、処理対象の暗号アルゴリズムをＡＥＳとし、初期化処理と通常処理の２段階の処理を行うことを前提とした構成である。
【００３３】
前述のようにＡＥＳの暗号化処理は、主に、
（１）ＳｈｉｆｔＲｏｗ演算、
（２）ＳｕｂＢｙｔｅｓ演算、
（３）ＭｉｘＣｏｌｕｍｎｓ演算、
（４）ＡｄｄＲｏｕｎｄＫｅｙ演算、
の４つの演算を組み合わせて構成される演算を繰り返し行う処理であるが、それぞれの演算を行う前に初期化処理を行う必要がある。ここで、図４は、これらの処理を実行する回路をＡＥＳ基本演算回路群４０３で持つものとする。接触環境における暗号化処理の動作は、中間値格納レジスタ４０６のデータに対して、暗号コプロセッサ制御回路４０７で指定する１演算を、ＡＥＳ基本演算回路群４０３で実行し、中間値格納レジスタ４０６へ格納する。従って、ＡＥＳにおけるラウンド関数と呼ばれる処理を実行するためには、次の手順で処理する。
【００３４】
（１）中間値格納レジスタ４０６の値に対して、ＳｈｉｆｔＲｏｗ初期化回路４０８によりＳｈｉｆｔＲｏｗ演算の初期化を行う。
（２）ＳｈｉｆｔＲｏｗ回路４０９によりＳｈｉｆｔＲｏｗ演算を行ない、中間値格納レジスタ４０６に再格納する。
（３）中間値格納レジスタ４０６の値に対して、ＳｕｂＢｙｔｅｓ初期化回路４１０によりＳｕｂＢｙｔｅｓ演算の初期化を行う。
（４）ＳｕｂＢｙｔｅｓ回路４１１によりＳｕｂＢｙｔｅｓ演算を行ない、中間値格納レジスタ４０６に再格納する。
（５）中間値格納レジスタ４０６の値に対して、ＭｉｘＣｏｌｕｍｎｓ初期化回路４１２によりＭｉｘＣｏｌｕｍｎｓ演算の初期化を行う。
（６）ＭｉｘＣｏｌｕｍｎｓ回路４１３によりＭｉｘＣｏｌｕｍｎｓ演算を行ない、中間値格納レジスタ４０６に再格納する。
（７）中間値格納レジスタ４０６の値に対して、ＡｄｄＲｏｕｎｄＫｅｙ初期化回路４１４によりＡｄｄＲｏｕｎｄＫｅｙ演算の初期化を行う。
（８）ＡｄｄＲｏｕｎｄＫｅｙ回路４１５によりＡｄｄＲｏｕｎｄＫｅｙ演算を行う。
【００３５】
（接触環境ｆｃ）
ここで、「接触環境」の場合、上記（１）から（８）の処理をそれぞれ１サイクル毎に実行するので、この処理には８サイクルかかることになる。
【００３６】
（非接触環境ｆｌ）
一方、非接触環境下の場合、ＡＥＳ基本演算回路群４０３では初期化演算と通常演算の組み合わせを１サイクルで実行するような切り替えを行い、上記（１）から（８）の処理を４サイクルで処理する。
【００３７】
図５は、図４のＡＥＳ基本演算回路群４０３におけるＳｕｂＢｙｔｅｓ演算を代表例として、初期化処理と通常処理とについて説明する。
【００３８】
（接触環境ｆｃ）
接触環境下においては、図５のＡＥＳ基本演算回路群５０１のマルチプレクサ５０４は、ＡＥＳ制御用レジスタ４０２の設定に従い、０側の入力を選択する。従って、中間値格納レジスタ４０６から入力されたデータは、ＳｕｂＢｙｔｅｓ初期化回路５０２によって初期化演算され、内部レジスタ５０３に演算結果として格納される。次サイクルでは、内部レジスタ５０３のデータに対してＳｕｂＢｙｔｅｓ演算回路５０５により処理され、演算結果が中間値格納レジスタ４０６に返される。
【００３９】
（非接触環境ｆｌ）
一方、非接触環境下においては、図５のマルチプレクサ５０４はＡＥＳ制御用レジスタ４０２の設定に従い、１側の入力を選択する。従って、中間値格納レジスタ４０６から入力されたデータは、内部レジスタ５０３を経由せず、１サイクルでＳｕｂＢｙｔｅｓ初期化回路５０２及びＳｕｂＢｙｔｅｓ演算回路５０５により処理され、演算結果として中間値格納レジスタ４０６に返される。
【００４０】
上記の説明では、基本演算毎に初期化演算と通常演算との組み合わせを切り替える方式について説明したが、実施の形態１と組み合わせることによって、複数演算の初期化演算と通常演算の組み合わせを切り替えることも当然可能である。
【００４１】
実施の形態３．
図６、図７を参照して実施の形態３を説明する。実施の形態３は、その他、公開鍵暗号の処理に対して有用な、算術演算（乗算や加減算）を処理するコプロセッサに対しても、同様のアイデアが適用可能なことを説明する実施形態である。
【００４２】
図６は、処理対象（処理対象演算）がＡＢ＋Ｃの演算処理の場合を示している（それぞれ入力はｎ  ｂｉｔ）。また図７は、処理対象がＡＢ＋ＣＤ＋Ｅの演算処理の場合を示している（それぞれ入力はｎ  ｂｉｔ）。
【００４３】
図６の場合を説明する。
【００４４】
（接触環境ｆｃ）
接触環境下においては、コプロセッサ６０１のマルチプレクサ６０４は、制御用レジスタ１０２の設定（接触環境）に従い、０側の入力を選択する。従って、中間値格納レジスタ１０６から入力されたデータ（Ａ，Ｂ）は、２入力乗算回路６０２によって乗算され、内部レジスタ６０３に演算結果として格納される。次サイクルでは、内部レジスタ６０３のデータ（Ａ＊Ｂ）と、中間値格納レジスタ１０６からのデータＣとに対して、３入力加算回路６０５が処理を行い、演算結果（Ａ＊Ｂ＋Ｃ）を中間値格納レジスタ１０６に返す。
【００４５】
（非接触環境ｆｌ）
一方、非接触環境下においては、コプロセッサ６０１のマルチプレクサ６０４は、制御用レジスタ１０２の設定（非接触環境）に従い、１側の入力を選択する。従って、１サイクルで、中間値格納レジスタ１０６から入力されたデータ（Ａ，Ｂ）は２入力乗算回路６０２によって乗算され内部レジスタ６０３に格納されることなく中間値格納レジスタ１０６からのデータＣと３入力加算回路６０５によって処理されて演算結果（Ａ＊Ｂ＋Ｃ）として中間値格納レジスタ１０６に返される。
【００４６】
図７の場合を説明する。図７は、処理対象がＡＢ＋ＣＤ＋Ｅの演算処理（処理対象演算）の場合である。
【００４７】
（接触環境ｆｃ）
接触環境下においては、コプロセッサ７０１のマルチプレクサ７０９は、制御用レジスタ１０２の設定（接触環境）に従い、０側の入力を選択する。従って、中間値格納レジスタ１０６から入力されたデータ（Ａ，Ｂ、Ｅ）は、１サイクルで、２入力乗算回路７０２、３入力加算回路７０４を経て、内部レジスタ７０３に格納される。そして次サイクルでは、内部レジスタ７０３のデータ（Ａ＊Ｂ＋Ｅ）と、２入力乗算回路７０３を経た（Ｃ＊Ｄ）とが、３入力加算回路７０５によって加算され、（Ａ＊Ｂ＋Ｃ＊Ｄ＋Ｅ）となり、中間値格納レジスタ１０６に返される。
【００４８】
（非接触環境ｆｌ）
非接触環境下においては、コプロセッサ７０１のマルチプレクサ７０９は、制御用レジスタ１０２の設定（非接触環境）に従い、１側の入力を選択する。従って、この場合は、内部レジスタ７０３にデータは格納されることなく、１サイクルで、（Ａ＊Ｂ＋Ｃ＊Ｄ＋Ｅ）の演算処理が実行される。すなわち、１サイクルで、中間値格納レジスタ１０６から入力されたデータ（Ａ，Ｂ、Ｅ）は、２入力乗算回路７０２、３入力加算回路７０４を経てマルチプレクサ７０９を経由（この時点で、Ａ＊Ｂ＋Ｅ）し、２入力乗算回路７０８により乗算された（Ｃ＊Ｄ）と３入力加算回路７０５によって加算され（この時点で、Ａ＊Ｂ＋Ｃ＊Ｄ＋Ｅ）、中間値格納レジスタ１０６に返される。
【００４９】
以上詳述したように本実施の形態１〜３によれば、動作周波数が接触環境と比較して低く設定される非接触環境下であっても、動作モードを切り替えることにより、接触環境より少ないサイクル数で暗号処理が実現可能であり、非接触環境であっても高速処理を可能となるＩＣチップ、ＩＣカードが提供できる。
【００５０】
なお、以上の実施の形態１〜３では動作モードを切り替えて処理を実行するコプロセッサ（演算装置）を説明したが、上記コプロセッサの動作を、上記コプロセッサ（演算）が行う演算処理方法の実施形態として把握することも可能である。
【図面の簡単な説明】
【００５１】
【図１】実施の形態１におけるデュアルインターフェースカード１０００のブロック図。
【図２】実施の形態１におけるＡＥＳコプロセッサ２０１のブロック図。
【図３】実施の形態１におけるＡＥＳ基本演算回路群３０１のブロック図。
【図４】実施の形態２におけるＡＥＳコプロセッサ４０１のブロック図。
【図５】実施の形態２におけるＡＥＳ基本演算回路群５０１のブロック図。
【図６】実施の形態３におけるコプロセッサ６０１のブロック図。
【図７】実施の形態３におけるコプロセッサ７０１のブロック図。
【符号の説明】
【００５２】
１０  クロックジェネレータ、２０  外部回路、１０１  暗号コプロセッサ、１０２  制御用レジスタ、１０３  基本演算回路群、１０６  中間値格納レジスタ、１０７  暗号コプロセッサ制御回路、２０１  ＡＥＳコプロセッサ、２０２，４０２  ＡＥＳ制御用レジスタ、２０３，４０３  ＡＥＳ基本演算回路群、２０４，４０４  ＡＥＳ入力レジスタ、２０５，４０５  出力レジスタ、２０６，４０６  中間値格納レジスタ、２０７，４０７  暗号コプロセッサ制御回路、３０１，５０１  ＡＥＳ基本演算回路群、４０１  ＡＥＳコプロセッサ、６０１，７０１  コプロセッサ、１０００  デュアルインターフェースカード。
【図１】
2010117922.tif 000003
【図２】
2010117922.tif 000004
【図３】
2010117922.tif 000005
【図４】
2010117922.tif 000006
【図５】
2010117922.tif 000007
【図６】
2010117922.tif 000008
【図７】
2010117922.tif 000009