JP5300428B2 - 演算装置及び演算処理方法 - Google Patents

演算装置及び演算処理方法 Download PDF

Info

Publication number
JP5300428B2
JP5300428B2 JP2008291177A JP2008291177A JP5300428B2 JP 5300428 B2 JP5300428 B2 JP 5300428B2 JP 2008291177 A JP2008291177 A JP 2008291177A JP 2008291177 A JP2008291177 A JP 2008291177A JP 5300428 B2 JP5300428 B2 JP 5300428B2
Authority
JP
Japan
Prior art keywords
clock
clock mode
mode
supplied
low
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008291177A
Other languages
English (en)
Other versions
JP2010117922A (ja
Inventor
大輔 鈴木
稔 佐伯
雄一郎 成吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008291177A priority Critical patent/JP5300428B2/ja
Priority to US12/604,806 priority patent/US8219847B2/en
Publication of JP2010117922A publication Critical patent/JP2010117922A/ja
Priority to US13/443,507 priority patent/US9116693B2/en
Application granted granted Critical
Publication of JP5300428B2 publication Critical patent/JP5300428B2/ja
Priority to US14/819,161 priority patent/US20150338878A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)

Description

この発明は、接触方式と非接触方式の両方式を1つのIC(Integrated Circuit)チップで対応するデュアルインターフェースカードにおいて、それぞれの環境に適した暗号演算を行う演算装置に関する。
近年、交通機関の自動改札やオフィスへの入退室を、非接触型のバッテリレスのICカードで運用する環境が普及している。「非接触型」(非接触方式)とは、例えば相手方の装置であるリーダライタ装置と非接触において、ICカードはリーダライタ装置から受信する電波から動作電力を生成する方式である。
また、銀行のATM(Automated Teller Machine)やETC(Electronic Toll Collection System)車載器などのシステムにおいては、接触型のICカードが一般的に利用されている。「接触型」(接触方式)とは、例えばICカードが相手方の装置であるETC車載器と直接に接続し、この接続状態において、ETC車載器から動作電力を供給される方式である。
一方で、これらインフラの利用者からは、複数のカードを持ち歩きたくないというニーズや、高機能化のために、それぞれのインフラにおける利用情報の共有が必要であり、このため接触・非接触の両方式に対応するデュアルインターフェースカードの普及が進んでいる。デュアルインターフェースカードを実現する上でコスト及び機能面から優位性の高いものは、1つのICチップで両方式を達成する形態である。
ところが、接触及び非接触環境では、ICチップの動作環境が大きくことなる。特に、非接触環境では接触環境よりも少ない消費電力、かつ消費電力の変動を抑えた条件において必要な処理を行うことが求められる。このため、一般に非接触環境では、接触環境よりも低いクロック周波数をICチップに供給するのが一般的である。
従来のデュアルインターフェースカードに対応するICチップでは、ICチップに供給される電力量を監視し、受信電力量が少ないときにはICチップ内部の機能を一部停止することで低消費電力化を行っていた。例えば、特許文献1では、ICチップを構成するCPU(Central Processing Unit)、メモリ、コプロセッサに対して、電力量の監視結果が非接触環境であれば、コプロセッサ動作時にはCPUやメモリへのクロック供給を止め、CPU動作時にはコプロセッサ、メモリへのクロック供給を止めることで低消費電力化を行っている。また、電力量の監視結果が接触環境であれば、CPU、メモリ、コプロセッサをそれぞれ並列動作させ、高速動作を実現している。
ここで、ICチップにおけるコプロセッサとして代表例としては、暗号処理を行うコプロセッサがある。暗号処理を行うコプロセッサの低消費電力化を実現する従来技術としては、回路規模の小型化と、信号到達時刻のばらつきを抑えることで解決する方法も非特許文献1で提案されている。
特開2004−206409号公報 非接触式ICカード Morioka, S. and Satoh, A.: An Optimized S−Box Circuit Architecture for Low Power AES Design, CHES2002, LNCS Vol.2523, pp.172−186(2002).
特許文献1における従来技術は、コプロセッサそのものの構成や動作を切り替えることを行わないため、前述のように、非接触環境時に利用する接触環境より低いクロック周波数での動作を前提とした場合、クロック周波数の減少分だけコプロセッサの処理性能は低下する。これは、非接触環境時に利用する周波数が接触環境の1/nとなれば、コプロセッサの処理性能も1/nとなることを意味する。つまり、単純なクロック周波数の減速と、クロック供給の有無を切り替えるだけでは、処理性能の大幅な低下を招くことになる。
一方で、非特許文献1における技術は、コプロセッサそのもの構成を最適化することで低消費電力化を図ることが可能となる。しかしながら、この技術も非接触環境の周波数が接触環境の1/nとなれば、コプロセッサの処理性能も1/nとなり、周波数の減少が直接的に処理性能の低下を招くことになる。
この発明は上記のような課題を解決するためになされたもので、低消費電力化のためにクロック周波数を下げても、コプロセッサの処理性能の低下を抑え、非接触環境時でも高速処理を可能とする演算装置の提供を目的とする。
この発明の演算装置は、
クロックを供給されて演算を実行する演算装置であって、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置において、
前記高クロックモードでは、前記クロック周波数の1サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
前記低クロックモードでは、前記クロック周波数の1サイクルで、前記処理対象演算のうちの少なくとも2つの前記基本演算を順次に実行する演算実行部を備えたことを特徴とする。
この発明により、低消費電力化のためにクロック周波数を下げても、コプロセッサの処理性能の低下を抑え、非接触環境時でも高速処理を可能とするICカードを提供することができる。
実施の形態1.
図1〜図3を参照して実施の形態1のICカードを説明する。以下の実施の形態1〜3では動作モード(演算処理方式)を切り替えるケースとして、接触、非接触の例を挙げて説明するが、これは一例である。例えば、製品用途に応じて、ICカードの動作電圧、動作周波数、消費電流などの仕様が相違するからである。製品用途としては、ETCなどの交通用途向け、キャッシュカードやクレジットカードなどの金融用途向け、携帯電話などの通信用途向け、あるいはこれらの複合用途向けなどが考えられる。
まず、実施の形態1を説明する。図1に、実施の形態1におけるデュアルインターフェースカード1000(ICカード)のブロック構成図を示す。なお、図1は、デュアルインターフェースカード1000の主要構成部のみを示している。デュアルインターフェースカード1000は相手方の装置から動作電力の供給を受けるバッテリレスのICカードである。デュアルインターフェースカード1000は、クロックを生成するクロックジェネレータ10、外部回路(例えばCPU)20、暗号コプロセッサ101(演算装置の一例)を備える。暗号コプロセッサ101は、クロックジェネレータ10からクロックを供給されて演算を実行する演算装置である。後述のように、暗号コプロセッサ101は、所定のクロック周波数(fc)が供給される接触環境(高クロックモード)と、接触環境よりも低い所定のクロック周波数(fl)が供給される非接触環境(低クロックモード)とのいずれのモードでも演算が実行可能である。
また、暗号コプロセッサ101(演算装置)は、制御用レジスタ102(クロックモード記憶部)、入力レジスタ104、出力レジスタ105、中間値格納レジスタ106、暗号コプロセッサ制御回路107、基本演算回路群103(演算実行部)を備えている。
入力レジスタ104は、CPU等の外部回路から設定される演算対象データを格納する。また、出力レジスタ105は、演算結果を格納するためのレジスタである。中間値格納レジスタ106は、暗号アルゴリズムを処理する過程で発生する中間値を格納するためのレジスタである。装置の実施形態によっては、出力レジスタ105及び中間値格納レジスタ106は入力レジスタ104と部分的あるいはすべて共有化してもよいが、図1では以降の説明を簡便にするために別々に表記している。
暗号コプロセッサ101は、ある特定の暗号アルゴリズムを処理するものとする。暗号アルゴリズムの例としては、AES、SHA−256、RSA(登録商標)などがある。ここで、暗号アルゴリズム(処理対象演算の一例)は基本処理(基本演算)である基本処理OP1からOPnまでのn種類の処理で構成されるものとする。また、接触環境(接触方式)における最大動作周波数をfcとし、非接触環境(非接触方式)における最大動作周波数をflと表記し、接触環境の最大動作周波数fcは、非接触環境の最大動作周波数flよりも極めて大きいとする。すなわち、
fc>>fl
である。
fcは、例えば、「20MHz」程度であり、flは例えば「3.6MHz」程度である。さらに、基本処理OP1から基本処理OPnは、fc以下のクロック周波数において、それぞれ1サイクルで処理可能な演算器を構成可能な処理とする。
(暗号コプロセッサ101の特徴)
以下の実施の形態1〜3に示す暗号コプロセッサの特徴は、接触・非接触環境の動作モードの通知を受け取る制御用レジスタ102を備え、接触環境時(動作クロックfc程度)には基本処理OP1からOPnのうちの任意の1つの演算を、1サイクルで、基本演算回路群103によって処理し、また、非接触環境(動作クロックfl程度)では基本処理OP1からOPnのある特定の組み合わせの処理を、同一の基本演算回路群103によって、1サイクルで、処理する機能を備える点である。以下に動作を説明する。
(動作説明)
次に動作について説明する。
(1)まず、外部回路20は、制御用レジスタ102に動作環境を設定する(S11)。
(2)次に外部回路20は、入力レジスタ104に演算対象データを設定する(S12)。
(3)また、外部回路20は、入力レジスタ104への演算対象データ設定が完了次第、制御用レジスタ102に「演算開始通知」を設定する(S13)。
(4)暗号コプロセッサ101では制御用レジスタ102に「演算開始通知」が設定されると、暗号コプロセッサ101が、入力レジスタ104の演算対象データを中間値格納レジスタ106へ転送する(S14)。
(5)中間値格納レジスタ106に格納された演算対象データは、基本演算回路群103が、暗号コプロセッサ制御回路107から指定される演算を、1サイクルで処理する(S15)。
(6)そして、基本演算回路群103は演算結果を、再び中間値格納レジスタ106に格納する(S16)。
(暗号コプロセッサ制御回路107による指定内容)
(1)このとき、制御用レジスタ102に設定された「動作環境」が接触環境(高クロックモード情報の一例)を表すならば、基本演算回路群103によって1サイクルで実行される演算は、基本処理OP1からOPnのどれか1つの演算となる。すなわち、制御用レジスタ102に「動作環境」として「接触環境」(高クロックモード情報)が設定されている場合には、暗号コプロセッサ制御回路107は、基本演算回路群103に対して基本処理OP1からOPnのどれか1つの実行を指定する。この場合、クロックジェネレータ10はfc相当のクロックを供給する。fcは高い周波数であり、基本演算回路群103は1サイクルで一つの基本処理(基本演算)のみを実行する。
(2)一方、制御用レジスタ102の設定が「非接触環境」(低クロックモード情報)を表すならば、1サイクルで実行される演算は、基本処理OP1からOPnにおける複数の演算の組み合わせとなる。すなわち、制御用レジスタ102に「動作環境」として「非接触環境」が設定されている場合には、暗号コプロセッサ制御回路107は、基本演算回路群103に対して基本処理OP1からOPnのうちの複数の基本演算の組み合わせを指定する。この場合、当然にクロックジェネレータ10はfl相当の、fcに比べて低いクロックを供給する。flはfcに比べてきわめて低い周波数のため、基本演算回路群103は1サイクルで複数の基本処理(基本演算)を実行する。
(3)以降、基本演算回路群103は、中間値格納レジスタ106に格納されたデータに対して演算を行い、基本演算回路群103により暗号アルゴリズムとして必要な全ての演算が実行される。この基本演算回路群103による演算が完了した段階で、中間値格納レジスタ106のデータは出力レジスタ105に転送される。また、暗号コプロセッサ制御回路107は外部回路20へ演算完了を通知する。
図2は、処理対象の暗号アルゴリズム(処理対象演算)をAESとした場合におけるAESコプロセッサ201を示している。図2のAESコプロセッサ201は、図1の暗号コプロセッサ101に対応し、構成要素のAES制御用レジスタ202等は暗号コプロセッサ101の制御用レジスタ102等に対応する。
AESの暗号化処理は、主に、
(1)ShiftRow演算、
(2)SubBytes演算、
(3)MixColumns演算、
(4)AddRoundKey演算、
の4つの演算を組み合わせて構成される演算を繰り返し行う処理である。ここで、図2では、これらの処理を実行する回路をAES基本演算回路群203で持つものとする。
(接触環境fc)
接触環境におけるAESコプロセッサ201による暗号化処理の動作は、中間値格納レジスタ206のデータに対して、暗号コプロセッサ制御回路207で指定する1演算(基本演算)を、AES基本演算回路群203で実行し、中間値格納レジスタ206へ格納する。従って、AESにおけるラウンド関数と呼ばれる処理を実行するためには、次の手順で処理する。
(1)中間値格納レジスタ206の値に対して、ShiftRow回路208によりShiftRow演算を行う。
(2)(1)の結果に対してSubBytes回路209によりSubBytes演算を行う。
(3)(2)の結果に対してMixColumns回路210によりMixColumns演算を行う。
(4)(3)の結果に対してAddRoundKey回路211によりAddRoundKey演算を行う。
ここで、接触環境下の場合にはfc相当の高クロックが供給されるが、その場合、上記(1)から(4)の処理をそれぞれ1サイクル毎に実行する。その場合この処理には4サイクル掛かることになる。
(非接触環境fl)
一方、非接触環境下の場合、接触環境下のクロックに比べてfl相当の低クロックが供給されるが、この場合、AES基本演算回路群203では、前記4つの組み合わせを1サイクルで実行するような、接触環境fcからの動作モードの切り替えを行い、上記(1)から(4)の処理を1サイクルで処理する。
図3は、図2のAES基本演算回路群203を詳細化した図である。図3のAES基本演算回路群301は図2のAES基本演算回路群203を具体化した一例である。図3を参照して、図2の場合をさらに具体的に説明する。
(接触環境fc)
接触環境下においては、図3の上部にある3つのマルチプレクサ311〜313はAES制御用レジスタ202の設定に従い、0側の入力を選択する。また、暗号コプロセッサ制御回路207からの指定される信号値によって、どの演算を行うかを下部にあるマルチプレクサ321で選択して出力する。例えば、SubBytes演算を行う場合、暗号コプロセッサ制御回路207からの指定される演算選択の信号値は「1」となる。
(非接触環境fl)
一方、非接触環境下においては、図3の上部にある3つのマルチプレクサ311〜313はAES制御用レジスタ202の設定に従い、1側の入力を選択する。また、暗号コプロセッサ制御回路207からの指定される信号値は「3」に設定され、4つの演算を全て実行した結果を選択する。
実施の形態1のデュアルインターフェースカード1000は、制御用レジスタ102に記憶された動作環境に応じて動作モードを切り替えるので、接触/非接触、あるいは製品規格の違いに応じて、迅速な演算処理を実現できる。
実施の形態2.
次に図4、図5を参照して実施の形態2を説明する。ICカードにおける暗号コプロセッサでは、実装上の安全性要件を満たすためにアルゴリズムの処理を「初期化処理」と「通常処理」の2段階に分ける実装方法がある。この場合、暗号アルゴリズムが基本処理(基本演算)OP1からOPnまでのn種類の処理で構成されるものとすれば、各基本処理(通常処理)を実行する前にそれぞれ初期化処理を行うこととなる。つまり、基本処理OP1の処理を行う場合は、OP1初期化処理を実行したあとにOP1通常処理を行う。従って、初期化処理を行う場合は、通常処理のみをおこなった場合と比較して、2倍のサイクル数を必要とする。このようなケースにおける場合を実施の形態2として説明する。
図4は、実施の形態2におけるAESコプロセッサ401のブロック図である。AESコプロセッサ401は、図2のAESコプロセッサ201に対応するが、AES基本演算回路群403は、処理対象の暗号アルゴリズムをAESとし、初期化処理と通常処理の2段階の処理を行うことを前提とした構成である。
前述のようにAESの暗号化処理は、主に、
(1)ShiftRow演算、
(2)SubBytes演算、
(3)MixColumns演算、
(4)AddRoundKey演算、
の4つの演算を組み合わせて構成される演算を繰り返し行う処理であるが、それぞれの演算を行う前に初期化処理を行う必要がある。ここで、図4は、これらの処理を実行する回路をAES基本演算回路群403で持つものとする。接触環境における暗号化処理の動作は、中間値格納レジスタ406のデータに対して、暗号コプロセッサ制御回路407で指定する1演算を、AES基本演算回路群403で実行し、中間値格納レジスタ406へ格納する。従って、AESにおけるラウンド関数と呼ばれる処理を実行するためには、次の手順で処理する。
(1)中間値格納レジスタ406の値に対して、ShiftRow初期化回路408によりShiftRow演算の初期化を行う。
(2)ShiftRow回路409によりShiftRow演算を行ない、中間値格納レジスタ406に再格納する。
(3)中間値格納レジスタ406の値に対して、SubBytes初期化回路410によりSubBytes演算の初期化を行う。
(4)SubBytes回路411によりSubBytes演算を行ない、中間値格納レジスタ406に再格納する。
(5)中間値格納レジスタ406の値に対して、MixColumns初期化回路412によりMixColumns演算の初期化を行う。
(6)MixColumns回路413によりMixColumns演算を行ない、中間値格納レジスタ406に再格納する。
(7)中間値格納レジスタ406の値に対して、AddRoundKey初期化回路414によりAddRoundKey演算の初期化を行う。
(8)AddRoundKey回路415によりAddRoundKey演算を行う。
(接触環境fc)
ここで、「接触環境」の場合、上記(1)から(8)の処理をそれぞれ1サイクル毎に実行するので、この処理には8サイクルかかることになる。
(非接触環境fl)
一方、非接触環境下の場合、AES基本演算回路群403では初期化演算と通常演算の組み合わせを1サイクルで実行するような切り替えを行い、上記(1)から(8)の処理を4サイクルで処理する。
図5は、図4のAES基本演算回路群403におけるSubBytes演算を代表例として、初期化処理と通常処理とについて説明する。
(接触環境fc)
接触環境下においては、図5のAES基本演算回路群501のマルチプレクサ504は、AES制御用レジスタ402の設定に従い、0側の入力を選択する。従って、中間値格納レジスタ406から入力されたデータは、SubBytes初期化回路502によって初期化演算され、内部レジスタ503に演算結果として格納される。次サイクルでは、内部レジスタ503のデータに対してSubBytes演算回路505により処理され、演算結果が中間値格納レジスタ406に返される。
(非接触環境fl)
一方、非接触環境下においては、図5のマルチプレクサ504はAES制御用レジスタ402の設定に従い、1側の入力を選択する。従って、中間値格納レジスタ406から入力されたデータは、内部レジスタ503を経由せず、1サイクルでSubBytes初期化回路502及びSubBytes演算回路505により処理され、演算結果として中間値格納レジスタ406に返される。
上記の説明では、基本演算毎に初期化演算と通常演算との組み合わせを切り替える方式について説明したが、実施の形態1と組み合わせることによって、複数演算の初期化演算と通常演算の組み合わせを切り替えることも当然可能である。
実施の形態3.
図6、図7を参照して実施の形態3を説明する。実施の形態3は、その他、公開鍵暗号の処理に対して有用な、算術演算(乗算や加減算)を処理するコプロセッサに対しても、同様のアイデアが適用可能なことを説明する実施形態である。
図6は、処理対象(処理対象演算)がAB+Cの演算処理の場合を示している(それぞれ入力はn bit)。また図7は、処理対象がAB+CD+Eの演算処理の場合を示している(それぞれ入力はn bit)。
図6の場合を説明する。
(接触環境fc)
接触環境下においては、コプロセッサ601のマルチプレクサ604は、制御用レジスタ102の設定(接触環境)に従い、0側の入力を選択する。従って、中間値格納レジスタ106から入力されたデータ(A,B)は、2入力乗算回路602によって乗算され、内部レジスタ603に演算結果として格納される。次サイクルでは、内部レジスタ603のデータ(A*B)と、中間値格納レジスタ106からのデータCとに対して、3入力加算回路605が処理を行い、演算結果(A*B+C)を中間値格納レジスタ106に返す。
(非接触環境fl)
一方、非接触環境下においては、コプロセッサ601のマルチプレクサ604は、制御用レジスタ102の設定(非接触環境)に従い、1側の入力を選択する。従って、1サイクルで、中間値格納レジスタ106から入力されたデータ(A,B)は2入力乗算回路602によって乗算され内部レジスタ603に格納されることなく中間値格納レジスタ106からのデータCと3入力加算回路605によって処理されて演算結果(A*B+C)として中間値格納レジスタ106に返される。
図7の場合を説明する。図7は、処理対象がAB+CD+Eの演算処理(処理対象演算)の場合である。
(接触環境fc)
接触環境下においては、コプロセッサ701のマルチプレクサ709は、制御用レジスタ102の設定(接触環境)に従い、0側の入力を選択する。従って、中間値格納レジスタ106から入力されたデータ(A,B、E)は、1サイクルで、2入力乗算回路702、3入力加算回路704を経て、内部レジスタ703に格納される。そして次サイクルでは、内部レジスタ703のデータ(A*B+E)と、2入力乗算回路703を経た(C*D)とが、3入力加算回路705によって加算され、(A*B+C*D+E)となり、中間値格納レジスタ106に返される。
(非接触環境fl)
非接触環境下においては、コプロセッサ701のマルチプレクサ709は、制御用レジスタ102の設定(非接触環境)に従い、1側の入力を選択する。従って、この場合は、内部レジスタ703にデータは格納されることなく、1サイクルで、(A*B+C*D+E)の演算処理が実行される。すなわち、1サイクルで、中間値格納レジスタ106から入力されたデータ(A,B、E)は、2入力乗算回路702、3入力加算回路704を経てマルチプレクサ709を経由(この時点で、A*B+E)し、2入力乗算回路708により乗算された(C*D)と3入力加算回路705によって加算され(この時点で、A*B+C*D+E)、中間値格納レジスタ106に返される。
以上詳述したように本実施の形態1〜3によれば、動作周波数が接触環境と比較して低く設定される非接触環境下であっても、動作モードを切り替えることにより、接触環境より少ないサイクル数で暗号処理が実現可能であり、非接触環境であっても高速処理を可能となるICチップ、ICカードが提供できる。
なお、以上の実施の形態1〜3では動作モードを切り替えて処理を実行するコプロセッサ(演算装置)を説明したが、上記コプロセッサの動作を、上記コプロセッサ(演算)が行う演算処理方法の実施形態として把握することも可能である。
実施の形態1におけるデュアルインターフェースカード1000のブロック図。 実施の形態1におけるAESコプロセッサ201のブロック図。 実施の形態1におけるAES基本演算回路群301のブロック図。 実施の形態2におけるAESコプロセッサ401のブロック図。 実施の形態2におけるAES基本演算回路群501のブロック図。 実施の形態3におけるコプロセッサ601のブロック図。 実施の形態3におけるコプロセッサ701のブロック図。
符号の説明
10 クロックジェネレータ、20 外部回路、101 暗号コプロセッサ、102 制御用レジスタ、103 基本演算回路群、106 中間値格納レジスタ、107 暗号コプロセッサ制御回路、201 AESコプロセッサ、202,402 AES制御用レジスタ、203,403 AES基本演算回路群、204,404 AES入力レジスタ、205,405 出力レジスタ、206,406 中間値格納レジスタ、207,407 暗号コプロセッサ制御回路、301,501 AES基本演算回路群、401 AESコプロセッサ、601,701 コプロセッサ、1000 デュアルインターフェースカード。

Claims (9)

  1. クロックを供給されて演算を実行する演算装置であって、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置において、
    前記高クロックモードでは、前記クロック周波数の1サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
    前記低クロックモードでは、前記クロック周波数の1サイクルで、前記処理対象演算のうちの少なくとも2つの前記基本演算を順次に実行する演算実行部を備えたことを特徴とする演算装置。
  2. 前記演算装置は、
    前記高クロックモードのクロック周波数が供給される場合には前記高クロックモードを示す高クロックモード情報を出力し、前記低クロックモードのクロック周波数が供給される場合には前記低クロックモードを示す低クロックモード情報を出力する外部回路から、前記高クロックモード情報と前記低クロックモード情報とのいずれかを、供給されるクロック周波数に対応して入力し、記憶するクロックモード記憶部を備え、
    前記演算実行部は、
    前記クロックモード記憶部に前記高クロックモード情報が記憶された場合には前記クロック周波数の1サイクルで、前記処理対象演算のうちの一つの前記基本演算を実行し、
    前記クロックモード記憶部に前記低クロックモード情報が記憶された場合には前記クロック周波数の1サイクルで、前記処理対象演算のうちの少なくとも2つの前記基本演算を順次に実行することを特徴とする請求項1記載の演算装置。
  3. クロックを供給されて演算を実行する演算装置であって、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置において、
    前記演算装置によって実行される処理対象演算は、
    異なる複数の基本演算と、
    各前記基本演算ごとに、前記基本演算の前に実行するべき初期化処理とを有し、
    前記基本演算を実行する演算実行部は、
    前記高クロックモードでは、前記クロック周波数の1サイクルで、一つの前記基本演算と一つの前記初期化処理とのいずれかを実行し、
    前記低クロックモードでは、前記クロック周波数の1サイクルで、少なくとも一つの前記基本演算と少なくとも一つの前記初期化処理とを順次に実行することを特徴とする演算装置。
  4. 前記演算装置は、
    前記高クロックモードのクロック周波数が供給される場合には前記高クロックモードを示す高クロックモード情報を出力し、前記低クロックモードのクロック周波数が供給される場合には前記低クロックモードを示す低クロックモード情報を出力する外部回路から、前記高クロックモード情報と前記低クロックモード情報とのいずれかを、供給されるクロック周波数に対応して入力し、記憶するクロックモード記憶部を備え、
    前記演算実行部は、
    前記クロックモード記憶部に前記高クロックモード情報が記憶された場合には前記クロック周波数の1サイクルで、前記処理対象演算のうちの一つの前記基本演算と一つの前記初期化処理とのいずれかを実行し、
    前記クロックモード記憶部に前記低クロックモード情報が記憶された場合には前記クロック周波数の1サイクルで、前記処理対象演算のうちの少なくとも一つの前記基本演算と少なくとも一つの前記初期化処理とを順次に実行することを特徴とする請求項3記載の演算装置。
  5. 前記演算装置は、
    接触方式と非接触方式とのいずれの方式によっても相手方の装置から電力の供給を受けて動作可能であると共に、
    前記クロックモード記憶部は、
    前記接触方式により前記相手方の装置から電力の供給を受ける時には前記外部回路から前記高クロックモード情報を入力して記憶し、前記非接触方式により前記相手方の装置から電力の供給を受ける時には前記外部回路から前記低クロックモード情報を入力して記憶することを特徴とする請求項2または4記載の演算装置。
  6. 前記クロックモード記憶部は、
    前記外部回路から製品用途に応じて、前記高クロックモード情報と前記低クロックモード情報とのいずれかを入力して記憶することを特徴とする請求項2または4記載の演算装置。
  7. 前記処理対象演算は、
    暗号化演算であることを特徴とする請求項1〜のいずれかに記載の演算装置。
  8. 前記請求項1〜のいずれかに記載の演算装置を備えたことを特徴とするIC(Integrated Circuit)カード。
  9. クロックを供給されて演算を実行すると共に、所定のクロック周波数が供給される高クロックモードと、前記高クロックモードよりも低い所定のクロック周波数が供給される低クロックモードとのいずれのモードでも演算の実行可能な演算装置が実行する演算処理方法において、
    前記演算装置は、
    前記高クロックモードでは、前記クロック周波数の1サイクルで、異なる複数の基本演算から構成される処理対象演算のうちの一つの前記基本演算を実行し、
    前記低クロックモードでは、前記クロック周波数の1サイクルで、前記処理対象演算のうちの少なくとも2つの前記基本演算を順次に実行することを特徴とする演算処理方法。
JP2008291177A 2008-11-13 2008-11-13 演算装置及び演算処理方法 Expired - Fee Related JP5300428B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008291177A JP5300428B2 (ja) 2008-11-13 2008-11-13 演算装置及び演算処理方法
US12/604,806 US8219847B2 (en) 2008-11-13 2009-10-23 Arithmetic unit and arithmetic processing method for operating with higher and lower clock frequencies
US13/443,507 US9116693B2 (en) 2008-11-13 2012-04-10 Arithmetic unit and arithmetic processing method for operating with higher and lower clock frequencies
US14/819,161 US20150338878A1 (en) 2008-11-13 2015-08-05 Arithmetic unit and arithmetic processing method for operating with higher and lower clock frequencies

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008291177A JP5300428B2 (ja) 2008-11-13 2008-11-13 演算装置及び演算処理方法

Publications (2)

Publication Number Publication Date
JP2010117922A JP2010117922A (ja) 2010-05-27
JP5300428B2 true JP5300428B2 (ja) 2013-09-25

Family

ID=42166272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008291177A Expired - Fee Related JP5300428B2 (ja) 2008-11-13 2008-11-13 演算装置及び演算処理方法

Country Status (2)

Country Link
US (3) US8219847B2 (ja)
JP (1) JP5300428B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467647B (zh) * 2010-11-16 2015-02-18 北京中电华大电子设计有限责任公司 一种双界面智能卡工作模式的判定方法和电路
JP2016116110A (ja) * 2014-12-16 2016-06-23 富士通株式会社 通信装置
CN107547195A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0746294B2 (ja) * 1986-08-29 1995-05-17 株式会社東芝 携帯可能電子装置
JPH05250327A (ja) * 1992-03-06 1993-09-28 Smk Corp スリーピングモードにある回路の駆動方法
JPH0683583A (ja) * 1992-09-03 1994-03-25 Kawasaki Steel Corp パイプライン演算回路
US5649174A (en) * 1994-12-09 1997-07-15 Vlsi Technology Inc. Microprocessor with instruction-cycle versus clock-frequency mode selection
US5673005A (en) * 1995-08-18 1997-09-30 International Business Machine Corporation Time standard circuit with delay line oscillator
US5844830A (en) * 1996-08-07 1998-12-01 Sun Microsystems, Inc. Executing computer instrucrions by circuits having different latencies
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
US6927072B2 (en) 2002-03-08 2005-08-09 Freescale Semiconductor, Inc. Method of applying cladding material on conductive lines of MRAM devices
US7243217B1 (en) * 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
JP2004206409A (ja) 2002-12-25 2004-07-22 Toshiba Corp 非接触式icカード
US20060200650A1 (en) * 2005-03-04 2006-09-07 Froemming Benjamin F Single-cycle low-power CPU architecture
US7937568B2 (en) * 2007-07-11 2011-05-03 International Business Machines Corporation Adaptive execution cycle control method for enhanced instruction throughput
US7945764B2 (en) * 2008-01-11 2011-05-17 International Business Machines Corporation Processing unit incorporating multirate execution unit

Also Published As

Publication number Publication date
US20100122108A1 (en) 2010-05-13
US9116693B2 (en) 2015-08-25
US8219847B2 (en) 2012-07-10
JP2010117922A (ja) 2010-05-27
US20120198211A1 (en) 2012-08-02
US20150338878A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
US6327661B1 (en) Using unpredictable information to minimize leakage from smartcards and other cryptosystems
US10204532B2 (en) Multiple input cryptographic engine
Rolfes et al. Ultra-lightweight implementations for smart devices–security for 1000 gate equivalents
TW526450B (en) Cryptographic processor
Saputra et al. Masking the energy behavior of DES encryption [smart cards]
US7599488B2 (en) Differential power analysis
EP2228941B1 (en) Encryption processing apparatus
Moradi et al. Lightweight cryptography and DPA countermeasures: A survey
EP1777535A2 (en) System and method for glitch detection in a secure microcontroller
Dhem et al. Hardware and software symbiosis helps smart card evolution
US8301890B2 (en) Software execution randomization
Suresh et al. On-chip lightweight implementation of reduced NIST randomness test suite
JP5300428B2 (ja) 演算装置及び演算処理方法
Liao et al. High-performance noninvasive side-channel attack resistant ecc coprocessor for gf (2m)
Monteiro et al. Low‐power secure S‐box circuit using charge‐sharing symmetric adiabatic logic for advanced encryption standard hardware design
JP3964389B2 (ja) エネルギー制御された電子回路
EP3552339B1 (en) Programmable block cipher with masked inputs
Singh et al. Pipelined architectures of LILLIPUT block cipher for RFID logistic applications
Güneysu et al. High-performance cryptanalysis on RIVYERA and COPACOBANA computing systems
US20040039931A1 (en) Countermeasure method in a microcircuit, miccrocircuit therefore and smart card comprising said microcircuit
EP4162641A1 (en) A computing platform for preventing side channel attacks
Chang et al. Hardware acceleration for cryptography algorithms by hotspot detection
Saputra et al. Masking the energy behaviour of encryption algorithms
EP1926241A2 (en) Using unpredictable information to minimize leakage from smartcards and other cryptosystems
Wenger et al. JAAVR: Introducing the next generation of security-enabled RFID tags

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100628

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101026

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130618

R150 Certificate of patent or registration of utility model

Ref document number: 5300428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees