CN1237442C - Cpu安全的提升方法 - Google Patents
Cpu安全的提升方法 Download PDFInfo
- Publication number
- CN1237442C CN1237442C CNB02803824XA CN02803824A CN1237442C CN 1237442 C CN1237442 C CN 1237442C CN B02803824X A CNB02803824X A CN B02803824XA CN 02803824 A CN02803824 A CN 02803824A CN 1237442 C CN1237442 C CN 1237442C
- Authority
- CN
- China
- Prior art keywords
- cpu
- register
- stage
- code sequence
- change
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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/755—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Regulation And Control Of Combustion (AREA)
- Control Of Steam Boilers And Waste-Gas Boilers (AREA)
Abstract
在本发明公开的方法中,使用包括提取级(1)、解码级(2)、执行级(3)及写回级(4)的流水线。写回级包含至少一个寄存器(41),其使用不会导致CPU的任何状态的改变,以及包含至少一个寄存器(42),其使用会导致CPU的状态改变。根据本发明,至少一个随机选择码序列会于解码级中插入,以作为保持位置码序列或虚设码序列,而使得藉由DPA的攻击变得较为困难。
Description
技术领域
本发明涉及提升CPU安全的方法。
背景技术
对于CPU的安全而言,差动功率分析(Differential poweranalysis,简称DPA)为熟知的攻击状况,在这样的攻击中,CPU中的一连串的程序命令及其效能,利用由功率消耗的特征的统计分析来决定。关于所执行的程序的详细的结论,可自这些分析中获得。
叙述于DE 199 36 939 A1及WO 00/50977的方法会使DPA变得较为困难,特别是关于智能卡的应用,只为了欺骗的目的,而藉由执行定义的处理器运作或程序步骤,以植入于以随机选择为基础的执行的程序中。
发明内容
本发明的目的就是定义提升CPU安全的方法。
在所述的方法中,一条流水线具有至少一个解码级以及一个写回级,该写回级包含至少一个第一寄存器以及包含至少一个第二寄存器,所述第一寄存器的使用不会导致该CPU状态的改变,所述第二寄存器的使用会导致该CPU的状态改变,该方法的特征为:对于每次执行的一个特定程序时,选择至少一个不会使该CPU的状态改变的随机选择的码序列,作为保持位置码序列或虚设码序列;并且利用该解码级将该至少一个随机选择的码序列插入该特定程序的代码序列中使得获取程序的执行时间不同于先前的执行时间。
在根据本发明的方法中,CPU的结构使用流水线,具有至少一个解码级及一个写回级,并且通常包括提取级、解码级、执行级及写回级。写回级包含至少一个寄存器,其使用不会导致CPU的任何状态的改变,以及包含至少一个寄存器,其使用会导致CPU的状态改变。根据本发明,至少一个随机选择码序列会于解码级中插入,当作保持位置码序列或虚设码序列。理论上,这种方法可用于任何的流水线,特别而言,除了经由例子所指定的级外,其可具有另外的级,并且会配合附图做更详细地解释。
附图说明
图1绘示的是所叙述的流水线图。
图2绘示的是插入编码序列过程的概略图。
具体实施方式
图1绘示的是显示如一个例子的流水线的程序执行的流程图,从提取级1,经由解码级2,到执行级3,并且从该处到写回级4。这里的写回级4包含至少一个当作临时寄存器的第一寄存器41,以及一个当作写回寄存器的第二寄存器42。临时寄存器是一种使用时不会导致CPU任何状态改变的寄存器,而写回寄存器的使用会导致CPU的状态改变。为了提升CPU的安全,在流水线中转移的程序代码中,可藉由解码级2,植入编码序列,实际的理论上可为任意的编码序列,也可以在程序代码的许多点,插入特定额外的编码序列,当作保持位置码序列或虚设码序列。这概略绘示于图2中。
图2概略地绘示任意程序的编码序列5。在此编码序列5中,随机选择码序列6(虚设序列)会插入于各种不同定义的位置,或者也会插入于随机选择的位置,而产生扩充码序列50。例如,插入的编码序列可自内存读取,特别是自只读存储器(ROM)。
可产生插入编码序列的个别命令,例如,藉由呼叫随机数(random-number)产生器所产生的地址,插入的编码序列可自内存读取,并且会以随机的长度及次序转移到解码器。解码器会将这些虚设码序列的码植入于执行的程序代码(编码流(stream))中。甚至在程序代码中所植入的随机选择码的地址,可使用此技术中所熟知的随机方法来决定。
CPU的状态不会因为随机插入的编码序列而改变,也不会因为随机选择及插入的复数个编码序列而改变,其只会当作保持位置序列或虚设码序列。此方法的主要优点是,每次执行相同程序的实际程序代码的执行时问,可以依照有关先前执行的需要而改变,因而使企图以统计分析(如在序言中所提及的DPA)为主的攻击变得相当困难。
参考清单
1提取级
2解码级
3执行级
4写回级
5码序列
6随机选择码序列
41第一寄存器(临时寄存器)
42第二寄存器(写回寄存器)
50扩充码序列
Claims (3)
1.一种提升CPU安全的方法,其中,一条流水线具有至少一个解码级(2)以及一个写回级(4),该写回级(4)包含至少一第一寄存器(41)以及包含至少一个第二寄存器(42),所述第一寄存器(41)的使用不会导致该CPU状态的改变,所述第二寄存器(42)的使用会导致该CPU的状态改变,
该方法的特征为:
对于每次执行的一个特定程序时,选择至少一不会使该CPU的状态改变的随机选择的码序列,作为保持位置码序列或虚设码序列;并且利用该解码级(2)将该至少一个随机选择的码序列插入该特定程序的代码序列中使得获取程序的执行时间不同于先前的执行时间。
2.如权利要求1的方法,其中
利用一个或者多个随机确定的存储器地址从一个存储器读取该一个或者多个随机选择的码序列。
3.如权利要求2的方法,其中
一个只读存储器被用作存储器。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10101956A DE10101956A1 (de) | 2001-01-17 | 2001-01-17 | Verfahren zur Erhöhung der Sicherheit einer CPU |
| DE10101956.4 | 2001-01-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1486458A CN1486458A (zh) | 2004-03-31 |
| CN1237442C true CN1237442C (zh) | 2006-01-18 |
Family
ID=7670857
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB02803824XA Expired - Fee Related CN1237442C (zh) | 2001-01-17 | 2002-01-16 | Cpu安全的提升方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US20040019802A1 (zh) |
| EP (1) | EP1352319B1 (zh) |
| JP (1) | JP2004522221A (zh) |
| CN (1) | CN1237442C (zh) |
| AT (1) | ATE366957T1 (zh) |
| DE (2) | DE10101956A1 (zh) |
| TW (1) | TW561403B (zh) |
| WO (1) | WO2002057905A1 (zh) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7313677B2 (en) * | 2002-12-12 | 2007-12-25 | Arm Limited | Processing activity masking in a data processing system |
| FR2849232B1 (fr) * | 2002-12-24 | 2005-02-25 | Trusted Logic | Procede pour la securisation des systemes informatiques incorporant un module d'interpretation de code |
| DE10307797B4 (de) * | 2003-02-24 | 2010-11-11 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms |
| US8321666B2 (en) | 2006-08-15 | 2012-11-27 | Sap Ag | Implementations of secure computation protocols |
| EP1936527A1 (fr) * | 2006-12-18 | 2008-06-25 | Gemplus | Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté |
| US8762687B2 (en) * | 2008-05-24 | 2014-06-24 | Via Technologies, Inc. | Microprocessor providing isolated timers and counters for execution of secure code |
| JP5146156B2 (ja) * | 2008-06-30 | 2013-02-20 | 富士通株式会社 | 演算処理装置 |
| CN102110206B (zh) * | 2010-12-27 | 2013-01-16 | 北京握奇数据系统有限公司 | 防御攻击的方法和具有攻击防御功能的装置 |
| US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
| FR3116356B1 (fr) * | 2020-11-13 | 2024-01-05 | Stmicroelectronics Grand Ouest Sas | Procédé de compilation d’un code source |
| TW202544637A (zh) * | 2024-03-28 | 2025-11-16 | 日商索尼半導體解決方案公司 | 處理器及處理方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2745924B1 (fr) * | 1996-03-07 | 1998-12-11 | Bull Cp8 | Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre |
| US6108797A (en) * | 1997-12-11 | 2000-08-22 | Winbond Electronics Corp. | Method and system for loading microprograms in partially defective memory |
| JPH11232092A (ja) * | 1998-02-12 | 1999-08-27 | Nippon Telegr & Teleph Corp <Ntt> | マイクロプロセッサ用制御装置 |
| FR2776410B1 (fr) * | 1998-03-20 | 2002-11-15 | Gemplus Card Int | Dispositifs pour masquer les operations effectuees dans une carte a microprocesseur |
| DE19837808A1 (de) * | 1998-08-20 | 2000-02-24 | Orga Kartensysteme Gmbh | Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger |
| DE19936939A1 (de) * | 1998-09-30 | 2000-04-06 | Philips Corp Intellectual Pty | Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb zum Verhindern einer differentiellen Stromverbrauchanalyse |
| JP2000165375A (ja) * | 1998-11-30 | 2000-06-16 | Hitachi Ltd | 情報処理装置、icカード |
| FR2790347B1 (fr) * | 1999-02-25 | 2001-10-05 | St Microelectronics Sa | Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme |
| US6804782B1 (en) * | 1999-06-11 | 2004-10-12 | General Instrument Corporation | Countermeasure to power attack and timing attack on cryptographic operations |
| TW536672B (en) * | 2000-01-12 | 2003-06-11 | Hitachi Ltd | IC card and microcomputer |
-
2001
- 2001-01-17 DE DE10101956A patent/DE10101956A1/de not_active Withdrawn
- 2001-12-31 TW TW090133074A patent/TW561403B/zh not_active IP Right Cessation
-
2002
- 2002-01-16 AT AT02703493T patent/ATE366957T1/de not_active IP Right Cessation
- 2002-01-16 DE DE50210455T patent/DE50210455D1/de not_active Expired - Lifetime
- 2002-01-16 JP JP2002558123A patent/JP2004522221A/ja active Pending
- 2002-01-16 CN CNB02803824XA patent/CN1237442C/zh not_active Expired - Fee Related
- 2002-01-16 WO PCT/DE2002/000110 patent/WO2002057905A1/de not_active Ceased
- 2002-01-16 EP EP02703493A patent/EP1352319B1/de not_active Expired - Lifetime
-
2003
- 2003-07-17 US US10/621,536 patent/US20040019802A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| TW561403B (en) | 2003-11-11 |
| ATE366957T1 (de) | 2007-08-15 |
| US20040019802A1 (en) | 2004-01-29 |
| EP1352319B1 (de) | 2007-07-11 |
| DE50210455D1 (de) | 2007-08-23 |
| WO2002057905A1 (de) | 2002-07-25 |
| CN1486458A (zh) | 2004-03-31 |
| DE10101956A1 (de) | 2002-07-25 |
| EP1352319A1 (de) | 2003-10-15 |
| JP2004522221A (ja) | 2004-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1237442C (zh) | Cpu安全的提升方法 | |
| JP4513108B2 (ja) | アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化 | |
| RU2629440C2 (ru) | Устройство и способ для ускорения операций сжатия и распаковки | |
| CN102591620A (zh) | 预解码可变长度指令 | |
| US20090007137A1 (en) | Order preservation in data parallel operations | |
| Chroni et al. | An efficient graph codec system for software watermarking | |
| US8321689B2 (en) | Watermarking computer code by equivalent mathematical expressions | |
| US8549309B1 (en) | Asymmetric content fingerprinting with adaptive window sizing | |
| CN1426547A (zh) | 基于流水线体系结构的微控制器的对抗方法 | |
| EP1693740A3 (en) | Data processing apparatus and control method for a data processing apparatus | |
| TWI732775B (zh) | 用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機 | |
| CN117668786B (zh) | 一种数据库水印嵌入方法、装置、计算机设备及介质 | |
| CN1714337A (zh) | 微控制器和用于处理微控制器的编程的相关方法 | |
| US20070043957A1 (en) | Method for managing an executable code downloaded in a reprogrammable reprogrammable on-board system | |
| JP4051359B2 (ja) | 世代別ガベージコレクション方法及び世代別ガベージコレクションプログラム | |
| EP1785857A3 (en) | Data processing system and method | |
| CN1127018C (zh) | 为多个电路模块分配指令的方法和装置 | |
| CN108446536B (zh) | 一种基于符号执行和单点逻辑的源代码加固方法及装置 | |
| US20050050396A1 (en) | Tamper-proofing watermarked computer programs | |
| KR101810765B1 (ko) | 상수 인코딩을 이용한 정적 워터마킹 방법 | |
| JP4899789B2 (ja) | 画像処理プログラムおよび画像処理装置 | |
| CN1860435A (zh) | 用于分支预测的方法和系统 | |
| RU2008105592A (ru) | Способ внедрения данных | |
| Zhao et al. | LSB replacement steganography software detection based on model checking | |
| CN108388548B (zh) | 一种实现脚本参数化的方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060118 Termination date: 20210116 |