CN101689233B - 安全敏感系统中的微处理器 - Google Patents

安全敏感系统中的微处理器 Download PDF

Info

Publication number
CN101689233B
CN101689233B CN2008800233377A CN200880023337A CN101689233B CN 101689233 B CN101689233 B CN 101689233B CN 2008800233377 A CN2008800233377 A CN 2008800233377A CN 200880023337 A CN200880023337 A CN 200880023337A CN 101689233 B CN101689233 B CN 101689233B
Authority
CN
China
Prior art keywords
microprocessor
hardware
congruence
computing
result
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.)
Active
Application number
CN2008800233377A
Other languages
English (en)
Other versions
CN101689233A (zh
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN101689233A publication Critical patent/CN101689233A/zh
Application granted granted Critical
Publication of CN101689233B publication Critical patent/CN101689233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit

Abstract

本发明提供了一种安全敏感计算系统中的微处理器(1),用于根据指令来处理操作数,以通过基于模的检查硬件(2)来与所述微处理器(1)并行地执行运算并比较两个结果的同余性,从而增强其安全性。

Description

安全敏感系统中的微处理器
技术领域
本发明涉及安全敏感系统中的微处理器,用于根据指令来处理操作数。
背景技术
在很多不同的学科(如密码和计算机科学)中,模算术是一种强大的工具。由于模算术,在根据特定指令来执行特定步骤的乘法、加法、除法和/或减法的微处理器的帮助下,可以对消息等进行编码和解码。
因此,对于两个整数a和a’,如果n是正整数并且a-a’是n的整数倍,则将a和a’称作模n同余,并且表达为a≡a′(mod n)。
如果a≡a′(mod n)并且b≡b′(mod n),则对于整数a、a’、b和b’,下列规则成立:
·(a+b)≡(a′+b′)(mod n)
·(a-b)≡(a′-b′)(mod n)
·(a*b)≡(a′*b′)(mod n)。
特别在安全敏感的计算系统(例如智能卡控制器)中,微处理器执行的算术运算可能被干扰或者甚至被称为黑客的未授权人员的攻击所操纵。由于敏感数据可能被盗,特别是如果由软件来计算密码算法(如RSA)时,这可能是危险的。
为了克服该问题,两种众所周知的解决方案是常见的。在第一种解决方案中,将微处理器计算硬件加倍。但是这大部分消耗了过多的芯片面积。在第二种解决方案中,执行加倍的计算,但是因此降低了系统性能。
发明内容
相应地,本发明的目的是提供一种微处理器,能够执行安全敏感的计算,并且在不实质性降低其性能的情况下抵御攻击。
为了实现该目标,该微处理器具有基于模的检查硬件,以与该微处理器并行地执行运算,并且用于比较两个结果的同余性。
本发明的核心在于以下事实,对普通微处理器附加配备基于模的检查硬件以增强系统安全性。该冗余硬件可以与主计算单元或者微处理器并行地执行加法、减法、乘法、MAD(乘和加)以及MSUB(乘和减)运算,并且比较两个结果的同余性。在不匹配的情况下,将向系统报告攻击。
由于在模运算之后减少了操作数向量的宽度,检查单元中的计算逻辑将不如主计算单元中的计算逻辑那样复杂。因此,基于模的检查代表了一种经济的、不需要较大芯片面积的解决方案。
显而易见,本领域技术人员根据要计算的数据的要求和数量,可以选择微处理器和检查硬件的精确硬件架构。
为了尽可能少地影响原始计算功能,建议在相同层级中将检查单元构建在主计算单元之外。两个单元共享所有相关输入信号,包括指令和两个操作数。附加地,检查单元获得计算单元的结果输出作为输入。
如果检查硬件已经检测到同余性不匹配,则向系统报告攻击。这意味着,显示任意错误消息并且执行例如软件异常和/或系统复位。
必须对主计算单元的溢出场景加以特别注意。在该情况中,两个单元的结果将典型地不匹配。如果来自计算单元的溢出状态信号可用,则检查单元可以使用它来抑制模错误状态,否则必须针对导致溢出的软件代码部分禁用模检查。
附图说明
下面描述本发明的实施例。附图示出了:
图1示出了具有检查硬件的示意微处理器。
具体实施方式
图1示出了用于对微处理器1内的加法、减法和乘法运算进行基于模的检查的总体硬件架构,微处理器1的详细实现方式可以根据不同的微处理器类型而变化。为了尽可能少地影响原始计算功能,建议在相同层级中在主计算单元或者微处理器1之外构建检查单元2。单元1、2共享所有相关输入信号,包括指令和两个操作数A、B。附加地,如箭头所示,检查单元2获得计算单元的结果输出作为输入。
每一次当微处理器1接收到指令时,检查单元2将首先确定是否应当对其进行基于模的检查。如果是,则对两个操作数A、B进行模运算,而通常用其它更简单的运算来代替实数除法运算,并且之后根据指令类型对其进行加、减或者乘。最终,如果需要,将对结果再一次进行模运算。在微处理器1的结果变为可用之后,也对其进行模运算并且与检查单元2的结果进行比较。如果微处理器1用于特定指令的循环数量是固定的,则检查单元2仅必须等待相同数量的循环。否则检查单元2可以使用指示运算完成的微处理器1的状态信号。在结果不匹配的情况中,检查单元2将使错误状态输出有效,以对攻击进行信号指示。
一些微处理器2支持更复杂的指令MAD和MSUB。在检查它们之前,将首先对计算单元结果寄存器的内容进行模运算并且进行缓冲。在经过模运算的操作数A、B的乘法完成之后,将缓冲的值与乘法结果相加或者从乘法结果中减去,以得到最终的参考模运算结果。
对于模数n,错误检测等于(n-1)/n。模数越大,错误检测就越大,但是检查硬件2的复杂度也越高。因此,设计者必须选择恰当的权衡。
参考标记列表:
1微处理器
2检查硬件
A、B操作数

Claims (5)

1.一种安全敏感计算系统中的微处理器(1),用于根据指令来处理操作数,其特征在于,所述微处理器(1)具有与所述微处理器(1)分离地构建的用于基于模的运算的检查硬件(2),所述检查硬件适于:
与所述微处理器(1)并行地对相同的操作数执行运算,
获得微处理器的结果输出作为输入,
比较检查硬件(2)执行的运算的结果与微处理器(1)输出的结果的同余性,以及
在检测到同余性不匹配的情况下向系统报告攻击。
2.根据权利要求1所述的微处理器,其中,在共享相同输入信号的相同层级中,与所述微处理器(1)分离地构建所述检查硬件(2)。
3.根据权利要求1所述的微处理器,其中,在检查硬件检测到同余性不匹配的情况下输出错误状态。
4.根据权利要求2所述的微处理器,其中,在检查硬件检测到同余性不匹配的情况下输出错误状态。
5.根据权利要求1至4中任意一项所述的微处理器,其中,所述检查硬件(2)使用溢出状态信号来抑制模错误状态。 
CN2008800233377A 2007-07-05 2008-05-09 安全敏感系统中的微处理器 Active CN101689233B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07111867.3 2007-07-05
EP07111867 2007-07-05
PCT/IB2008/051849 WO2009004505A1 (en) 2007-07-05 2008-05-09 Microprocessor in a security-sensitive system

Publications (2)

Publication Number Publication Date
CN101689233A CN101689233A (zh) 2010-03-31
CN101689233B true CN101689233B (zh) 2013-01-02

Family

ID=39753127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800233377A Active CN101689233B (zh) 2007-07-05 2008-05-09 安全敏感系统中的微处理器

Country Status (4)

Country Link
US (1) US8205097B2 (zh)
EP (1) EP2186037B1 (zh)
CN (1) CN101689233B (zh)
WO (1) WO2009004505A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9018930B2 (en) 2010-12-23 2015-04-28 Stmicroelectronics S.R.L. Current generator for temperature compensation
ITMI20111594A1 (it) * 2011-09-05 2013-03-06 St Microelectronics Srl Regolatore di tensione a commutazione
CN102591763B (zh) * 2011-12-31 2015-03-04 龙芯中科技术有限公司 一种基于确定性重放的处理器整体故障检测系统与方法
FR3040512B1 (fr) 2015-08-27 2017-09-08 Stmicroelectronics Rousset Protection d'un calcul d'exponentiation modulaire
FR3040511B1 (fr) * 2015-08-27 2017-09-08 Stmicroelectronics Rousset Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire
EP4055481A1 (en) * 2019-11-11 2022-09-14 Huawei Technologies Co., Ltd. Fault detection system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1465038A1 (en) * 2003-04-03 2004-10-06 STMicroelectronics Limited Memory security device for flexible software environment
EP1569118A2 (de) * 2004-02-24 2005-08-31 Giesecke & Devrient GmbH Verfahren zum sicheren Berechnen eines Ergebniswerts bei einem Mikroprozessorsystem
CN1722046A (zh) * 2004-06-30 2006-01-18 富士通株式会社 安全处理器和用于安全处理器的程序
CN1740941A (zh) * 2004-08-25 2006-03-01 微软公司 用于程序代码安全执行的系统和方法
CN1934517A (zh) * 2004-03-24 2007-03-21 西门子公司 具有集成电路的装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
US5458404A (en) 1991-11-12 1995-10-17 Itt Automotive Europe Gmbh Redundant wheel sensor signal processing in both controller and monitoring circuits
DE19631309A1 (de) * 1996-08-02 1998-02-05 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
US6357024B1 (en) * 1998-08-12 2002-03-12 Advanced Micro Devices, Inc. Electronic system and method for implementing functional redundancy checking by comparing signatures having relatively small numbers of signals
CA2252078C (en) * 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system
AU2998100A (en) * 1999-02-18 2000-09-04 Sun Microsystems, Inc. Data authentication system employing encrypted integrity blocks
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
US6978372B1 (en) * 1999-05-20 2005-12-20 Lucent Technologies Inc. Verification of correct exponentiation or other operations in cryptographic applications
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
JP2003131569A (ja) * 2001-10-24 2003-05-09 Matsushita Electric Ind Co Ltd 二乗剰余演算回路、二乗剰余演算方法及びプログラム
EP1333350A1 (en) * 2002-01-30 2003-08-06 STMicroelectronics Limited Memory security device
FR2838210B1 (fr) * 2002-04-03 2005-11-04 Gemplus Card Int Procede cryptographique protege contre les attaques de type a canal cache
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
FR2883998A1 (fr) * 2005-04-05 2006-10-06 St Microelectronics Sa Coprocesseur securise comprenant un circuit de detection d'un evenement
US7404089B1 (en) * 2005-06-03 2008-07-22 Pitney Bowes Inc. Method and system for protecting against side channel attacks when performing cryptographic operations
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8135958B2 (en) * 2005-11-22 2012-03-13 International Business Machines Corporation Method, system, and apparatus for dynamically validating a data encryption operation
DE602007007310D1 (de) * 2006-04-06 2010-08-05 Nxp Bv Entschlüsselungsverfahren

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1465038A1 (en) * 2003-04-03 2004-10-06 STMicroelectronics Limited Memory security device for flexible software environment
EP1569118A2 (de) * 2004-02-24 2005-08-31 Giesecke & Devrient GmbH Verfahren zum sicheren Berechnen eines Ergebniswerts bei einem Mikroprozessorsystem
CN1934517A (zh) * 2004-03-24 2007-03-21 西门子公司 具有集成电路的装置
CN1722046A (zh) * 2004-06-30 2006-01-18 富士通株式会社 安全处理器和用于安全处理器的程序
CN1740941A (zh) * 2004-08-25 2006-03-01 微软公司 用于程序代码安全执行的系统和方法

Also Published As

Publication number Publication date
US8205097B2 (en) 2012-06-19
CN101689233A (zh) 2010-03-31
WO2009004505A1 (en) 2009-01-08
EP2186037B1 (en) 2018-10-03
US20100191980A1 (en) 2010-07-29
EP2186037A1 (en) 2010-05-19

Similar Documents

Publication Publication Date Title
CN101689233B (zh) 安全敏感系统中的微处理器
US7801298B2 (en) Apparatus and method for detecting a potential attack on a cryptographic calculation
Vassiliadis et al. Interlock collapsing ALU's
Arnold et al. The IBM PCIXCC: A new cryptographic coprocessor for the IBM eServer
US10515218B2 (en) Systems, apparatuses, and methods for platform security
EP3719639A2 (en) Systems and methods to perform floating-point addition with selected rounding
CN109479003B (zh) 用于安全椭圆曲线密码指令的处理器、系统、方法和设备
US8195923B2 (en) Methods and mechanisms to support multiple features for a number of opcodes
CN107924444B (zh) 安全的模幂运算处理器、方法、系统和指令
Arnold et al. IBM 4765 cryptographic coprocessor
Medwed et al. Arithmetic logic units with high error detection rates to counteract fault attacks
JP4766285B2 (ja) 永久データハードウェアインテグリティ
US10859627B2 (en) In-field system testing
US8626816B2 (en) Method, system and computer program product for detecting errors in fixed point division operation results
US20060041708A1 (en) Integrated circuit
CN114692142A (zh) 针对推测脆弱性来强化分支硬件
JP4382128B2 (ja) 情報処理装置、および、その誤演算検出方法
US20090216823A1 (en) Method, system and computer program product for verifying floating point divide operation results
JP3555881B2 (ja) 演算回路とそのエラー検出方法
US11797300B1 (en) Apparatus for calculating and retaining a bound on error during floating-point operations and methods thereof
US8447796B2 (en) Apparatus with a vector generation unit and encoder for receiving first and second inputs to generate at least significant zero (LSZ)
US8392490B2 (en) Identifying decimal floating point addition operations that do not require alignment, normalization or rounding
JP4729770B2 (ja) 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム
CN114692139A (zh) 针对推测脆弱性来强化加载硬件
CN114692140A (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