JP4680876B2 - 情報処理装置及び命令フェッチ制御方法 - Google Patents
情報処理装置及び命令フェッチ制御方法 Download PDFInfo
- Publication number
- JP4680876B2 JP4680876B2 JP2006333410A JP2006333410A JP4680876B2 JP 4680876 B2 JP4680876 B2 JP 4680876B2 JP 2006333410 A JP2006333410 A JP 2006333410A JP 2006333410 A JP2006333410 A JP 2006333410A JP 4680876 B2 JP4680876 B2 JP 4680876B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- fetch
- unit
- branch
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 33
- 238000000034 method Methods 0.000 title claims description 30
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
X=C mod Q
という演算がある。ここでCは暗号文を数値化したもの、Qは秘密鍵を表す数値(素数)で、1024bitのRSA暗号の場合はCが1024bit、Qが512bitという巨大な数値である。
if( C>Q ){
C/Qの余りを求める ←消費電力大
} else {
ダミーの時間稼ぎ ←消費電力小
}
上記に示したように、こんどは消費電力の差分を解析することで処理時間の差と同等の情報が得られる。
(1)分岐をなくす。どうしても分岐が必要な場合は分岐してもしなくても実行時間を等しくする。
(2)分岐した場合でも分岐しない場合でも消費電力を等しくする。
if( C>Q ){
C/Qの余りを求める
} else {
C/Qの余りを求めるが、結果は破棄(ダミー演算)
}
命令デコード回路300は、命令フェッチ回路200から出力される命令コードをデコードする。
命令処理回路400は、命令デコード回路300がデコードした命令を実行する。
以下、分岐命令の有無に基づいて動作を説明する。
アドレス保持回路201は、アドレス選択回路202が選択したアドレスによって保持するアドレスを更新する。また、命令選択回路230は、NOP命令コード発生回路231の出力を選択する。命令キュー220は、蓄えていた命令を破棄し、命令選択回路230が選択したNOP命令コード発生回路231の出力を保持し、命令デコード回路300へ出力する。命令デコード回路300は、命令キュー220が保持する命令を入力する。命令選択回路230は、絶対分岐信号210または相対分岐信号211のいずれかがアクティブの場合にNOP命令コード発生回路231の出力を選択する。従って、絶対分岐命令が選択された場合に、絶対分岐命令信号210がアクティブになるため、命令列へnop命令が挿入される。
もし(鍵に含まれるビットの値が「1」)なら、
モンゴメリ乗算の結果を、本来格納されるべき所へ格納、
となっており鍵に含まれるビットの値が「0」ならば何もしないため、演算の時間差が発生してしまう。
もし(鍵に含まれるビットの値が「1」)なら、
モンゴメリ乗算の結果を、本来格納されるべき所へ格納、
そうでなければ、
モンゴメリ乗算の結果を、一時領域へ格納(破棄)、
というダミー演算を追加し、ビットの値が「1」の場合と「0」の場合の時間差を無くそうとしている。さらに、特許文献2には、命令をパイプライン処理する分岐の制御方法に関する技術が公開されている。
デコードした命令コードを実行する。このように、命令を実行するタイミングが同じになるように命令フェッチを指示することにより、条件分岐命令による分岐の有無にかかわらず、命令の処理タイミングを同じにすることが可能になる。例えば、命令を実行するタイミングが同じになるように、命令フェッチを実施するタイミングを回路構成上などで増やす場合、命令を実施するタイミングが同じになるように予め無条件で分岐するような命令を挿入したプログラムを実行する場合などが想定される。
実施形態1では、条件分岐命令を検出した場合に、次に実行する命令コードをフェッチするタイミングを同じにする、また、消費電力を同じにする情報処理装置の一態様を説明する。具体的には、条件分岐命令の次に実行する命令をフェッチするタイミングを一致させるため、分岐の有無にかかわらず命令をフェッチするように制御し、命令フェッチの候補となるアドレスを毎回計算する場合を説明する。
実施形態2では、条件分岐命令を検出した場合に、命令再フェッチ信号207をアクティブにする命令再フェッチ機能を有効にする期間と無効にする期間とを制御する情報処理装置の一態様を説明する。具体的には、高セキュリティが必要であるプログラムを実行する場合に、命令再フェッチ信号をアクティブにする制御を実施する場合を説明する。
図7に示す情報処理装置2は、図1に示した情報処理装置1へスイッチ213と制御レジスタ(制御部)401を追加している。
実施形態3では、一度に複数命令を取り込めるように命令キューを複数もつCPUを想定した情報処理装置の一態様を説明する。例えば命令は16bit長固定で、32bitバスのCPUなら2命令同時に取り込みできる。命令キューが複数ある場合、現在実行しようとしている命令が格納されていたアドレスと、現在フェッチしようとしているアドレスはずれている。このため、図1の情報処理装置1のように、アドレス保持回路201に保持するアドレスをフィードバック信号212によってフィードバックする動作では正しく命令再フェッチを行うことができない。そこで、命令を命令キュー220に格納する際に、これとセットでアドレスもキューに格納しておけば再フェッチが発生したときにその情報を利用することで正しい再フェッチが可能になる。
100 記憶装置
200 命令フェッチ回路
201 アドレス保持回路
202 アドレス選択回路
203 現アドレス信号
204 インクリメント回路
205 アドレス加算器
206 分岐アドレス信号
207 命令再フェッチ信号
210 絶対分岐信号
211 相対分岐信号
212 フィードバック信号
213 スイッチ
220 命令キュー
221 命令キュー
222 アドレス・キューの選択回路
223、224 アドレス・キュー
230 命令選択回路
231 NOP命令コード発生回路
241 キュー制御回路
300 命令デコード回路
400 命令処理回路
401 制御レジスタ
500 CPU
Claims (11)
- 実行する命令コードをフェッチして出力する命令フェッチ部と、
前記命令フェッチ部から出力される命令コードをデコードする命令デコード部と、を備え、
前記命令デコード部は、前記命令コードが条件分岐命令であることを検出し、かつ、前記条件分岐命令に基づいて分岐しない場合に、既にフェッチした命令コードを再度フェッチすることを指示する命令再フェッチ信号を生成して前記命令フェッチ部へ出力し、
前記命令フェッチ部は、前記命令再フェッチ信号に基づいて、再度同じ命令コードをフェッチする情報処理装置。 - 命令コードをアドレスと対応づけて記憶する記憶装置を、さらに備え、
前記命令フェッチ部は、命令コードと対応づけられたアドレスをフェッチ用アドレスとして保持するアドレス保持部を備え、前記フェッチ用アドレスに基づいて前記記憶装置から出力される命令コードをフェッチし、前記命令再フェッチ信号が入力された場合に、前回命令コードをフェッチしたフェッチ用アドレスである前回フェッチアドレスを前記アドレス保持部に再度保持させて同じ命令コードをフェッチすることを特徴とする請求項1記載の情報処理装置。 - 前記命令フェッチ部は、前記アドレス保持部が保持する前記フェッチ用アドレスを前回フェッチアドレスとして含む命令コードをフェッチする候補アドレスを複数入力し、前記命令デコード部から前記命令再フェッチ信号が入力された場合に、前記フェッチ用アドレスとして、複数の候補アドレスの中から前記前回フェッチアドレスを選択して前記アドレス保持部へ出力するアドレス選択部を、さらに備え、
前記アドレス保持部は、前記アドレス選択部が選択した前記前回フェッチアドレスを再度保持することを特徴とする請求項2記載の情報処理装置。 - 前記アドレス選択部は、前記複数の候補アドレスとして、前記前回フェッチアドレスに加え、前記フェッチ用アドレスの次に実行する命令のアドレスを算出した次命令のアドレス、相対分岐する相対アドレス、及び絶対分岐する絶対アドレスを入力し、前記命令デコード部が出力する制御信号に基づいて、前記複数の候補アドレスから一つのアドレスを選択することを特徴とする請求項3記載の情報処理装置。
- 前記命令フェッチ部が前記命令デコード部からの命令再フェッチ信号に基づいて、命令をフェッチするか否かを指定する制御レジスタを、さらに備えることを特徴とする請求項2乃至4のいずれかに記載の情報処理装置。
- 前記命令フェッチ部が前記命令デコード部から出力される命令再フェッチ信号に基づいて、命令をフェッチするか否かを指定する指定する制御レジスタを、さらに備え、
前記アドレス選択部は、前記制御レジスタの指示内容に基づいて前記前回フェッチアドレスを選択するか否かを切り替えることを特徴とする請求項3又は4記載の情報処理装置。 - 前記命令フェッチ部は、フェッチした複数の命令コードに対応した複数のアドレスを保持し、後続命令のフェッチ用アドレスとして、前記アドレス選択部へ出力する複数アドレス保持回路を、さらに備えることを特徴とする請求項3,4,6のいずれかに記載の情報処理装置。
- 前記命令デコード部がデコードした命令コードを実行する命令処理部をさらに備え、
前記命令フェッチ部、前記命令デコード部、並びに前記命令処理部は、複数の命令を並行して実行するパイプライン動作を行い、
前記命令デコード部により、前記命令コードが条件分岐命令であることが検出された場合に、後続命令コードに対して、前記命令フェッチ部によるフェッチタイミング、前記命令デコード部によるデコードタイミング、並びに前記命令処理部による実行タイミングが分岐条件による分岐の有無にかかわらず同じとなるように前記パイプライン動作を行うこと特徴とする請求項1乃至7のいずれかに記載の情報処理装置。 - 命令フェッチ部と命令デコード部を備えた情報処理装置の命令フェッチ制御方法であって、
前記命令フェッチ部が命令コードをフェッチし、
前記命令デコード部が前記命令コードをデコードし、
前記命令デコード部が条件分岐命令を検出し、かつ、前記条件分岐命令に基づいて分岐しない場合に、前記後続命令コードとして、既にフェッチした命令コードを再度フェッチするように制御する情報処理装置の命令フェッチ制御方法。 - 複数の命令コードのフェッチ、前記命令コードのデコード、並びに前記命令コードの実行をパイプライン動作により処理する情報処理装置における請求項9記載の命令フェッチ制御方法。
- 前記デコード部が前記命令コードとして条件分岐命令を検出した場合、分岐の有無にかかわらず、後続命令コードをフェッチするタイミングを同じにすることを特徴とする請求項9または10記載の命令フェッチ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333410A JP4680876B2 (ja) | 2006-12-11 | 2006-12-11 | 情報処理装置及び命令フェッチ制御方法 |
US12/000,164 US7877577B2 (en) | 2006-12-11 | 2007-12-10 | Information processor and instruction fetch control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333410A JP4680876B2 (ja) | 2006-12-11 | 2006-12-11 | 情報処理装置及び命令フェッチ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008146384A JP2008146384A (ja) | 2008-06-26 |
JP4680876B2 true JP4680876B2 (ja) | 2011-05-11 |
Family
ID=39499712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333410A Expired - Fee Related JP4680876B2 (ja) | 2006-12-11 | 2006-12-11 | 情報処理装置及び命令フェッチ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7877577B2 (ja) |
JP (1) | JP4680876B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599491B2 (en) | 1999-01-11 | 2009-10-06 | Certicom Corp. | Method for strengthening the implementation of ECDSA against power analysis |
US7092523B2 (en) | 1999-01-11 | 2006-08-15 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
CA2258338C (en) * | 1999-01-11 | 2009-02-24 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
JP2010008883A (ja) * | 2008-06-30 | 2010-01-14 | Toshiba Corp | 暗号用演算装置、暗号用演算方法及びプログラム |
US20100161950A1 (en) * | 2008-12-24 | 2010-06-24 | Sun Microsystems, Inc. | Semi-absolute branch instructions for efficient computers |
US9817665B2 (en) * | 2011-03-31 | 2017-11-14 | Silicon Laboratories Inc. | System and technique for retrieving an instruction from memory based on a determination of whether a processor will execute the instruction |
US8909967B1 (en) * | 2012-12-31 | 2014-12-09 | Emc Corporation | Technique for secure computation |
US9164936B2 (en) * | 2012-12-31 | 2015-10-20 | Silicon Laboratories Inc. | System and method for regulating direct memory access descriptor among multiple execution paths by using a link to define order of executions |
US20150260768A1 (en) * | 2014-03-13 | 2015-09-17 | Kabushiki Kaisha Toshiba | Detection method of algorithm in integrated circuit |
US10108467B2 (en) | 2015-04-24 | 2018-10-23 | Nxp Usa, Inc. | Data processing system with speculative fetching |
DE102018213053A1 (de) * | 2018-08-03 | 2020-02-06 | Continental Teves Ag & Co. Ohg | Verfahren zum Analysieren von Quelltexten |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006510998A (ja) * | 2002-12-12 | 2006-03-30 | エイアールエム リミテッド | データ処理システム内の処理アクティビティのマスキング |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587044B2 (en) * | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
US6564316B1 (en) * | 1998-09-10 | 2003-05-13 | Parthusceva Ltd. | Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots |
US7092523B2 (en) * | 1999-01-11 | 2006-08-15 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
US6275929B1 (en) * | 1999-05-26 | 2001-08-14 | Infineon Technologies Ag L. Gr. | Delay-slot control mechanism for microprocessors |
US6804782B1 (en) | 1999-06-11 | 2004-10-12 | General Instrument Corporation | Countermeasure to power attack and timing attack on cryptographic operations |
US6912650B2 (en) * | 2000-03-21 | 2005-06-28 | Fujitsu Limited | Pre-prefetching target of following branch instruction based on past history |
FR2807591B1 (fr) * | 2000-04-06 | 2003-08-08 | Gemplus Card Int | Procede de contre-mesure pour un micro-controleur base sur une architecture avec "pipeline" |
US6625737B1 (en) * | 2000-09-20 | 2003-09-23 | Mips Technologies Inc. | System for prediction and control of power consumption in digital system |
FR2832824A1 (fr) * | 2001-11-28 | 2003-05-30 | St Microelectronics Sa | Blocage du fonctionnement d'un circuit integre |
JP2004126841A (ja) * | 2002-10-01 | 2004-04-22 | Renesas Technology Corp | プログラム実装方法 |
JP3683248B2 (ja) * | 2002-10-22 | 2005-08-17 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US20040162993A1 (en) * | 2003-02-13 | 2004-08-19 | Yannick Teglia | Antifraud method of an algorithm executed by an integrated circuit |
US7996671B2 (en) * | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8296577B2 (en) * | 2004-06-08 | 2012-10-23 | Hrl Laboratories, Llc | Cryptographic bus architecture for the prevention of differential power analysis |
JP2006011723A (ja) | 2004-06-24 | 2006-01-12 | Matsushita Electric Ind Co Ltd | 分岐制御方法、および情報処理装置 |
-
2006
- 2006-12-11 JP JP2006333410A patent/JP4680876B2/ja not_active Expired - Fee Related
-
2007
- 2007-12-10 US US12/000,164 patent/US7877577B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006510998A (ja) * | 2002-12-12 | 2006-03-30 | エイアールエム リミテッド | データ処理システム内の処理アクティビティのマスキング |
Also Published As
Publication number | Publication date |
---|---|
US20080140995A1 (en) | 2008-06-12 |
JP2008146384A (ja) | 2008-06-26 |
US7877577B2 (en) | 2011-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4680876B2 (ja) | 情報処理装置及び命令フェッチ制御方法 | |
US8683224B2 (en) | Processor-implemented method for ensuring software integrity | |
CN103713883B (zh) | 解密密钥产生装置与方法 | |
JP3848965B2 (ja) | データ処理装置内の命令タイミング制御 | |
JP5616528B2 (ja) | ソフトウェアの完全性を保証するためのプロセッサにより実施される方法 | |
US8661231B2 (en) | Multi-function instruction that determines whether functions are installed on a system | |
JP2020533683A (ja) | コール・パス依存認証 | |
JP2012198565A (ja) | 処理装置に対する特異な電力攻撃を最小限にする方法および装置 | |
US10223117B2 (en) | Execution flow protection in microcontrollers | |
KR100745889B1 (ko) | 보안 메시지 인증 제어 명령어의 처리 방법 | |
EP2367102A1 (en) | Computer processor and method with increased security properties | |
CN108701184B (zh) | 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备 | |
CN111752612A (zh) | 处理器认证方法 | |
US8266450B2 (en) | Information processing device, encryption method of instruction code, and decryption method of encrypted instruction code | |
US20090125728A1 (en) | Security method of system by encoding instructions | |
JP2009169489A (ja) | 暗号化方法、復号化方法、暗号化装置、復号化装置 | |
JP3723019B2 (ja) | サブルーチンリターン相当の命令の分岐予測を行う装置および方法 | |
US11449642B2 (en) | Attack protection by power signature blurring | |
JP2009211292A (ja) | 暗号化方法、復号化方法、暗号化装置、復号化装置 | |
CN117390705A (zh) | 数据处理方法、处理器和电子装置 | |
JP2005134987A (ja) | パイプライン演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110107 |
|
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: 20110201 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110203 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
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 |