JP5926655B2 - 中央処理装置および演算装置 - Google Patents

中央処理装置および演算装置 Download PDF

Info

Publication number
JP5926655B2
JP5926655B2 JP2012190295A JP2012190295A JP5926655B2 JP 5926655 B2 JP5926655 B2 JP 5926655B2 JP 2012190295 A JP2012190295 A JP 2012190295A JP 2012190295 A JP2012190295 A JP 2012190295A JP 5926655 B2 JP5926655 B2 JP 5926655B2
Authority
JP
Japan
Prior art keywords
data
arithmetic
register
output
control device
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
JP2012190295A
Other languages
English (en)
Other versions
JP2014049891A (ja
JP2014049891A5 (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 JP2012190295A priority Critical patent/JP5926655B2/ja
Priority to US14/013,144 priority patent/US10223110B2/en
Publication of JP2014049891A publication Critical patent/JP2014049891A/ja
Publication of JP2014049891A5 publication Critical patent/JP2014049891A5/ja
Application granted granted Critical
Publication of JP5926655B2 publication Critical patent/JP5926655B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/30181Instruction operation extension or modification
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

この発明は、中央処理装置および演算装置に関し、たとえば電力解析攻撃の防御のために好適に用いられるものである。
電力解析攻撃は、中央処理装置(CPU:Central Processing Unit)で処理されているデータに依存した消費電力のわずかな偏りを解析することによって、CPUで処理されている秘密情報を取得するものである(たとえば、非特許文献1〜3参照)。
電力解析攻撃への耐性を高めることが可能な従来技術として、たとえば、特開2011−234312号公報(特許文献1)に開示された技術が知られている。この技術は、従来のCPU(特に演算装置)の設計を大きく変えることなく、電力解析攻撃への耐性を高めることを可能にするものであり、本願の発明者によって発明されたものである。
具体的にこの文献による演算装置では、演算装置を構成する論理ゲートおよびフリップフロップなどの回路素子のうち少なくとも一部の回路素子にそれぞれ対応して選択回路が設けられる。各選択回路は、対応の回路素子の出力信号および演算とは無関係の信号の両方を受け、一方の信号を選択的に出力する。これによって、演算装置の内部信号および出力信号の状態を演算とは無関係の状態に切替えることができる。
特開2011−234312号公報
Kocher他、「Differential Power Analysis」CRYPTO 1999. LNCS, vol. 1666, pp. 388-397. Springer, Heidelberg (1999) Brier他、「Correlation Power Analysis with a Leakage Model」CHES 2004. LNCS, vol. 3156, pp. 16-29. Springer, Heidelberg (2004) Suzuki他、「DPA Lekage Models for CMOS Logic Circuits」CHES 2005.LNCS,vol.3659, pp. 366-382, Springer-Verlag(2005)
ところで、上記の特開2011−234312号公報(特許文献1)では、演算装置の内部信号および出力信号の状態を演算とは無関係の状態に切り替えるタイミングを決める方法として、専用の命令(切替命令)を設ける方法が提案されている。しかしながら、この方法の場合には、プログラムのどの命令の前または後に切替命令を挿入すれば電力解析攻撃の防御に効果的か否かは、プログラマの判断に委ねられている。このためプログラム開発の負担が大きいという問題がある。さらには、切替命令を挿入することでプログラムサイズが大きくなるという問題もある。
その他の方法として、この文献では、クロック信号の立上がりエッジのタイミングで、演算装置の内部信号および出力信号の状態を演算とは無関係の状態に切り替え、クロック信号の立下がりエッジのタイミングで演算装置の内部信号および出力信号の状態を元に戻す方法が提案されている。しかしながら、この方法の場合、クロック信号が立下がった後、次の立上がりまでに演算処理を完了させる必要があるので、中央処理装置のクロック周波数を通常よりも低下させなければならないという問題がある。
この発明は、上記の問題点を考慮してなされたものであり、特開2011−234312号公報(特許文献1)で開示した発明の改良発明である。すなわち、この発明の目的は、プログラムを変更したり、クロック周波数を低下させたりすることなく、さらには従来の演算装置および中央処理装置の設計を大きく変えることなく、電力解析攻撃への耐性を高めることが可能な中央処理装置および演算装置を提供することである。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態による中央処理装置において、演算装置は、レジスタ群に格納されたデータとは無関係なデータを用いた演算を実行可能なように構成されている。制御装置は、取り込んだ命令に応じた演算処理を演算装置に実行させる際、最初の1クロック周期の間、上記の無関係なデータを用いた演算処理を演算装置に実行させる。
上記の一実施の形態によれば、プログラムを変更したり、クロック周波数を低下させたりすることなく、さらには従来の演算装置および中央処理装置の設計を大きく変えることなく、電力解析攻撃への耐性を高めることができる。
実施の形態1によるCPUの主要部の構成を概略的に示すブロック図である。 図1のCPUのより詳細な構成を示すブロック図である。 ANDゲートの設計方法を説明するための図である。 セレクタの設計方法を説明するための図である。 D−フリップフロップの設計方法を説明するための図である。 図1のレジスタ群においてデータ信号をALUに出力する部分の回路構成例を示す図である。 図1のCPUの動作を説明するためのタイミング図である。 実施の形態2によるCPUの主要部の構成を概略的に示すブロック図である。 図8の制御信号生成部の主要部の構成を概略的に示すブロック図である。 図8のCPUの動作を説明するためのタイミング図である。 図10の比較例として従来のCPUの動作を説明するための図である。 実施の形態3によるCPUにおける制御信号生成部およびクロックゲート部の構成を示すブロック図である。 実施の形態3によるCPUの動作を説明するためのタイミング図である。 実施の形態4によるCPUの主要部の構成を概略的に示すブロック図である。 図14のレジスタ群においてALUにデータを出力する部分の回路構成例を示す図である。 図14、図15に示すCPUの動作を説明するためのタイミング図である。 図15の変形例を示す回路図である。 実施の形態5によるCPUの主要部の構成を概略的に示すブロック図である。 図18のレジスタ群においてALUにデータを出力する部分の回路構成例を示す図である。
以下、各実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
<実施の形態1>
[CPUの構成]
図1は、実施の形態1によるCPUの主要部の構成を概略的に示すブロック図である。図1を参照して、CPU5は、演算装置3と、制御信号生成部(制御装置)4とを含む。演算装置3は、複数のレジスタ1〜N(2_0〜2_N)を含むレジスタ群2と算術論理演算ユニット(ALU:Arithmetic Logic Unit)1とを含む。
制御信号生成部4へ入力される主な信号には、メモリデータ113とシステムクロック112とがある。メモリデータ113は、CPU5が外部のメモリ(記憶装置)から読み出した命令およびデータである。システムクロック112は、CPU5内部の多くの回路に供給されるクロック信号である。制御信号生成部4およびレジスタ群2は、外部から入力されたシステムクロック112に同期して動作する。
制御信号生成部4は、ALU1を使用する命令(たとえば、算術演算命令、論理演算命令)の実行時には、レジスタ群2に格納された複数のデータソースから2組のデータソース(データ1、データ2)を選択する。ALU1は、それらのデータ1,2を入力データとして用いて命令で指定された演算を実行する。
制御信号生成部4は、上記の演算の実行の際に演算装置3を制御するために、多数の制御信号を演算装置3に出力する。具体的には、まず、データソース選択信号1,2(104,105)に従って、(N+1)個のレジスタ2_0〜2_Nの中から1または複数(通常2個)が選択され、選択されたレジスタに格納されたソースデータが入力データ(データ1(109)およびデータ2(110))としてALU1に出力される。ALU1内部の複数の演算ブロック(図示省略)はレジスタ群2から供給された2個の入力データ109,110に対して複数の演算を並行して実行し、演算種類選択信号100で指定された演算種類に該当する演算結果111を出力する。ALUの設計によっては、ALU1の内部の複数の演算ブロックのうち、演算種類選択信号100で指定された演算種類に該当する演算ブロックのみに有効なデータが入力されることもある。ALU1が出力した演算結果111は、演算装置3以外で用いられることもあるし、演算装置3内のレジスタ群2に書き込まれることもある。レジスタ群2への書き込みは、書込レジスタ選択信号106および書込イネーブル信号107によって制御される。レジスタ群2には、さらに、リセット信号103が入力される。
図1の演算装置3が従来の演算装置と異なる点は、ALU1およびレジスタ群2に対して切替制御信号101および切替データ信号102が入力されている点である。切替制御信号101は、活性状態(アクティブ)と非活性状態(インアクティブ)とを有する1ビットの信号である。切替データ信号102は、演算装置3による演算に用いられるソースデータとは無関係な複数ビットの信号である。
図2は、図1のCPUのより詳細な構成を示すブロック図である。図2では、アドレス信号およびデータ信号が太線の矢印で示され、制御信号が細線の矢印で示されている。図2を参照して、図1の制御信号生成部4は、データアクセス部51、命令フェッチ部52、命令デコード部54、および状態制御部55を含む。
データアクセス部51は、バスインタフェース部50を介して外部のメモリ6と接続され、メモリ6内の指定されたアドレスにデータを書き込んだり、指定されたアドレスからデータを読み出したりする。命令フェッチ部52は、バスインタフェース部50を介して外部のメモリ6と接続され、メモリ6内の指定されたアドレスから命令を読み出す。読み出した命令は命令レジスタ53に格納される。
命令デコード部54は、命令レジスタ53の内容をデコードし、命令の種類(オペコード)および命令で使用するデータ(オペランド)などを解釈する。
状態制御部55は、CPUの状態を保持し、現在の状態と命令デコード結果などに基づいて状態更新および各種制御信号の生成を行なう。各種制御信号は、演算装置3を始めCPU5Aが含むさまざまな回路部分56を制御するための信号である。
CPU5にはさらに切替データ信号生成部57が設けられる。切替データ信号生成部57は切替データ信号102を生成する。切替データ信号生成部57として、たとえば、乱数発生源や擬似乱数生成器を用いることができる。切替データ信号生成部57は、演算実行時のシステムクロックやタイマの値を利用して切替データ信号102を生成するように構成されていてもよい。その他、切替データ信号生成部57として、専用のレジスタまたはシフトレジスタを設けてもよい。専用のレジスタまたはシフトレジスタの記憶内容が切替データ信号102として使用される。専用のレジスタまたはシフトレジスタは、図1のレジスタ群2の内部に設けられていてもよい。
[個々の回路素子の変更点]
実施の形態1の演算装置3は、従来の設計を大幅に変更することなく、演算装置3の内部信号および出力信号の状態を演算とは無関係の状態に切替え可能なように構成されている。具体的には、特開2011−234312号公報(特許文献1)に記載されているように、演算装置を構成する論理ゲートおよびフリップフロップなどの回路素子のうち少なくとも一部の回路素子が、切替制御信号101に応じて出力信号を切替データ信号102に切替え可能なように構成される。これによって、切替制御信号101が活性化(アサート)された状態では、演算装置3の内部信号および出力信号の状態を演算とは無関係な状態に設定できる。一方、切替制御信号101が非活性化(ネゲート)された状態では、演算装置3の動作は、電力解析攻撃への防御が施されていない従来の演算装置と同じである。以下、図3〜図6を参照して、回路素子の変更点を簡単に説明する。
図3は、ANDゲートの設計方法を説明するための図である。図4は、セレクタの設計方法を説明するための図である。図5は、D−フリップフロップの設計方法を説明するための図である。図3〜図5を参照して、(A)は従来回路(設計変更前)を示し、(B)は設計変更後を示す。演算装置3は、典型的には以下のステップで設計される。
(1)従来技術によるALUおよびレジスタ群の回路を設計する。
(2)演算装置を構成する論理ゲート(図3のANDゲート30、図4のセレクタ34)およびフリップフロップ(図5のD-フリップフロップ37)などの一部の回路素子の後段に直列にセレクタ31,35,38を挿入する。
(3)上記(2)で挿入したセレクタ31,35,38に切替制御信号101および切替データ信号102を入力する。セレクタ31,35,38は、切替制御信号101が活性化されているときには対応の回路素子の出力信号に代えて、切替データ信号102を出力する。以上のステップによって、変更後の回路素子32,36,39が完成する。
図6は、図1のレジスタ群においてデータ信号をALUに出力する部分の回路構成例を示す図である。図6(A)は従来の回路構成を示し、図6(B)は変更後の回路構成を示す。なお、図6ではデータ信号1(109)を出力する部分の回路構成が示されているが、データ信号2(110)を出力する部分の回路構成も同様である。
図6(A)を参照して、データ信号1(109)を出力する部分は、レジスタ0〜N(2_0〜2_N)の出力データDR_0〜DR_Nがそれぞれ入力されるANDゲート40_0〜40_Nと、各ANDゲート40の出力が入力されるORゲート41とを含む。各ANDゲート40の他方の入力ノードには対応のデータソース選択信号104(104_0〜104_Nのいずれか)が入力される。
図6(B)を参照して、設計変更後の回路では、ORゲート41の出力ノードにセレクタ(選択回路)42がさらに接続される。ここで、セレクタ42は、ORゲート41の出力と、切替制御信号101と、切替データ信号102とを受ける。セレクタ42は、切替制御信号101がアサートされると、ORゲート41の出力信号に代えて切替データ信号102をデータ信号1(109)として出力する。
[CPUの動作]
図7は、図1のCPUの動作を説明するためのタイミング図である。図7では、上から順に、システムクロック112、図2のメモリ6から読み出されるメモリデータ113(命令データ、読出データ108)、図2の命令レジスタ53の保持されている命令データ、および切替制御信号101の波形が示されている。
図7の場合、命令1は時刻t1からt2までの期間(フェッチサイクル)でメモリから読み出され、時刻t3からt5までの期間(実行サイクル)で実行される。命令2は時刻t4からt5までの期間(フェッチサイクル)でメモリから読み出され、時刻t5からt7までの期間(実行サイクル)で実行される。命令3は時刻t5からt7までの期間(フェッチサイクル)でメモリから読み出され、時刻t7からt9までの期間(実行サイクル)で実行される。
図7において特徴的な点は、図1の制御信号生成部4から出力される切替制御信号101が、各実行サイクルの最初の1クロックサイクルにおいて活性状態(Hレベル)になる点である。これによって、各実行サイクルの最初の1クロックサイクルの期間、演算装置3の内部信号および出力信号の状態が演算とは無関係な状態になる。レジスタ群2の選択されたレジスタに格納されているソースデータを用いた演算は、次のクロックサイクル以降で実行される。以下、各実行サイクルにおいて、最初の1クロックサイクルの期間を休止相と称し、次のクロックサイクル以降を稼動相と称する。
[実施の形態1の効果]
上記のCPU5の構成および動作によれば、各実行サイクルのうち最初の1クロックサイクルを休止相とすることによって、電力解析攻撃への耐性を高めることができる。ALU1を使用する命令の場合には稼動相の直前に休止相が自動的に挿入されるので、プログラムを変更する必要がない。従来のCPUの動作との相違点は、稼動相の直前に1クロックサイクルの休止相が挿入される点にあるので(すなわち、図7において休止相の1クロックサイクルを削除すれば、従来のCPUの動作と同じになる)、システムクロックの周波数を従来よりも低下させる必要はない。
<実施の形態2>
[CPUの構成]
図8は、実施の形態2によるCPUの主要部の構成を概略的に示すブロック図である。図8を参照して、実施の形態2によるCPU5Aは、クロックゲート部60をさらに含む点で実施の形態1によるCPU5と異なる。実施の形態2の場合、制御信号生成部4およびレジスタ群2は、システムクロック112ではなく、クロックゲート部60によって生成されたゲーテッドクロック112Aに基づいて動作する。
図9は、図8の制御信号生成部の主要部の構成を概略的に示すブロック図である。図10は、図8のCPUの動作を説明するためのタイミング図である。図10では、上から順に、システムクロック112、命令取込信号114、外部メモリから読み出されるメモリデータ113、命令レジスタ53に保持されている命令データ、切替制御信号101、クロック抑制信号、およびゲーテッドクロック112Aの各波形が示されている。
図9、図10を参照して、制御信号生成部4は、命令フェッチ部52、命令デコード部54、および状態制御部55を含む。これらの構成要素の動作の概略については既に図2で説明したので、ここでは説明を繰り返さない。特に、命令フェッチ部52は、システムクロック112(正確にはゲーテッドクロック112A)の立ち上がりのタイミングにおいて命令取込信号114がHレベル(“1”)である場合、メモリデータ113(この場合、命令データ)を命令レジスタ53に格納する。状態制御部55は、外部メモリから読み出したメモリデータが命令であるかデータであるかを認識しており、命令の場合には命令取込信号114をHレベルにして命令レジスタ53に読み出した命令データを格納する。
クロックゲート部60は、システムクロック112を受け、さらに制御信号生成部4から命令取込信号114を受ける。図10に示すように、クロックゲート部60は、命令取込信号114をシステムクロックの立ち上がりタイミングで内部のレジスタに取り込む。このレジスタの出力が図8の切替制御信号101となる。
さらに、切替制御信号101をシステムクロック112の立下がりタイミングでラッチしたものがクロック抑制信号となる。クロックゲート部60は、クロック抑制信号とシステムクロック112の論理積をとり、その結果をゲーテッドクロック112Aとして他の回路(制御信号生成部4およびレジスタ群2)に供給する。
なお、図10では、クロック抑制信号のシステムクロック112に対する遅延のみを強調して図示しているが、他の信号(切替制御信号101、ゲーテッドクロック112A)もシステムクロック112に対して遅延している。
[CPUの動作]
次に、図8〜図10を参照して、実施の形態2によるCPU5Aの動作について説明する。
命令レジスタ53が更新された(システムクロックの)クロックサイクル(図10のt2〜t3、t5〜t6、t7〜t8の各期間)では、切替制御信号101がHレベルとなるため、図8の演算装置3の内部状態(内部信号および出力信号の状態)が演算とは無関係の状態となる。この期間を休止相と呼ぶ。命令レジスタ53に格納されている命令が実行される(システムクロックの)クロックサイクルのうち、休止相を除く期間(図10のt3〜t5、t6〜t7、t8以降の各期間)を稼動相と呼ぶ。演算装置3は、休止相では意味の無いデータに対して演算を実行し、稼動相の期間では、レジスタ群2の選択されたレジスタに格納されたデータに基づいて演算を実行する。
ゲーテッドクロック112Aは、休止相の次の(システムクロックの)1クロックサイクルの間(図10のt3〜t4、t6〜t7、t8〜t9の各期間)、停止状態となる信号である。ゲーテッドクロック112Aの供給を受ける回路(レジスタ群2、制御信号生成部4)では、休止相直後の稼動相においてクロックが停止しているため、演算装置3が意味の無いデータに対して行なった演算結果が間違って使用されることはない。休止相直後の稼動相では命令フェッチも休止するので、メモリアドレスは変化せず、メモリアドレスに基づいてメモリから読み出されるメモリデータ113も変化しない。
一方、制御信号生成部4は、休止相において、正しく各種の制御信号を生成する。制御信号は、次にクロックが供給されるまでその状態が保持されるので、休止相直後の稼動相でクロックが停止していても問題とならない。
図11は、図10の比較例として従来のCPUの動作を説明するための図である。すなわち、図11では、図8のクロックゲート部60が設けられておらず、制御信号生成部4およびレジスタ群2がシステムクロック112に基づいて動作する場合であり、さらに、切替制御信号101が常に非活性化されている場合におけるCPUの動作が示されている。図11において、外部メモリから取り込まれるメモリデータ113の順番は、図10の場合と同じにしている。
図11を参照して、たとえば、命令2が演算命令であるとすると、命令2は、時刻t3からt4までの1クロックサイクルの期間(フェッチサイクル)でフェッチされ、次の時刻t4からt5までの1クロックサイクルの期間(実行サイクル)で実行される。そして、次の時刻t5からt6までの1クロックサイクルの間に、命令2による演算結果がレジスタ群の選択されたレジスタに書き込まれる。この時刻t5からt6までの期間は、次の命令3の実行サイクルとなっている。
これに対して、図10に示す実施の形態2の場合には、命令2が休止相(時刻t5からt6までの期間)と稼動相(時刻t6からt7までの期間)の2クロックサイクルで実行される。休止相では無意味なデータを用いて演算が行なわれる。次の稼動相ではゲーテッドクロック112Aが停止状態であるため、休止相の演算結果はレジスタ群には書き込まれない。制御信号は休止相の間に生成されてその状態が次の稼動相でも保持されているため、正規のデータを用いた演算が稼動相で実行される。次の時刻t7からt8までの期間に、命令2による演算結果がレジスタ群2に書き込まれる。この期間は次の命令3の休止相になっている。
このようにゲーテッドクロック112Aは、命令の実行時間(実行サイクル)を、システムクロックの1クロックサイクル分増加させるために利用されている。ゲーテッドクロック112Aによって、休止相の直後の稼動相では命令フェッチも行なわれず、演算結果の書込も行なわれないため、CPUの動作の整合性が保たれている。
[実施の形態2の効果]
実施の形態2のCPU5Aによって命令が実行されるときの特徴をまとめると次のとおりである。
休止相(実行サイクルのうち、最初の1クロックサイクル)では、演算命令の実行に使用されるデータは、レジスタ群2に格納されている本来のソースデータとは無関係なものに切替えられる。休止相におけるそれ以外の回路動作(制御信号の生成など)は基本的には従来と同じである。
休止相から次の稼動相に切替わるとき、切替制御信号101がLレベルに切替わるので、ALU1の入力が正規のソースデータに切替わる。このとき、ゲーテッドクロック112Aによってレジスタ群2の動作は停止しているので、休止相における無意味な演算の結果がレジスタ群2に格納されることはない。休止相で生成済み制御信号(たとえば、演算種類選択信号100、データソース選択信号104,105、書込レジスタ選択信号106など)は、休止相直後の稼動相でも保持されている。このため、正規のソースデータを用いた演算がALU1で実行され、その結果がその次のクロックサイクルでレジスタ群2などに格納される。
このように実施の形態2によるCPU5Aによれば、ゲーテッドクロックを用いるという簡単な制御によって、本来の演算装置3の動作を損なうこと無く、演算装置3の内部信号および出力信号の状態を演算とは無関係の状態にすることが可能となる。この場合、プログラムに特別な命令を挿入したり、クロック周波数を下げたりする必要はない。
<実施の形態3>
[実施の形態3の課題]
命令の種類によっては、電力解析攻撃に対する耐性を高めるために、演算装置の内部信号および出力信号の状態を演算とは無関係の状態にする必要がないものもあり得る。実施の形態1,2の場合には、そのような種類の命令まで含めた全ての命令で休止相が発生するため、命令の実行時間が増加する。そこで、実施の形態3では、電力解析攻撃に対する防御が必要な命令の実行サイクルにのみ休止相を挿入することによって命令の実行時間を削減する手段を提供する。
[CPUの構成]
図12は、実施の形態3によるCPUにおける制御信号生成部およびクロックゲート部の構成を示すブロック図である。
図12のクロックゲート部60Aは、フェッチした命令データがさらに入力される点で図9のクロックゲート部60と異なる。クロックゲート部60Aは、システムクロック112の立ち上がりタイミングにおいて、命令取込信号114が活性状態(Hレベル)であり、かつ、命令データの種類(オペコード)が予め決まったものである場合(または、予め決まった種類でない場合)にのみ、切替制御信号101を活性状態(Hレベル)にする。このような信号処理は、たとえば、フェッチした命令データのオペコードをデコードする簡単なデコード回路をクロックゲート部60Aに追加し、デコード結果と命令取込信号114の論理積をシステムクロックの立上がりのタイミングでラッチした信号を切替制御信号101とすることによって実現できる。
図12のその他の点は図9の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。たとえば、図9のクロックゲート部60と図12のクロックゲート部60Aとでは、クロック抑制信号およびゲーテッドクロック112Aの生成方法は同じである。ただし、前述のように切替制御信号101の生成方法が異なるので、切替制御信号101に基づいて生成されるクロック抑制信号およびゲーテッドクロック112Aの波形は、図9のクロックゲート部60の場合とは異なるものになる。
[CPUの動作]
図13は、実施の形態3によるCPUの動作を説明するためのタイミング図である。図13では、図10の場合と同様に上から順に、システムクロック112、命令取込信号114、外部メモリから読み出されるメモリデータ113、命令レジスタ53に保持されている命令データ、切替制御信号101、クロック抑制信号、およびゲーテッドクロック112Aの各波形が示されている。
図13のタイミング図に示された各命令は図10の場合と同じである。そのうち命令2および命令4は、実行サイクル時に切替制御信号101を活性状態(Hレベル)にする必要のない特定種類の命令であるとする。この結果、命令2および命令4の実行時には休止相が挿入されないので、命令2および命令4の実行時間が図10の場合に比べるとシステムクロックの1サイクル分短くなる。
<実施の形態4>
[実施の形態4の課題]
従来技術による演算装置では、図6(A)のような回路によって複数のレジスタ1〜N(2_0〜2_N)に格納されたデータのうちALUに入力されるデータ1および2(109,110)が選択される。
図6(A)の回路において、たとえば、レジスタ3のデータが選択される状態からレジスタ0のデータが選択される状態に切替わるとき、レジスタの選択信号の過渡遷移によって一時的にレジスタ2のデータがデータ1として出力される可能性がある。具体的に、レジスタ番号を3ビットで表わすとする。そうすると、フェッチされる命令データのうちレジスタ番号を示すフィールドの値が011から000に変わる。このとき、命令デコーダに入力される信号は、信号遅延によって011、010、000と遷移する可能性があり、010という過渡状態でレジスタ2が選択されることがあり得る。
レジスタ選択信号の過渡遷移は、配置配線などによって決まる遅延時間に依存し、設計段階で予想することは困難である。もし、上記のような過渡遷移が発生する場合で、レジスタ2の内容が秘密情報に関るものであれば、電力解析攻撃に対する脆弱性となる可能性がある。なぜならば、データ1および2(109,110)はALU内部の多くの回路に入力されているので、その信号変化によって多くの回路が動作し、秘密情報に依存した大きな消費電力が発生するからである。
実施の形態1〜3で説明した演算装置では図6(B)のように回路が変更されている。しかし、この場合でも、切替制御信号101の遅延時間がレジスタ選択信号の遅延時間よりも大きい場合には、上記の問題(電力解析攻撃に対する脆弱性)が発生し得る。実施の形態4では、このような問題を抑制する手段を提供する。
[CPUの構成]
図14は、実施の形態4によるCPUの主要部の構成を概略的に示すブロック図である。図15は、図14のレジスタ群においてALUにデータを出力する部分の回路構成例を示す図である。なお、図15ではデータ信号1(109)を出力する部分の回路構成が示されているが、データ信号2(110)を出力する部分の回路構成も同様である。
図14を参照して、実施の形態4のCPU5Cに設けられたレジスタ群2Aには、ゲーテッドクロック112Aとともにシステムクロック112も入力される。図15を参照して、レジスタ群2Aのうちデータ信号1(109)を出力する部分は、ORゲート41とセレクタ42の間にソースレジスタ(D−フリップフリップ)43が挿入される点で図6(B)の場合と異なる。すなわち、実施の形態4のレジスタ群2Aでは、ALUに出力する前の出力データ1,2(109,110)が、対応のソースレジスタ43に一時的に保持される。ソースレジスタ43は、ゲーテッドクロック112Aではなく、システムクロック112に同期して動作する。セレクタ42は、切替データ信号102とソースレジスタ43に保持されているデータとを受け、切替制御信号101が活性化されているときには切替データ信号102を出力データ1(109)としてALUに出力し、切替制御信号101が活性化されていないときにはソースレジスタ43に保持されているデータを出力データ1(109)としてALUに出力する。
図14、図15のその他の構成は図6(B)、図8の場合(すなわち、実施の形態2によるCPU5)と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
[CPUの動作、実施の形態4の効果]
図16は、図14、図15に示すCPUの動作を説明するためのタイミング図である。図16のうち、システムクロック112、命令取込信号114、外部メモリから読み出されるメモリデータ113、命令レジスタ53に保持されている命令データ、切替制御信号101、クロック抑制信号、およびゲーテッドクロック112Aの各波形は、図10の場合と同じであるので説明を繰り返さない。図16では、さらに、レジスタ群2Aのうち選択されたレジスタから読み出されたデータ、ソースレジスタ1(43)に保持されているデータ、切替データ信号102、およびセレクタ42からALUに出力されるデータ1が示されている。なお、データ1(109)を出力する部分に設けられたソースレジスタ43をソースレジスタ1(43)と記載する。
図16の例では、命令1、命令2、および命令3の実行時のソースデータとして「AAA」、「BBB」、「CCC」がそれぞれ用いられるものとする。切替制御信号101が非活性状態に切替わるときに(時刻t3、t6、t8)、切替データ信号102が変化するものとする。
実施の形態4のCPUの場合、図16に示すように、ALUが実際に演算を実行する(システムクロックの)1クロックサイクル前(t2〜t3、t5〜t6、t7〜t8の各期間)で、ALUに出力されるデータ1は演算とは無関係なデータ(「R1」、「R2」、「R3」)になる。さらに、この期間に、演算で実際に使用するデータを格納しているレジスタが選択される。そして、次の(システムクロックの)クロックサイクルで、演算で実際に使用するデータがソースレジスタ1(43)に格納され、このソースレジスタ1(43)に格納されたデータがデータ1としてALUに出力される。
したがって、問題となっていた過渡遷移は、ソースレジスタ1(43)より先(データ1およびALU)には伝播しないため、秘密情報に依存した大きな消費電力が発生することがなくなる。このため、実施の形態4によれば、電力解析攻撃に対する耐性がいっそう向上する。
[変形例]
図15に示したソースレジスタ43は、実施の形態3のレジスタ群にも設けることができる。この場合、図15の回路は図17の回路のように変形される。
図17は、図15の変形例を示す回路図である。図17を参照して、実施の形態3と4を組み合わせた場合には、ORゲート41の出力が、さらに第3の入力信号としてソースレジスタ43を介さずにセレクタ42Aに直接入力されるようにする。そして、実行サイクルに休止相が挿入される特定の種類の命令の場合には、セレクタ42Aは、切替制御信号101に従って、実行サイクルの最初の1クロックサイクル(休止相)で切替データ信号102を出力し、続く稼動相でソースレジスタ43に保持されている内容を出力する。特定種類以外の命令の場合(すなわち、休止相が挿入されない場合)には、セレクタ42Aは、ORゲート41の出力をデータ1としてALUに出力する。図17のその他の点は図15の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
<実施の形態5>
[実施の形態5の課題]
実施の形態5によるCPU5Dは、CPUの動作モードをセキュアモード(Secure Mode)と非セキュアモードとに切替えられるようにしたものである。セキュアモードでは、実行サイクルの最初の1クロックサイクル(休止相)において、演算装置の内部信号および出力信号の状態が演算とは無関係の状態に切替えられる。非セキュアモードの場合には、このような休止相が実行サイクルに挿入されない。
[CPUの構成および動作]
図18は、実施の形態5によるCPUの主要部の構成を概略的に示すブロック図である。図19は、図18のレジスタ群においてALUにデータを出力する部分の回路構成例を示す図である。なお、図19ではデータ信号1(109)を出力する部分の回路構成が示されているが、データ信号2(110)を出力する部分の回路構成も同様である。
図18に示すCPU5Dは、切替抑制信号115がレジスタ群2Bにさらに入力される点で図14のCPU5Cと異なる。さらに、図19に示すように、レジスタ群2Bにおいてデータ信号1(109)をALUに出力する部分では、ORゲート41の出力が第3の入力信号としてソースレジスタ43を介さずにセレクタ42Bに直接入力されるように変更されている。切替抑制信号115は、動作モードを指定する信号としてセレクタ42Bにさらに入力される。切替抑制信号115は、たとえば、CPU5D内に設けられた専用のレジスタの値に応じてHレベルまたはLレベルに切替わる1ビットの信号である。
セレクタ42Bは、切替抑制信号115が非活性状態(たとえば、Lレベル)の場合には(セキュアモード)、実施の形態4のセレクタ42と同様に動作する。すなわち、セレクタ42Bは、切替制御信号101が活性化されているときには切替データ信号102を出力データ1(109)としてALUに出力し、切替制御信号101が活性化されていないときにはソースレジスタ43に保持されているデータを出力データ1(109)としてALUに出力する。一方、セレクタ42Bは、切替抑制信号115が活性状態(たとえば、Hレベル)の場合には(非セキュアモード)、ORゲート41の出力をデータ1としてALUに出力する。
[変形例]
図19に示したソースレジスタ43およびセレクタ42Bは、実施の形態3のレジスタ群にも設けることができる。ただし、実施の形態3と5を組みあわせる場合には、切替抑制信号115が活性状態(非セキュアモード)の場合、および休止相が挿入される特定種類の命令以外の命令がフェッチされた場合の両方で、ORゲート41の信号をデータ信号1(109)としてALUに出力する必要がある。具体的には、図19の切替抑制信号115に代えて、図12で説明したクロックゲート部60Aに設けられる簡単なデコード回路によるデコード結果(またはデコード結果を反転した信号)と切替抑制信号115との論理和を、セレクタ42Bに入力する。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 ALU、2,2A,2B レジスタ群、3 演算装置、4 制御信号生成部(制御装置)、5,5A,5C,5D CPU、6 メモリ、57 切替データ信号生成部、31,34,35,38,42,42A,42B セレクタ、51 データアクセス部、52 命令フェッチ部、53 命令レジスタ、54 命令デコード部、55 状態制御部、60,60A クロックゲート部、101 切替制御信号、102 切替データ信号、112 システムクロック、112A ゲーテッドクロック、113 メモリデータ、114 命令取込信号、115 切替抑制信号。

Claims (8)

  1. 中央処理装置であって、
    複数のレジスタを含むレジスタ群および前記複数のレジスタのうち選択されたレジスタに格納されているデータを用いて演算を行なう算術論理演算ユニットを含む演算装置と、
    前記演算装置を制御する制御装置とを備え、
    前記演算装置は、前記選択されたレジスタに格納されたデータとは無関係なデータを用いた演算処理を実行可能なように構成され、
    前記制御装置は、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間、前記無関係なデータを用いた演算処理を前記演算装置に実行させ、
    前記中央処理装置は、前記最初の1クロック周期の次の1クロック周期の期間に停止状態となるゲーテッドクロック信号を生成するクロックゲート部をさらに備え、
    前記複数のレジスタおよび前記制御装置は、前記ゲーテッドクロック信号に基づいて動作する、中央処理装置。
  2. 前記レジスタ群は、
    前記選択されたレジスタに格納されている演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータおよび前記無関係なデータを受け、前記制御装置の制御に従っていずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記制御装置は、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間前記無関係なデータを前記選択回路に出力させた後、前記出力レジスタに保持されたデータを前記選択回路に出力させる、請求項に記載の中央処理装置。
  3. 前記中央処理装置は、動作モードとしてセキュアモードと非セキュアモードとを有し、
    前記レジスタ群は、
    前記選択されたレジスタに格納されている演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータ、前記無関係なデータ、および前記出力レジスタに保持される前の前記演算対象のデータを受け、前記制御装置の制御に従っていずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記制御装置は、前記セキュアモードのとき、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間前記無関係なデータを前記選択回路に出力させた後、前記出力レジスタに保持されたデータを前記選択回路に出力させ、
    前記制御装置は、前記非セキュアモードのとき、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、前記出力レジスタに保持される前の前記演算対象のデータを前記選択回路に出力させる、請求項に記載の中央処理装置。
  4. 複数のレジスタを含むレジスタ群および前記複数のレジスタのうち選択されたレジスタに格納されているデータを用いて演算を行なう算術論理演算ユニットを含む演算装置と、
    前記演算装置を制御する制御装置とを備え、
    前記演算装置は、前記選択されたレジスタに格納されたデータとは無関係なデータを用いた演算処理を実行可能なように構成され、
    前記制御装置は、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間、前記無関係なデータを用いた演算処理を前記演算装置に実行させ、
    前記制御装置は、外部メモリから1または複数の特定の種類の命令を取り込んだ場合にのみ、前記無関係なデータを用いた演算処理を前記演算装置に実行させ、
    前記レジスタ群は、
    前記選択されたレジスタに格納されている演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータ、前記無関係なデータ、および前記出力レジスタに保持される前の前記演算対象のデータを受け、前記制御装置の制御に従っていずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記制御装置は、前記1または複数の特定の種類の命令を取り込んだ場合には、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間前記無関係なデータを前記選択回路に出力させた後、前記出力レジスタに保持されたデータを前記選択回路に出力させ、
    前記制御装置は、前記1または複数の特定の種類の命令とは異なる種類の命令を取り込んだ場合には、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、前記出力レジスタに保持される前の前記演算対象のデータを前記選択回路に出力させる、中央処理装置。
  5. 中央処理装置であって、
    複数のレジスタを含むレジスタ群および前記複数のレジスタのうち選択されたレジスタに格納されているデータを用いて演算を行なう算術論理演算ユニットを含む演算装置と、
    前記演算装置を制御する制御装置とを備え、
    前記演算装置は、前記選択されたレジスタに格納されたデータとは無関係なデータを用いた演算処理を実行可能なように構成され、
    前記制御装置は、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間、前記無関係なデータを用いた演算処理を前記演算装置に実行させ、
    前記制御装置は、外部メモリから1または複数の特定の種類の命令を取り込んだ場合にのみ、前記無関係なデータを用いた演算処理を前記演算装置に実行させ、
    前記中央処理装置は、動作モードとしてセキュアモードと非セキュアモードとを有し、
    前記レジスタ群は、
    前記選択されたレジスタに格納されている演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータ、前記無関係なデータ、および前記出力レジスタに保持される前の前記演算対象のデータを受け、前記制御装置の制御に従っていずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記制御装置は、前記セキュアモードでありかつ前記1または複数の特定の種類の命令を取り込んだ場合には、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、最初の1クロック周期の間前記無関係なデータを前記選択回路に出力させた後、前記出力レジスタに保持されたデータを前記選択回路に出力させ、
    前記制御装置は、前記1または複数の特定の種類の命令とは異なる種類の命令を取り込んだ場合もしくは非セキュアモードの場合には、取り込んだ命令に応じた演算処理を前記演算装置に実行させる際、前記出力レジスタに保持される前の前記演算対象のデータを前記選択回路に出力させる、中央処理装置。
  6. 前記演算装置は、
    各々が論理演算機能または記憶機能を有する複数の回路素子と、
    前記複数の回路素子の少なくとも一部にそれぞれ対応し、各々が対応する回路素子の出力信号の経路に設けられた複数の選択回路とを含み、
    前記複数の選択回路の各々は、対応の回路素子の出力信号と前記無関係なデータによる信号とを受け、前記制御装置の制御に従っていずれか1つの信号を出力する、請求項に記載の中央処理装置。
  7. 複数のレジスタを含むレジスタ群と、
    前記複数のレジスタのうち選択されたレジスタに格納されている演算対象のデータを用いて演算を行なう算術論理演算ユニットとを備え、
    前記レジスタ群は、
    前記演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータおよび前記演算対象のデータとは無関係なデータを受け、いずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記選択回路は、前記算術論理演算ユニットが演算処理を実行する際、最初の1クロック周期の間前記無関係なデータを出力した後、前記出力レジスタに保持されたデータを出力し、
    前記レジスタ群は、前記最初の1クロック周期の次の1クロック周期の期間に停止状態となるゲーテッドクロック信号に従って動作する、演算装置。
  8. セキュアモードと非セキュアモードとを有する演算装置であって、
    前記演算装置は、
    複数のレジスタを含むレジスタ群と、
    前記複数のレジスタのうち選択されたレジスタに格納されている演算対象のデータを用いて演算を行なう算術論理演算ユニットとを備え、
    前記レジスタ群は、
    前記演算対象のデータを前記算術論理演算ユニットに出力する前に一時的に保持する出力レジスタと、
    前記出力レジスタに保持されたデータ、前記演算対象のデータとは無関係なデータ、および前記出力レジスタに保持される前の前記演算対象のデータを受け、いずれか1つのデータを前記算術論理演算ユニットに出力する選択回路とをさらに含み、
    前記選択回路は、前記セキュアモードのときに前記算術論理演算ユニットが演算処理を実行する際、最初の1クロック周期の間前記無関係なデータを出力した後、前記出力レジスタに保持されたデータを出力し、
    前記選択回路は、前記非セキュアモードのときに前記算術論理演算ユニットが演算処理を実行する際、前記出力レジスタに保持される前の前記演算対象のデータを出力し、
    前記レジスタ群は、前記最初の1クロック周期の次の1クロック周期の期間に停止状態となるゲーテッドクロック信号に従って動作する、演算装置。
JP2012190295A 2012-08-30 2012-08-30 中央処理装置および演算装置 Expired - Fee Related JP5926655B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012190295A JP5926655B2 (ja) 2012-08-30 2012-08-30 中央処理装置および演算装置
US14/013,144 US10223110B2 (en) 2012-08-30 2013-08-29 Central processing unit and arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012190295A JP5926655B2 (ja) 2012-08-30 2012-08-30 中央処理装置および演算装置

Publications (3)

Publication Number Publication Date
JP2014049891A JP2014049891A (ja) 2014-03-17
JP2014049891A5 JP2014049891A5 (ja) 2015-03-26
JP5926655B2 true JP5926655B2 (ja) 2016-05-25

Family

ID=50189139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012190295A Expired - Fee Related JP5926655B2 (ja) 2012-08-30 2012-08-30 中央処理装置および演算装置

Country Status (2)

Country Link
US (1) US10223110B2 (ja)
JP (1) JP5926655B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014105360A1 (de) * 2014-04-15 2015-10-15 Infineon Technologies Ag Schaltungsanordnung
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
US10878133B2 (en) * 2018-11-18 2020-12-29 Nuvoton Technology Corporation Mitigation of side-channel attacks using small-overhead random pre-charging
DE102019130395A1 (de) 2019-11-11 2021-05-12 Infineon Technologies Ag Speicherungselement mit Takt-Gating
US11209891B2 (en) 2019-11-27 2021-12-28 Robert Bosch Gmbh Clock control to increase robustness of a serial bus interface
US10956356B1 (en) * 2019-11-27 2021-03-23 Robert Bosch Gmbh Clock control to increase robustness of a serial bus interface
JP2022027240A (ja) * 2020-07-31 2022-02-10 ソニーセミコンダクタソリューションズ株式会社 情報処理装置および情報処理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2279162B (en) * 1993-06-15 1997-11-19 Ibm Interrupt-driven processor system
JP3459495B2 (ja) * 1995-05-30 2003-10-20 三洋電機株式会社 マイクロプロセッサ
ATE364272T1 (de) * 1999-11-03 2007-06-15 Infineon Technologies Ag Kodiervorrichtung
JP3977592B2 (ja) * 2000-12-28 2007-09-19 株式会社東芝 データ処理装置
DE10151129B4 (de) * 2001-10-17 2004-07-29 Infineon Technologies Ag Verfahren und Vorrichtung zum Berechnen eines Ergebnisses einer Exponentiation in einer Kryptographieschaltung
US7162456B2 (en) * 2002-06-05 2007-01-09 Sun Microsystems, Inc. Method for private personal identification number management
US7549059B2 (en) * 2002-06-26 2009-06-16 Arm Limited Transferring data values via a data bus or storing data values using a selectable representation
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
GB2406943B (en) * 2002-12-12 2005-10-05 Advanced Risc Mach Ltd Processing activity masking in a data processing system
JP2005033441A (ja) * 2003-07-10 2005-02-03 Toshiba Corp 信号処理装置及びその電流制御方法
US8296577B2 (en) * 2004-06-08 2012-10-23 Hrl Laboratories, Llc Cryptographic bus architecture for the prevention of differential power analysis
FR2880148A1 (fr) * 2004-12-23 2006-06-30 Gemplus Sa Procede d'exponentiation securisee et compacte pour la cryptographie
US7864951B2 (en) * 2006-07-10 2011-01-04 King Fahd University Of Petroleum And Minerals Scalar multiplication method with inherent countermeasures
JP5277533B2 (ja) * 2006-11-15 2013-08-28 ヤマハ株式会社 デジタル信号処理装置
DE102007007699A1 (de) * 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
WO2008114402A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited ゲーテッドクロック設計方法及び半導体集積回路
JP2009008993A (ja) * 2007-06-29 2009-01-15 Nec Electronics Corp べき乗剰余演算器及びその制御方法
FR2955436B1 (fr) * 2010-01-19 2012-11-23 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
JP2011234312A (ja) * 2010-04-30 2011-11-17 Renesas Electronics Corp 演算装置および中央処理装置

Also Published As

Publication number Publication date
JP2014049891A (ja) 2014-03-17
US20140068231A1 (en) 2014-03-06
US10223110B2 (en) 2019-03-05

Similar Documents

Publication Publication Date Title
JP5926655B2 (ja) 中央処理装置および演算装置
JP4511461B2 (ja) データ処理システムでの処理動作マスキング
US8086832B2 (en) Structure for dynamically adjusting pipelined data paths for improved power management
KR20210110598A (ko) 추론적 실행을 위한 보안 예측기
US9552328B2 (en) Reconfigurable integrated circuit device
JP2007299355A (ja) マイクロプロセッサ
JP2008542949A (ja) パイプライン型マイクロプロセッサの節電システムおよび節電方法
Antognazza et al. Metis: An integrated morphing engine CPU to protect against side channel attacks
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
JP2013539143A (ja) 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム
JP5918192B2 (ja) Plcシステムでのデータ処理装置及びその方法
JP4444305B2 (ja) 半導体装置
US20140365751A1 (en) Operand generation in at least one processing pipeline
IT202000013390A1 (it) Una piattaforma informatica per prevenire attacchi ai canali laterali
Casu Improving synchronous elastic circuits: Token cages and half-buffer retiming
JP2011234312A (ja) 演算装置および中央処理装置
JP2014059761A (ja) 半導体集積回路及びコンパイラ
Khalid et al. One word/cycle HC-128 accelerator via state-splitting optimization
JP5414323B2 (ja) 半導体集積回路装置
US20070239937A1 (en) Dynamic Clock Switch Mechanism for Memories to Improve Performance
Strauch Acceleration techniques for system-hyper-pipelined soft-processors on FPGAs
Casu Half-buffer retiming and token cages for synchronous elastic circuits
KR101484600B1 (ko) 카운터 기반 멀티 사이클 프로세서 제어 장치
Panwar et al. Performance analysis of branch prediction unit for pipelined processors
CN104102588B (zh) 降低寄存器堆读功耗的电路和方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151203

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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160422

R150 Certificate of patent or registration of utility model

Ref document number: 5926655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees