CN101689233A - 安全敏感系统中的微处理器 - Google Patents
安全敏感系统中的微处理器 Download PDFInfo
- Publication number
- CN101689233A CN101689233A CN200880023337A CN200880023337A CN101689233A CN 101689233 A CN101689233 A CN 101689233A CN 200880023337 A CN200880023337 A CN 200880023337A CN 200880023337 A CN200880023337 A CN 200880023337A CN 101689233 A CN101689233 A CN 101689233A
- Authority
- CN
- China
- Prior art keywords
- microprocessor
- hardware
- inspection
- unit
- mould
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1637—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
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 (4)
1、一种安全敏感计算系统中的微处理器(1),用于根据指令来处理操作数,其特征在于,提供基于模的检查硬件(2),以与所述微处理器(1)并行地执行运算,并比较两个结果的同余性。
2、根据权利要求1所述的微处理器,其中,在相同层级中,与所述微处理器(1)分离地构建所述检查硬件(2)。
3、根据权利要求1或2所述的微处理器,其中,能够显示错误消息。
4、根据权利要求1至3中任意一项所述的微处理器,其中,所述检查硬件(2)能够考虑溢出状态信号。
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 true CN101689233A (zh) | 2010-03-31 |
CN101689233B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591763A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种基于确定性重放的处理器整体故障检测系统与方法 |
CN106484365A (zh) * | 2015-08-27 | 2017-03-08 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
US10229264B2 (en) | 2015-08-27 | 2019-03-12 | Stmicroelectronics (Rousset) Sas | Protection of a modular exponentiation calculation |
Families Citing this family (3)
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 |
WO2021093931A1 (en) * | 2019-11-11 | 2021-05-20 | Huawei Technologies Co., Ltd. | Fault detection system |
Family Cites Families (25)
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 |
WO2000049764A1 (en) * | 1999-02-18 | 2000-08-24 | 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 |
EP1465038B1 (en) * | 2003-04-03 | 2013-03-27 | STMicroelectronics (Research & Development) Limited | Memory security device for flexible software environment |
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 |
DE102004008901A1 (de) * | 2004-02-24 | 2005-09-15 | Giesecke & Devrient Gmbh | Sichere Ergebniswertberechnung |
DE102004014435A1 (de) * | 2004-03-24 | 2005-11-17 | Siemens Ag | Anordnung mit einem integrierten Schaltkreis |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US7802110B2 (en) * | 2004-08-25 | 2010-09-21 | Microsoft Corporation | System and method for secure execution of program code |
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 |
US8065531B2 (en) * | 2006-04-06 | 2011-11-22 | Nxp B.V. | Decryption method |
-
2008
- 2008-05-09 CN CN2008800233377A patent/CN101689233B/zh active Active
- 2008-05-09 EP EP08763080.2A patent/EP2186037B1/en active Active
- 2008-05-09 US US12/666,910 patent/US8205097B2/en active Active
- 2008-05-09 WO PCT/IB2008/051849 patent/WO2009004505A1/en active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591763A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种基于确定性重放的处理器整体故障检测系统与方法 |
CN102591763B (zh) * | 2011-12-31 | 2015-03-04 | 龙芯中科技术有限公司 | 一种基于确定性重放的处理器整体故障检测系统与方法 |
CN106484365A (zh) * | 2015-08-27 | 2017-03-08 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
US10229264B2 (en) | 2015-08-27 | 2019-03-12 | Stmicroelectronics (Rousset) Sas | Protection of a modular exponentiation calculation |
CN106484365B (zh) * | 2015-08-27 | 2019-03-19 | 意法半导体(鲁塞)公司 | 验证执行模幂计算的电子电路的敏感度 |
Also Published As
Publication number | Publication date |
---|---|
WO2009004505A1 (en) | 2009-01-08 |
CN101689233B (zh) | 2013-01-02 |
EP2186037A1 (en) | 2010-05-19 |
EP2186037B1 (en) | 2018-10-03 |
US20100191980A1 (en) | 2010-07-29 |
US8205097B2 (en) | 2012-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3719639B1 (en) | Systems and methods to perform floating-point addition with selected rounding | |
CN101689233B (zh) | 安全敏感系统中的微处理器 | |
US10515218B2 (en) | Systems, apparatuses, and methods for platform security | |
US9218490B2 (en) | Using a trusted platform module for boot policy and secure firmware | |
Vassiliadis et al. | Interlock collapsing ALU's | |
US7801298B2 (en) | Apparatus and method for detecting a potential attack on a cryptographic calculation | |
CN110168493B (zh) | 在128位宽的操作数上的融合乘加浮点运算 | |
US10491381B2 (en) | In-field system test security | |
US20160180095A1 (en) | Measured boot capability | |
US11226791B2 (en) | Arithmetic processing device and method of controlling arithmetic processing device that enables suppression of size of device | |
Arnold et al. | IBM 4765 cryptographic coprocessor | |
CN103049710B (zh) | 用于sm2数字签名验证算法的fpga芯片 | |
WO2010051298A2 (en) | Instruction and logic for performing range detection | |
US20230169173A1 (en) | Standardized Interface for Intellectual Property Blocks | |
JP4766285B2 (ja) | 永久データハードウェアインテグリティ | |
Medwed et al. | Arithmetic logic units with high error detection rates to counteract fault attacks | |
CN111752745A (zh) | 对码字中相邻两位错误的检测 | |
US10859627B2 (en) | In-field system testing | |
US8626816B2 (en) | Method, system and computer program product for detecting errors in fixed point division operation results | |
US20180067722A1 (en) | Apparatus for Calculating and Retaining a Bound on Error during Floating Point Operations and Methods Thereof | |
CN114692139A (zh) | 针对推测脆弱性来强化加载硬件 | |
JP4382128B2 (ja) | 情報処理装置、および、その誤演算検出方法 | |
US11797300B1 (en) | Apparatus for calculating and retaining a bound on error during floating-point operations and methods thereof | |
US20220060315A1 (en) | Sign-based partial reduction of modular operations in arithmetic logic units | |
JP3555881B2 (ja) | 演算回路とそのエラー検出方法 |
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 |