CN1237442C - Cpu安全的提升方法 - Google Patents

Cpu安全的提升方法 Download PDF

Info

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
Application number
CNB02803824XA
Other languages
English (en)
Other versions
CN1486458A (zh
Inventor
H·哈特利布
H·塞德拉克
F·克鲁格
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1486458A publication Critical patent/CN1486458A/zh
Application granted granted Critical
Publication of CN1237442C publication Critical patent/CN1237442C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures 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安全的方法。
背景技术
对于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的方法,其中
一个只读存储器被用作存储器。
CNB02803824XA 2001-01-17 2002-01-16 Cpu安全的提升方法 Expired - Fee Related CN1237442C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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