CN102027482A - 用于安全数据读取的方法和数据处理系统 - Google Patents
用于安全数据读取的方法和数据处理系统 Download PDFInfo
- Publication number
- CN102027482A CN102027482A CN2009801170435A CN200980117043A CN102027482A CN 102027482 A CN102027482 A CN 102027482A CN 2009801170435 A CN2009801170435 A CN 2009801170435A CN 200980117043 A CN200980117043 A CN 200980117043A CN 102027482 A CN102027482 A CN 102027482A
- Authority
- CN
- China
- Prior art keywords
- request
- reading
- read
- another
- 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.)
- Pending
Links
Images
Classifications
-
- 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/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2123—Dummy operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种用于安全数据读取的方法和数据处理系统。所述方法通过以交织的方式重复读取请求来保护数据读取免受故障攻击,具体地,所述方法包括以下步骤:(M200)分派第一读取请求;(M400)分派第二读取请求;(M600)分派另一第一读取请求;(M1000-a)在存储器响应于第一读取请求而产生的第一结果与存储器响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号。
Description
技术领域
本发明涉及一种用于数据处理系统的数据读取方法,所述数据处理系统包括地址分派器,用于向存储器分派读取请求。
本发明还涉及一种数据处理系统,所述数据处理系统包括地址分派器,用于向存储器分派读取请求。
本发明还涉及一种包括计算机代码的计算机程序产品。
背景技术
故障攻击可以例如用于破坏数据处理系统(如计算机产品)的安全性和完整性。具体地,故障攻击是智能卡的一个关注领域。故障攻击在系统操作期间将故障引入系统,从而使系统偏离其所设计的操作。过去,故障攻击通常是例如在电源线、时钟线或复位线上引入的假信号攻击。更近以来,光攻击被发现是一种引入故障并干扰微控制器的程序流的相对容易的方式。光攻击典型地在集成电路(IC)操作中通过例如在IC表面进行闪光来执行。
典型地,故障攻击以命令(如条件跳转或条件跳转之前的测试指令)为目标。例如,故障攻击可以用于欺骗智能卡中对PIN号码的验证。如果用户输入不正确的PIN号码,则他/她可以在程序将要跳转至用于处理错误PIN号码的例程的时刻执行故障攻击。由于故障攻击,对用于处理错误PIN号码的例程的跳转未执行,如同PIN号码正确一样,程序继续执行。在这种情况下,用户通过故障攻击获得了与正确PIN号码相关联的特权,尽管他/她仅仅拥有错误的PIN号码。
使用故障攻击的其他类别的安全攻击是对例如在密码协议中使用的密码算法的攻击。例如,使用故障攻击,攻击者可以使算法产生错误的值。通过分析以这种方式产生的错误的类型,在一些情况下,攻击者能够推断出例如秘密密钥。见例如Boneh等人的“On theImportance of Checking Cryptographic Protocols for Faults”,1997,Lecture Notes in Computer Science,volume 1233,pages 37-51。后一种攻击也称为Bellcore攻击。
光攻击影响对存储器(如易失性存储器(如RAM)和非易失性存储器(如只读存储器(ROM)、EEPROM和闪存存储器))的访问。根据存储器的具体类型和具体条件,光攻击的效果可以改变。例如,在非易失性存储器中,通常光攻击不是改变存储器单元的内容,而是仅瞬间改变读回的值;在光攻击结束之后,存储器可以返回其先前内容,光攻击没有改变该先前内容。根据具体条件,这种效果可以是不对称的:比特倾向于更容易从一个值翻转至另一个值,而更难从所述另一个值翻转至所述一个值。作为另一示例,在易失性存储器中,根据光攻击的焦点,光攻击可以造成存储器中的永久改变或者在读取期间的瞬间改变。
引入单段连续故障的故障攻击将被称为简单故障攻击。破坏从存储器的单次读取的故障攻击将被称为短故障攻击。破坏多于一次读取操作的简单故障攻击,例如覆盖多于一次读取操作的长闪光,将被称为长故障攻击。包括多个独立故障的故障攻击将被称为多故障攻击。
公开的美国专利申请20030204696:“Tamper-resistant method and data processing system using the same”公开了一种数据处理系统的防篡改方法,其内容通过引用并入此处。
根据美国专利申请20030204696的方法涉及从存储器的区域中第一次读取数据项和从所述存储器的所述区域中第二次读取所述数据项,第二次读取紧接在第一次读取之后,以及,确定第一次读取和第二次读取是否产生相同的结果。在结果不相同的情况下,检测到故障。按照这种方式,可以检测仅覆盖两次读取之一的简单故障攻击。
如果故障扩展至第一次读取和第二次读取两者,则根据美国专利申请20030204696的方法不能检测到故障,因为比较可能不能检测到任何差异。具体地,不能检测到所有长故障攻击。
现有技术的问题在于,不能可靠地检测到覆盖从存储器的多于一次读取操作的故障攻击。
发明内容
本发明的目的是改进对从存储器进行读取时的故障攻击的检测。
这一目的是通过根据本发明的数据读取方法来实现的。根据本发明的方法是一种用于数据处理系统的安全数据读取方法,所述数据处理系统包括地址分派器,用于向存储器分派读取请求。所述方法包括:分派第一读取请求;分派第二读取请求;分派另一第一读取请求;在存储器响应于第一读取请求而产生的第一结果与存储器响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号,其中:所述第一读取请求是在分派所述第二读取请求之前分派的,所述第二读取请求是在分派所述另一第一读取请求之前分派的。
对于以第一读取请求或另一第一读取请求为目标的故障攻击而言,为了成功,必须以这两者为目标。以第一读取请求和另一第一读取请求两者为目标的简单故障攻击也将干扰第二读取请求。因此,采用本方法的设备的操作将受到攻击所尝试完成的攻击之外的干扰。因此,设备的操作可能失败,攻击可能被阻止。
在根据本发明的方法的优选实施例中,用于安全数据读取的方法包括以下步骤:分派第一读取请求;分派第二读取请求;分派另一第一读取请求;在存储器响应于第一读取请求而产生的第一结果与存储器响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号,在存储器响应于第二读取请求而产生的第二结果与同第二读取请求相关联的预期数据不相符的情况下,产生异常信号,其中:所述第一读取请求是在分派所述第二读取请求之前分派的,所述第二读取请求是在分派所述另一第一读取请求之前分派的。
根据本发明的方法检测长故障攻击和短故障攻击。可以检测到覆盖第一读取请求、但未覆盖另一读取请求的长或短故障攻击,因为存储器响应于第一读取请求而产生的第一结果在这种情况下与存储器响应于另一第一读取请求而产生的另一第一结果不相符。可以检测到覆盖第一读取请求、第二读取请求和另一第一读取请求的长故障攻击,因为:由于故障,第二读取请求将产生与同第二读取请求相关联的预期数据不同的结果。
通过将重复的读取与产生预期结果的其他读取交织,可以检测到持续长于单一指令的故障攻击。
用于安全数据读取的方法还可以应用于以下情形:其中应用的鲁棒性问题比安全性问题更加重要。示例包括:安全关键设备,如医疗设备;任务关键设备,例如其故障可以造成较大损失或金融后果的设备;或者已知在极端环境(例如非常高温或低温)中使用的设备;或者对于在其能力边缘操作的设备,例如以非常高的时钟速度操作的IC;或者对于在操作使用期间遭受可能造成存储器故障的粒子簇射(如在外层空间中发生)的设备;或者在辐射水平增大的区域中(如在一些医院设备中使用)。
数据读取的示例是:读取例如在计算机程序中使用的指令;读取指令要操作的数据;读取数据以转发至其他设备;参数;从传感器获得传感器读数;读取设备(如协处理器,例如密码协处理器)创建的数据。该方法尤其有利于指令,因为该方法防止例如对条件跳转的欺骗。该方法尤其有利于指令要操作的数据,因为该方法防止了攻击,如Bellcore攻击。
地址分派器是一种向存储器发送或转发读取请求的设备。地址分派器的示例是:中央处理单元(CPU),如8051 CPU、ARM CPU或MIPS CPU;存储器管理单元,用于管理存储器资源,可能包括管理虚拟存储器;协议的软件实现,通过数字网络来访问存储器,如服务器消息块(SMB)协议。该方法尤其有利于集成存储器中存储的数据,因为故障攻击接着可能在与处理数据的位置相同的位置处执行。
例如,存储器可以由ROM存储器或者例如易受瞬时差错影响的任何其他类型的合适存储器制成。
读取请求典型地包括地址。地址可以是物理存储器单元的直接表示。地址还可以是虚拟地址。在一些情况下,例如,如果读取请求以传感器为目标,则读取请求可以是针对存储器的完全拷贝的请求。读取请求可以以任何方便的数据量为目标。典型地,读取请求将针对与存储器宽相等数目的多个字节。读取请求还可以以例如字节、字、双字等等为目标。可以沿从读取请求的源至存储器的方向来对读取请求进行变换。例如,如果读取请求针对虚拟地址,可以在某一点将虚拟地址变换为针对物理地址的读取请求。这种读取请求变换是可选的,可以在存储器根据读取请求进行操作之前的任一点进行。
典型地,另一第一读取请求是第一读取请求的精确拷贝,但这不是必须的。另一第一读取请求还可以以较少的数据为目标。例如,第一读取请求可以请求4个存储器字节,而另一第一读取请求仅以相同地址处的4个存储器字节中的2个字节为目标。还可以有其他方式,例如,第一读取请求可以请求2个存储器字节,而另一第一读取请求以包括所述2个存储器字节在内的4个存储器字节为目标。
在第一或另一第一读取期间,仅读取完整存储器宽度的一部分,将降低保护等级,因为攻击可能在未读取两次的部分中进行。该保护适用于物理存储器,对该物理存储器读取两次,并且对物理存储器的读取操作进行合适的交织。减少第一和另一第一读取请求中任一个中读取的字节数的优点在于,降低了该方法所使用的功率消耗。
在一个实施例中,如果结果相等,则存储器产生的两个结果相符。使用相等性来验证相符具有以下优点:其实现尤其简单,并且给出了数据未被篡改的高度保证。
在一个实施例中,第一读取请求和另一第一读取请求请求不同数目的字节,其中,第一读取请求和另一第一读取请求请求至少一个公共字节。第一读取请求和另一读取请求均从存储器中的相同地址请求该公共字节。在本实施例中,如果存储器响应于第一读取请求而产生的公共字节与存储器响应于另一第一读取请求而产生的公共字节相等,则结果相符。
在一些实施例中。存储器存储多个比特。并且,存储器能够通过位线和字线来寻址。每个指定比特存储在指定位线和指定字线的组合处。光攻击典型地攻击相对于特定位线存储的所有比特。在将指定数据比特与奇偶校验比特一起存储的实施例中,如果在指定位线而在不同于指定字线的字线存储奇偶校验比特,则是尤其有利的。
异常信号可以包括附加信息,如所发生的异常的类型、时间戳、存储器中发生故障的区域等等。典型地,将异常信号转发至能够进行校正动作的异常处理器。校正动作可以包括:重复导致异常信号的读取请求、关闭数据处理系统、或者清除所有存储器。
同第二读取请求相关联的预期数据可以来自多种源,例如通过读回早先写入的值。
在该方法的步骤之间,可以插入其他操作。例如,可以在该方法的任何两个步骤之间插入另一读取请求。例如在低安全性任务与高安全性任务并行执行的情况下,这可能是有利的。低安全性任务可以在高安全性任务的读取请求(根据本发明来保护其免受故障攻击)之间插入其读取请求(未专门保护其免受故障攻击)。
根据本发明的方法尤其有利于在数据处理系统中使用,在所述数据处理系统中,存储器以及可能地与存储器相结合使用的总线相对于CPU速度具有高带宽。在该情形中,根据本发明重复读取请求不会实质上减缓CPU,因为存储器的带宽可以处理高于CPU速度的速度。在该情况下,根据本发明的方法可以在整个代码执行和/或数据获取时间内启用。典型地,在从ROM进行读取时,将出现这一优点。
在根据本发明的方法的优选实施例中,所述方法包括在分派所述另一第一读取请求之后并在产生异常信号之前执行的另一步骤:分派另一第二读取请求。所述同第二读取请求相关联的预期数据是存储器响应于所述另一第二读取请求而产生的另一第二结果。
通过以交织的方式重复读取数据,迫使使用简单故障攻击的攻击者干扰多个值。以不可检测的方式干扰数据读取的唯一方式是通过对以下所有读取请求进行攻击:第一读取请求、第二读取请求、另一第一读取请求和另一第二读取请求。按照这种方式,故障需要被扩展至更长的长度以免被检测到。由于多种原因,这对于攻击者而言是不利的。由于故障变长,程序流变得更加扰乱,攻击者更可能导致设备采取非期望的状态,如崩溃。在存储器加密的情况下,这一问题更加显著。在解密之后,对加密存储器的故障攻击将产生随机数据。随机数据(例如指令)的流越长,攻击结果变得越不可预测。第二个不利之处在于,由于攻击者被迫攻击更长的序列,他/她在如何影响系统方面的选择更少。
此外,去除单一指令(如分支处理指令)的尤其有吸引力的攻击此时将不可能进行。从程序流中去除许多指令还使攻击者承担以下风险:一些重要指令(如解码指令)将不被执行,在这种情况下攻击将显得无用。
如果多故障攻击以相同的方式对预期数据本身和第二读取请求进行干扰,则该方法不能注意到多故障攻击。
注意,该方法可以用于任何数目的读取请求。例如,给定多个读取请求:首先分派所述多个读取请求,然后分派相同数目的另外的读取请求。
该方法有利地用于读取密钥。例如,读取由16个密钥字节组成的密钥可以如下进行:首先分派以16个密钥字节为目标的、16个1字节的读取请求,其次分派同样以16个密钥字节为目标的、同样均为1字节的16个另外的读取请求。
在根据本发明的方法的优选实施例中,所述方法包括在分派所述第二读取请求之前执行的另一步骤:将存储器配置为测试模式,其中,存储器被配置为对第二读取请求产生预定的固定响应;和/或在分派所述第二读取请求之后执行的另一步骤:将存储器重新配置为非测试模式;其中,同第二读取请求相关联的预期数据与对第二读取请求的预定的固定响应相等。
对于第二读取请求,可以使用虚拟读取请求。虚拟读取请求是“读取已知答案”模式中的读取请求。例如,虚拟读取请求可以被实现为测试模式中进行的测试读取请求,其中预期得到已知答案。可以通过在存储器字线禁用时进行读取请求来实现测试读取请求。虚拟读取请求也受光攻击干扰。按照这种方式,可以检测虚拟读取请求是否已经被光攻击击中。
对第二读取请求的预定的固定响应独立于第二读取请求所指示的存储器区域中的存储内容。
长故障攻击也将覆盖(即击中)第二读取请求。如果第二读取请求被干扰,则存储器产生的第二结果被改变。相应地,使用已知结果(即预期数据)进行的验证将失败。短故障攻击仍能够被检测,因为仅击中第一请求或另一读取请求的短故障攻击将产生异常信号。
根据本发明,当序列遭受故障攻击(如光攻击)的攻击时,在读取请求的序列的起始处,虚拟读取请求尤其有利。在序列中存在间隙的情况下,可以使用这种虚拟读取请求来填充这些间隙。序列中较早的虚拟读取请求还克服了在序列开始之前光已经开启的情况下出现的问题。在没有虚拟读取请求或者其对应检查的情况下,只要光保持开启,则这种攻击将保持不被检测到。在后者的情况下,将不执行敏感代码,从而减轻这种情形的后果。然而,如果根据本发明利用交织的重复读取请求的方法不是在使用该方法的设备操作的整个持续时间期间进行,而是根据例如安全性和/或性能需要开启和关闭,则该问题将变得更加严重。向读取序列起始处的虚拟读取请求解决了这一问题,由于这是对光开启或关闭的绝对测量。然而,相反,交织的读取可以被认为是一种差分光检测器,仅检测光的改变(即光的开启或关闭)而不检测光本身。
在根据本发明的方法的优选实施例中,所述方法包括在分派所述另一第一读取请求之后并在分派所述另一第二读取请求之前执行的另一步骤:分派第三读取请求。所述方法包括在分派所述另一第二读取请求之后执行的另一步骤:分派另一第三读取请求,其中,所述方法还包括在分派所述另一第三读取请求之后执行的另一步骤:在存储器响应于所述第三读取请求而产生的第三结果与存储器响应于所述另一第三读取请求而产生的另一第三结果不相符的情况下,产生异常信号。
通过以这种方式来组合读取请求,可以检测到受到攻击的任何单一读取请求。此外,也可以检测到持续长于一个读取请求的任何故障攻击。
在任一点,可以在该方法的步骤之间插入(本来不相关的)读取请求。使用这种操作,可以以任何数目的读取请求来扩展读取请求的序列,而同时在吞吐量方面具有最小延迟。扩展该序列是有利的,因为更多读取请求得到了保护。此外,扩展后的序列具有以下属性:读取请求的任何首次和另一次分派之间的时间可以实质上保持恒定,简化了异常信号的产生。
该方法有利地用于读取密钥。例如,为了读取由16个密钥字节组成的密钥,将用于检索16个密钥字节的16个读取请求编号为1至16。每个读取请求以以下给出的顺序被分派两次:
1,X,2,1,3,2,4,3,5,4,6,5,7,6,8,7,9,8,10,9,11,10,12,11,13,12,14,13,15,14,16,15,X,16
标记为“X”的位置尤其适于插入虚拟读取请求。标记为“X”的位置也可以被忽略。
在根据本发明的方法的优选实施例中,所述方法包括在分派所述另一第一读取请求之后并在分派所述第三读取请求之前执行的另一步骤:分派又一第二读取请求。如果存储器响应于所述第二读取请求而产生的第二结果与存储器响应于所述又一第二读取请求而产生的又一结果不相符,则也产生异常信号。
保护第二读取请求免受多故障攻击(其中使用两个分离的短故障)。由于第二读取请求读取三次,只能以其中两次为目标。因此,可以检测到这种攻击。为了实现最大优点,如具体实施例中解释的对该模式进行扩展。
为了检测包括多于2个故障攻击的多故障攻击,可以相应地更多次重复读取请求。例如,为了检测“N”故障攻击,可以将读取请求重复至少“N+1”次。
在根据本发明的方法的优选实施例中,分派读取请求包括:接收初始读取请求的第一序列,并分派读取请求的第二序列,所述方法被配置为将第一序列变换为第二序列。第二序列包括:分派第一读取请求、分派第二读取请求和分派另一第一读取请求。实质上,在第二序列中,将第一序列中每个接收到的初始读取请求分派至少两次。在实质上任何指定读取请求的首次分派与该指定读取请求的另一次分派之间,分派至少一个其他读取请求。该其他读取请求不同于该指定读取请求。所述方法包括以下步骤:在存储器响应于指定读取请求的首次分派而产生的指定结果与存储器响应于所述指定读取请求的另一次分派而产生的另一指定结果不相符的情况下,产生异常信号。
在第二序列中,以交织的方式来分派读取请求。因此,始终可以检测到扩展至至多两个分派的简单故障攻击。
通过保护更长的分派序列,可以实现更好的保护。由于接收到读取请求的第一未受保护序列,构造了分派的第二序列。注意,接收的序列与分派的序列交织。在接收到多个请求之后,可以开始首次分派。
按照这种方式,实现了以下优点:抵御故障攻击的保护被扩展至更多分派。
在根据本发明的方法的优选实施例中,在实质上任何指定读取命令的首次分派和所述指定读取命令的另一次分派之间,至少分派第一其他读取命令和第二其他读取命令。还在所述指定读取命令的首次分派之前分派所述第一其他读取命令。还在所述指定读取命令的另一次分派之后分派所述第二其他读取命令。
通过将链接至未来和过去的读取请求放置在读取请求的首次和另一次分派之间,实现了抵御故障攻击的更好的保护。
在根据本发明的方法的优选实施例中,在第二序列中,将第一序列中每个接收到的初始读取请求分派至少多次。所述多次至少为3次。在第二序列中指定的接收到的初始读取请求的任何两次分派之间,分派至少一个其他读取请求。
在根据本发明的方法的实际实施例中,在用于安全数据读取的方法之前、之中和/或之后进行以下步骤:将存储器配置为测试模式,其中,存储器被配置为对测试读取请求产生预定的固定响应;分派测试读取请求;和/或将存储器重新配置为非测试模式;在存储器响应于测试读取请求而产生的测试结果与对测试读取请求的预定的固定响应不相符的情况下,产生异常信号。
对存储器的测试模式中的读取请求(即读取已知答案的读取请求)在此时检查故障攻击的存在。当采用根据本发明方法的设备启动时,这是尤其有利的。这保证了在该序列启动时不存在故障攻击。对于所述用于安全数据读取的方法,该方法在方法开始时未受到故障攻击是很重要的。这可以通过在该方法之前进行测试模式中的测试读取来实现。
如果根据本发明的方法用于一些类型的存储器,则CPU将变慢。例如,在使用EEPROM或基于闪存的存储器时,将会出现这种变慢。出于这一原因,根据本发明的方法可能不必需始终激活,而是可以仅在要执行的代码或者要读取的数据尤其对安全性敏感的情况下才使用。在这种情况下,使用测试模式中的读取请求以检测在方法开始时故障攻击是否已经激活是尤其有利的。
在根据本发明的用于安全数据读取的方法的优选实施例中,所述方法包括以下步骤:选择随机时间间隔。将所述另一第一读取请求的分派延迟所述随机时间间隔。
如果在分派第一读取请求和分派另一第一读取请求之间出现实质上恒定的时间段,则通过将第二故障攻击定时在第一故障攻击后过去该恒定时间段之后,可以尝试进行多故障攻击。通过将另一第一分派延迟随机时间,不能对第二故障攻击进行精确定时。
该实施例的优点在于使多故障攻击更难完成。
可以如下选择随机时间间隔:首先,使用伪随机或真随机数产生器,可以选择区间(例如从1至10的区间)中的随机数。其次,通过将随机数与单位时间相乘,例如通过将随机数与1毫秒相乘来选择时间段。
引入随机延迟的一种备选方式是通过在该方法中引入随机步骤。
例如,可以如下选择随机步骤:首先,使用伪随机或真随机数产生器,可以选择区间(例如从1至10的区间)中的随机数。如果随机数低于特定预定数(例如2),则在分派序列中引入测试读取。如果在分派另一第一读取请求之前引入测试读取,则因此延迟了另一第一读取请求的分派。
在根据本发明的用于安全数据读取的方法的优选实施例中,存储器产生数据比特和奇偶校验比特,其中,所述方法包括以下步骤:使用纠错码来验证奇偶校验比特与数据比特相关。
在如以下展开的特定情况下,将交织读取与奇偶校验比特相结合,提供了额外的保护。
根据本发明的数据处理系统包括:地址分派器,用于向存储器分派读取请求;以及用于执行根据本发明的方法的装置。
可以使用执行软件(即计算机程序)的处理器来实现该装置。也可以使用状态机来实现该装置。软件或状态机执行根据本发明的方法。
用于分派的装置和用于产生异常信号的装置可以组合为一个装置,或者可以分离。如果存储器不是集成在系统中,则对上述装置进行组合是有利的。为了最佳的安全性,用于产生异常信号的装置与产生读取请求的实体(例如CPU)组合。
例如,包括CPU的数据处理系统可以被配置用于:通过执行合适的软件程序,根据本发明来读取数据。按照这种方式,可以在不需要硬件修改的情况下保护数据读取。
在根据本发明的数据处理系统的优选实施例中,地址分派器包括:读取请求输入、第一读取请求队列、第二读取请求队列和复用器。每个读取请求队列被配置为对在读取请求输入处出现的至少一个读取请求进行缓冲,并被配置为将读取请求输出至复用器。复用器被配置为选择读取请求队列,并将所选读取请求队列中的读取请求转发至存储器。
典型地,读取请求队列是先进先出(FIFO)缓冲器。队列具有用于缓冲一定数目的读取请求的特定容量。
根据该实施例,根据本发明的分派序列可以使用最少硬件装置来产生。注意,读取请求队列的容量小到单一读取请求。
在根据本发明的数据处理系统的优选实施例中,所述系统包括异常信号产生器。异常信号产生器包括:解复用器、第一结果队列、第二结果队列和比较器(306)。解复用器被配置为从存储器接收数据对象。解复用器被配置为将数据对象转发至第一结果队列或第二结果队列。比较器(306)能够访问第一队列的头部和第二队列的头部。比较器(306)被配置为在预定时刻第一队列的头部与第二队列的头部不相符的情况下产生异常信号。
结果队列具有用于缓冲一定数目的读取请求结果的特定容量。
注意,结果队列的容量可以小到单一读取请求结果。
根据该实施例,可以使用最少硬件装置来产生异常信号。
在根据本发明的数据处理系统的实际实施例中,存储器集成在系统中。
在根据本发明的数据处理系统的实际实施例中,系统在以下任一项中实现:智能卡、机顶盒、移动电话和个人数字助理。在这种情况下,应注意,本发明还涉及一种具有根据本发明的数据处理系统的设备,尤其是智能卡、机顶盒、移动电话和个人数字助理中的任一项。
可以使用本发明来改进用于银行和电子政务应用的IC(其中需要高等级的防篡改)。此外,需要安全证书(如公共准则(CC)证书,例如EAL 4+和更高等级的证书)的系统可以从本发明中受益。
根据本发明的计算机程序产品包括用于实现根据本发明的方法的计算机代码。
计算机程序产品的实施例包括:包括计算机程序的存储单元;包括计算机程序的服务器;等等。可以使用各种公知的高级编程语言,如C、C++或Pascal来制作计算机代码。备选地,可以使用低级编程语言,如汇编、机器代码或微代码来制作计算机代码。
因此,提供了用于安全数据读取的方法和数据处理系统。该方法通过以交织的方式来重复读取请求,从而保护数据读取免受故障攻击,具体地,所述方法包括以下步骤:分派第一读取请求;分派第二读取请求;分派另一第一读取请求;在存储器响应于第一读取请求而产生的第一结果与存储器响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号。
应注意,公开的国际专利申请WO 2004/049349和WO2007/020567(均通过引用并入此处)公开了一种通过禁用所有字线(DAW),在激活非易失性(NV)存储器的测试模式时从NV存储器中进行读取的配置。在测试模式中从存储器进行读取时,存储器产生预期读取数据值。与该值偏离的读取结果直接指示了外部影响,如在矩阵位线上或在读出放大器上的光攻击。
测试模式也被称为:读取已知答案模式。
使用WO 2004/049349和WO2007/020567的方法,可以在真实读取请求的流中插入虚拟读取请求,其中,在存储器被配置为测试模式时执行读取请求。通过验证存储器响应于虚拟读取请求而产生的结果是否是已知结果,可以检测故障攻击。该方法的问题在于,未对任何真实读取请求进行安全保护。如果故障攻击非常短或者仅影响真实读取请求而不影响虚拟读取请求,则不能保证真实读取请求不被故障攻击击中。使用该方法,不能可靠地检测短故障攻击,如短闪光。
国际专利申请WO 2004/049349和WO 2007/020567未将测试模式中的读取的使用与重复和交织的读取请求相结合。
附图说明
通过示例并参照附图,更详细地解释本发明,附图中:
图1是示出了将根据本发明的用于安全数据读取的方法应用于数据处理系统的框图。
图2是示意了根据本发明的用于安全数据读取的方法的第一实施例的流程图。
图3是示意了根据本发明的用于安全数据读取的方法的第二实施例的流程图。
图4是示意了根据本发明的用于安全数据读取的方法的第三实施例的流程图。
图5是示意了根据本发明的用于安全数据读取的方法的第四实施例的流程图。
图6是示意了根据本发明的用于安全数据读取的方法的第五实施例的流程图。
图7是示出了由根据本发明的用于安全数据读取的方法的各个实施例产生的分派序列D1-D5的图。
图8是分派序列D3的图形描述。
图9、10、11、12和13是根据本发明的各个分派序列的图形描述。
图14是示意了用于分派测试读取请求的方法的流程图。
图15是示出了地址分派器的另一实施例的框图。
图16是示出了异常信号产生器的另一实施例的框图。
贯穿附图,使用相同的参考标号来指示相似或相应的特征。
参考标号列表:
100数据处理系统
101读取请求输入
102地址分派器
104存储器
106异常信号产生器
108异常处理器
110CPU
202第一读取请求队列
204第二读取请求队列
206复用器
300解复用器
302第一结果队列
304第二结果队列
306比较器
400设备,如智能卡
(M101)将存储器配置为测试模式
(M102)分派测试读取请求
(M103)将存储器重新配置为非测试模式
(M200)分派第一读取请求
(M300)将存储器配置为测试模式
(M400)分派第二读取请求
(M450)将存储器重新配置为非测试模式
(M500)选择随机时间间隔
(M600)分派另一第一读取请求
(M650)分派又一第二读取请求
(M700)分派第三读取请求
(M800)分派另一第二读取请求
(M900)分派另一第三读取请求
(M1000-a)在存储器响应于第一读取请求而产生的第一结果与存储器响应于另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号
(M1000-b)在存储器响应于第二读取请求而产生的第二结果与同第二读取请求相关联的预期数据不相符的情况下,产生异常信号
(M1000-c)在存储器响应于第三读取请求而产生的第三结果与存储器响应于另一第三读取请求而产生的另一第三结果不相符的情况下,产生异常信号
(M1000-d)在存储器响应于测试读取请求而产生的测试结果与对测试读取请求的预定的固定响应不相符的情况下,产生异常信号
具体实施方式
对本发明容易做出许多不同形式的实施例,在附图中示出并在这里详细描述一个或多个具体实施例,应理解,本公开应被认为是本发明原理的示例,而不应将本发明限制于所示出和描述的具体实施例。
在图1中,示出了示意能够执行根据本发明的方法的数据处理系统(100)的框图。
数据处理系统(100)包括:地址分派器(102)、存储器(104)、异常信号产生器(106)、异常处理器(108)和CPU(110)。地址分派器(102)包括读取请求输入(101)。该系统在设备(400)(在本示例中为智能卡)中实现。
使用能够传输读取请求的连接,将CPU(110)连接至地址分派器(102)。使用能够传输读取请求的连接,将地址分派器(102)连接至存储器(104)。存储器(104)被配置用于:响应于读取请求来检索数据对象。存储器(104)被配置为:将检索的数据对象转发至异常信号产生器(106)。异常信号产生器(106)被配置为以与地址分派器(102)所使用的分派方法兼容的方式来检查存储器(104)检索的数据对象。异常信号产生器(106)被配置为有条件地向异常处理器(108)发送异常信号。
在本实施例中,异常信号产生器(106)被配置为向CPU(110)发送检索的数据对象。异常处理器(108)被配置为在异常处理器(108)接收异常信号的情况下进行校正动作。
在操作中,CPU(110)执行软件。典型地,软件是:应用程序、操作系统软件、库、系统安全码或网络协议。例如,CPU(110)可以执行需要验证PIN号码的银行应用。例如,CPU(110)可以执行引导序列,需要验证引导图像是否真实。
CPU(110)需要来自存储器(104)的一些数据对象。例如,CPU(110)需要知道要执行的下一指令,或者要操作的下一数据对象。CPU(110)向地址分派器(102)中包括的读取请求输入(101)发送读取请求。地址分派器(102)决定如何调度读取请求,例如,地址分派器(102)决定应当以何种频率以及在何时将出现在输入(101)处的读取请求分派至存储器(104)。如以下所述,地址分派器(102)采用根据本发明的方法。
如果地址分派器(102)分派读取请求,则将读取请求传输至存储器(104)。读取请求指示存储器(104)检索一个或多个数据对象。典型地,读取请求包括地址,地址表示存储器(104)中的区域,即一个或多个位置,如存储器单元。存储器(104)至少检索读取请求指示其检索的数据对象,并将数据对象转发至异常信号产生器(106)。
异常信号产生器(106)对读取请求的结果进行缓冲,和/或将读取请求的结果与响应于早先的类似读取请求而早先缓冲的结果进行比较。如果异常信号产生器(106)发现其已经接收到指示存储器(104)中的故障或故障攻击(如光攻击)的一系列数据对象,则异常信号产生器(106)产生异常信号,并将异常信号发送至异常处理器(108)。如以下所述,异常信号产生器(106)采用根据本发明的方法。
异常信号可以由单一比特信息组成,指示已经发生故障。异常信号还可以包括例如对应用程序进行调试和/或允许异常处理器(108)进行正确判定所需的所有相关信息。
异常处理器(108)被配置为在异常处理器(108)接收到异常信号的情况下进行校正动作。校正动作可以包括:记录事件、终止应用、关闭系统(100)、发起系统自毁序列、清空一个或多个存储器、清除和/或销毁一个或多个保险丝、重启应用、重新引导系统(100)、重复导致异常信号的读取请求等等。
例如,如果故障在低安全性应用期间发生,或者如果故障在特殊调试模式中发生,则异常处理器(108)还可以判定不采取动作。
数据处理系统(100)可以使用专用硬件制成,如被配置用于提供根据本发明的功能的电子电路。数据处理系统(100)可以由在操作使用中使用软件来控制的通用硬件制成,或者,数据处理系统(100)可以包括用于实现数据处理系统(100)的专用硬件、通用硬件和专用软件的组合。
所使用的缓冲器和存储器,如可以包括在其他组件(如地址分派器(102)和异常信号产生器(106)中的存储器(104)或缓冲器(未示出)),可以由常规RAM存储器(如DRAM、SRAM或SDRAM)、闪存存储器、磁存储器(如硬盘)或光存储器或任何其他类型的合适存储器制成。可选地,存储器(104)可以是ROM存储器。
在存储器(104)是ROM、EEPROM或闪存存储器的情况下,该方法的应用最为有利。
存储器(104)可以被实现为存储器组。
地址分派器(102)、存储器(104)、异常信号产生器(106)和异常处理器(108)之间的连接可以以多种方式来制造,例如连接可以是串联、并联或使用总线连接。
数据处理系统(100)具有适用于执行根据本发明的方法的优点。以抵御对存储器(104)的简单故障攻击(即抵御短故障攻击和长故障攻击)的方式来保护从存储器(104)中进行的读取免受故障攻击。
在该实施例的变型中,存储器(104)向CPU(110)和异常信号产生器(106)转发检索到的数据对象,异常信号产生器(106)不向CPU(110)转发检索到的数据对象。这具有以下优点:CPU(110)能够稍快地访问存储器(104)的内容。
在图2中,示出了示意根据本发明的用于安全数据读取的方法的第一实施例的流程图。
第一实施例包括以下步骤:分派第一读取请求(M200);分派第二读取请求(M400);分派另一第一读取请求(M600);在存储器(104)响应于第一读取请求而产生的第一结果与存储器(104)响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号(M1000-a),在存储器(104)响应于第二读取请求而产生的第二结果与同第二读取请求相关联的预期数据不相符的情况下,产生异常信号(M1000-b)。
同第二读取请求相关联的预期数据可以来自各种源,例如:通过与针对相同数据的另一或早先的读取请求进行比较;通过在测试模式中执行第二读取请求,测试模式将始终返回预期结果。
系统(100)还可以将值写入存储器(104),该值可以在以后被读回。由于写入数据的值已知,因此它可以用作预期数据。
确定存储器(104)响应于第一读取请求而产生的第一结果是否与存储器(104)响应于所述另一第一读取请求而产生的另一第一结果不相符可以以多种方式进行。例如,可以通过将两个结果逐比特比较来进行确定。
确定存储器(104)响应于第二读取请求而产生的第二结果是否与同第二读取请求相关联的预期数据不相符可以以多种方式进行。例如,可以通过将存储器(104)响应于第二读取请求而产生的第二结果与同第二读取请求相关联的预期数据逐比特比较来进行确定。
可以响应于例如从CPU(110)接收的读取请求来进行分派。例如,在执行固定序列的读取操作时,例如在读取引导图像时,也可以自主地进行分派。
步骤的顺序可以改变。例如,可以在分派第二读取请求(M400)之后的任何时刻进行异常信号的产生(M1000-b)。例如,可以在产生异常信号(M1000-a)之前进行异常信号的产生(M1000-b)。
分派可以由用于分派的装置(如地址分派器(102)或CPU(110))来执行。产生异常信号可以由用于产生异常信号的装置(如异常信号产生器(106)或CPU(110))来执行。该方法可以在硬件的控制下,或在软件的控制下进行。
该方法具有可以检测短故障攻击的优点。如果短故障攻击攻击步骤(M200)或(M600),则(M200)和(M600)将产生不同的结果,因为在故障攻击期间进行检索的存储器(104)与未受故障攻击的存储器(104)产生不同的结果。异常信号产生处理(M1000-a)将检测到存储器(104)响应于分派(M200)和(M600)所产生的结果不同。例如,可以对这些结果进行逐比特比较。通过产生处理(M1000-b)可以检测到步骤(M400)期间发生的短故障攻击,因为存储器(104)仅在存储器(104)未受故障攻击的情况下才产生预期结果。
长故障攻击将至少覆盖步骤(M400),并将被异常信号产生处理(M1000-b)检测到。如果长故障攻击覆盖第一分派(M200)和另一第一分派(M600)中的一个而不是两个,则异常信号产生处理(M1000-a)也将检测到长故障攻击。
注意,可以重复该方法以读取多个数据对象。可以将该方法的重复应用的步骤进行组合以获益,如以下实施例中例示的那样。
在图3中,示出了示意根据本发明的用于安全数据读取的方法的第二实施例的流程图。
第二实施例采用与第一实施例相同的步骤,但是此外还执行了另一第二读取请求的分派(M800)。分派(M800)要在分派(M600)之后并在异常信号产生处理(M1000-b)之前执行。
在步骤(M1000-b)中,同第二读取请求相关联的预期数据是存储器(104)响应于另一第二读取请求而产生的另一第二结果。
该实施例将检测到直至并包括覆盖3个连续读取请求的长故障攻击在内的所有长故障攻击。只有覆盖所有4个读取请求的故障攻击不能被检测到。如下所示的其他实施例不受这一限制。
在图4中,示出了示意根据本发明的用于安全数据读取的方法的第三实施例的流程图。
第三实施例采用与第一实施例相同的步骤,但是此外还执行以下步骤:将存储器(104)配置为测试模式(M300);以及将存储器(104)重新配置为非测试模式(M450)。存储器(104)具有以下属性:当配置为测试模式时,存储器(104)将给出预期结果,该预期结果独立于存储器(104)的真实内容。预期结果可以对于分派至存储器(104)的所有读取请求而言是恒定的,或者预期结果可以取决于单独的读取请求。例如,配置为测试模式的存储器(104)可以始终给出恒定值,例如0。或者,存储器(104)可以根据读取请求来给出值,例如读取请求中包括的地址的拷贝。
配置操作(M300)要在分派第二读取请求(M400)之前执行。配置操作(M450)要在分派(M400)之后并在(M600)之前执行。
在分派(M400)期间发生的故障攻击将干扰存储器(104)响应于第二读取请求而给出的结果。这将在异常信号产生处理(M1000-b)中被检测到,因为预期数据将不再与存储器(104)产生的第二结果相符。
在图5中,示出了示意根据本发明的用于安全数据读取的方法的第四实施例的流程图。
第四实施例采用与第二实施例相同的步骤,此外还执行以下步骤:分派第三读取请求(M700);分派另一第三读取请求(M900);以及在存储器(104)响应于第三读取请求而产生的第三结果与存储器(104)响应于另一第三读取请求而产生的另一第三结果不相符的情况下,产生异常信号(M1000-c)。
分派(M700)要在分派(M600)之后并在分派(M800)之前执行。分派(M900)要在分派(M800)之后执行。
异常信号产生处理(M1000-c)要在分派(M900)之后执行。
该实施例具有以下优点:其将检测到所有短故障攻击和直至并包括覆盖5个连续读取请求的长故障攻击在内的所有长故障攻击。该实施例尤其适用于如关于图7中的分派序列D3以及关于图8和图15所解释的重复应用。
在图6中,示出了示意根据本发明的用于安全数据读取的方法的第五实施例的流程图。
第五实施例采用与第四实施例相同的步骤,此外还执行以下步骤:分派又一第二读取请求(M650)。并且,对步骤(M1000-b)进行扩展:在存储器(104)响应于所述第二读取请求而产生的第二结果与存储器(104)响应于所述又一第二读取请求而产生的另一第二结果不相符的情况下,也产生异常信号。
此外,为了改进第四实施例,该实施例也可以检测到一些多故障攻击。第二读取请求、另一第二读取请求和又一第二读取请求都需要从存储器(104)产生彼此相符的结果。对例如第二读取请求和另一第二读取请求进行攻击但未攻击任何其他读取请求的多故障攻击将被检测到,因为又一第二读取请求的结果与第二读取请求和另一第二读取请求的结果不相符。注意,覆盖第二读取请求、另一第二读取请求和又一第二读取请求三者,但是未覆盖第二读取请求之前或另一第二读取请求之后的读取请求的简单长故障攻击将被检测到,因为此时对另一第一读取请求的分派也将受到干扰,这将被异常信号产生处理(M1000-a)检测到。此外,对第三读取请求的分派将受到干扰,这将被异常信号产生处理(M1000-c)检测到。
按照类似方式,该方法可以被扩展至针对每个单独读取请求进行多次分派。一般而言,通过对每个读取请求进行“N+1”次分派,并对不同读取请求进行交织,可以检测采用“N”个独立故障(例如假信号或闪光)的多故障攻击。
在图7中,示出了由根据本发明的用于安全数据读取的方法的各个实施例产生的多个分派序列。
如果权利要求中限定的交织的重复读取的方法在多个读取请求中延续,则是最有利的。在这种情况下,保护所有多个读取请求免受故障攻击。
序列R示出了一系列读取请求参考编号。使用整数对读取请求进行了编号。注意,序列R中示出的编号仅是对读取请求的引用,而不是读取请求本身。具体地,这些读取请求中的两个或多个是针对存储器(104)中的相同区域的请求。
在分派序列D1、D2、D3、D4和D5中,非正数(例如零或更小)涉及非标准读取请求,例如测试模式中的读取。具有非正参考编号的读取请求也可以被省略。为了清楚起见,将这些读取请求放置在方括号之间。
分派序列D1可以如下获得。对每个指定读取请求进行分派,接着是测试读取,接着是另一指定读取请求。
对于每个分派序列D2、D3、D4和D5,在I2、I3、I4和I5中分别给出连续读取请求参考编号之间的差值序列。注意,在这些示例中,连续读取请求参考编号之间的差值序列是循环的,其中,重复的循环以斜体数字指示。通过继续重复循环,可以简单地扩展这些差值序列。为了从差值序列得到分派序列,可以计算部分和值(partial sum)序列。
例如,通过计算序列I3的部分和值序列来构造序列D3。通过从读取请求1开始交替地增加(-1)和2来获得部分和值序列。
前几个部分和值是:
1=1,
0=1+(-1),
2=1+(-1)+2,
1=1+(-1)+2+(-1),
3=1+(-1)+2+(-1)+2,
2=1+(-1)+2+(-1)+2+(-1),
4=1+(-1)+2+(-1)+2+(-1)+2,
3=1+(-1)+2+(-1)+2+(-1)+2+(-1),
5=1+(-1)+2+(-1)+2+(-1)+2+(-1)+2,等等。
注意,尽管循环的差值序列是有利的,但这是可选的。
在图8中,给出了分派序列D3的图形描述。该图形描述是更直观的表示,并且是通过绘制链来创建的,其中,链中的每个链路与一个读取请求相对应。链路的左侧表示第一次读取读取请求时,而右侧涉及第二次读取,即另一读取请求。
这里,[0]是特殊读取请求,该读取请求不是严格必要的,但是可以例如被实现为对存储器(104)的读取已知答案(read-known-answer)访问,以检查此时故障攻击的存在。然后,这保证了在该序列启动时尚不存在故障攻击。对于后续的任何指定读取请求,可以发现,指定读取请求在序列中出现两次,即第一指定读取请求和第二指定读取请求。在这两个指定读取请求之间,存在两个其他指定读取请求。第一其他指定读取请求是在序列中在逻辑上也出现在第一指定读取请求之前的读取请求。第二其他指定读取请求在逻辑上也出现在第二指定读取请求之后。这非常类似于物理链,其中每个元素使用单一前向/反向链路链接至其前一元素以及其后一元素。
例如,在
...3 2 4 3 5 4 6 5...
中,读取请求4被读取两次,在两个读取请求4之间,读取请求3和读取请求5均正好被读取一次。这意味着,如果故障攻击例如足够长以破坏第一个和最后一个读取请求4之间的所有读取值,则读取请求3和读取请求5也将被破坏。在这种情况下,将响应于读取请求4而产生的两个值进行比较不太可能发现差异,而取而代之地,将响应于读取请求3而产生的两个值进行比较,将揭示出攻击正在进行。
此外,将针对读取请求5而产生的值进行比较将检测到该攻击,但是针对读取请求3的比较通常首先进行。类似地,可以分析更长和更短的故障攻击的效果,它们都将产生比较结果不匹配的至少两个读取请求。双重读取的这种交织排序可以非常有效地检测光攻击。
在一些情况下,可能发生以下情形:遭受光攻击的设备没有做出反应。在以上给出的序列中,假定闪光在第二读取请求处开始,并持续到另一第二读取请求。如果针对另一第三读取请求发生上述情形,即如果另一第三读取请求由于某种原因未受光影响,则未检测到对第三和另一第三读取请求的结果的验证。然而,在这种情况下,在针对另一第五读取请求而进行的验证期间,将检测到故障攻击。
这里所进行的操作实际上是检测闪光的开启,而不是检测闪光本身的存在。因此,闪光实际上持续多久其实并不重要。另一方面,如果担心在开始该检查之前故障攻击已经在操作,则可以使用之前提到的[0]读取,例如通过执行对存储器(104)的读取已知答案访问来检测这种闪光的存在。
在图9中,给出了根据本发明的分派序列的图形描述。
图9的序列(也由序列D4示意)可以通过扩展循环序列I4然后创建部分和值序列来产生。序列D4是对图7中给出并在图8中示意的序列D3的改进。
在单次闪光攻击可以仅以单一比特为目标的情况下,可能发生以下情况:对该比特的读取未受闪光影响。对于比特的一些状态(例如“1”状态)而言,与比特的其他状态(例如“0”状态)相比,这种情况可能更经常发生。在这种情况下,在第一和另一第一读取请求之间具有在其他位置重复的更多读取请求是有利的。例如,序列D4包含以下序列:
...,1,2,3,1,4,2,5,3,4,5,...
这里,指定编号的首次出现表示首次进行指定读取请求。指定编号的第二次出现表示另一次进行指定读取请求。
考虑从读取请求3扩展至另一读取请求3的光攻击(在以上序列中通过下划线来指示)。该方法可以检测到该故障攻击4次。该故障攻击将干扰另一读取请求1、读取请求4、另一读取请求2和读取请求5,但是不干扰其相应的读取请求或另一读取请求。这意味着,即使这些相关联的检查之一失败,方法3仍具有3次其他机会来检测故障攻击。与序列D3相比,检测时刻的数目加倍,相应地增大了检测到故障攻击的概率。
即使使用序列D4来取代序列D3增大了检测到故障攻击的几率,序列D4仍仅需要双重读取,因此它消耗的功率量与序列D3可比。
在根据本发明的用于安全数据读取的另一实施例中,使用奇偶校验比特。
数据字(包括数据比特)与对应的纠错数据(也称为奇偶校验比特)一起存储在存储器中。纠错数据是使用纠错码(ECC)产生的。在读取请求中,数据比特与奇偶校验比特一起读取。如果读取的数据比特与奇偶校验比特不相对应,则检测到差错。由于该差错可能是故障攻击的结果,因此该方法可以选择产生异常信号。这种对应关系可以使用纠错码的差错检测机制来确定。
使用根据本发明的交织重复读取的方法中的任一个来读取数据字。例如,使用图3所示的方法来读取数据字及其奇偶校验比特。
在图9中讨论所示的情形中,将交织重复读取与奇偶校验比特相结合出奇地有效。在这种情形中,一些读取请求可能比其他读取请求更容易受到光攻击影响。为了便于讨论,假定奇偶校验比特仅能够检测单一比特差错,即采取可能最弱的一种纠错码。此外,假定一些比特值完全不受光攻击影响;例如,比特值0不容易受影响。即使在这些弱假设下,奇偶校验比特与交织读取相结合提供了协作优势,并给出了比考虑组成部分所能够期待的更多的保护。
考虑以下读取请求序列:
...1 2 1 2...,
其中,光攻击扩展至下划线的读取请求。读取请求1和2分别与数据字1和2相对应。
在不使用奇偶校验比特的情况下,攻击者可以将其光攻击集中在数据字1和2的单一比特上。如果发生数据字1中的被攻击比特容易受影响而数据字2中的被攻击比特不容易受影响的情况,则光攻击可以不被察觉地进行。数据字2中的被攻击比特不容易受影响的概率为1/2。
然而,使用奇偶校验比特,纠错码将注意到对数据字1中被攻击比特的改变,可以阻止攻击。因此,攻击者集中针对单一比特变得没有意义,因为不被察觉地对单一比特进行攻击的唯一方式是在所有被攻击比特都是不容易受影响类型的情况,在这种情况下,攻击无论如何都没有效果。可以看到,奇偶校验比特是针对集中以单一比特为目标的攻击的有效对策。
奇偶校验比特迫使攻击者至少攻击2个比特。在攻击2个比特时,奇偶校验比特本身仅提供很少的保护,因为它们仅能够检测单一比特差错。然而,数据字2中两个被攻击比特均不容易受影响的几率降至1/2*1/2=1/4。
因此,可以发现,这两种对策的效果不仅是相加,而是在相加的基础上互相增强。
在图10、11、12和13中,给出了根据本发明的各种分派序列的图形表示。在图10中,给出了具有三重读取请求的序列,为了还指示中间读取请求,每个链的链路具有单一贯穿条。图10的序列抵御其中可以有两个独立故障的多故障攻击。图11、12和13使用具有两个贯穿条的链的链路,示出了具有四重读取请求的序列。图11、12和13的序列抵御其中可以有3个独立故障的多故障攻击。
在图14中,给出了流程图,示意了用于分派测试读取请求的方法。该方法包括以下步骤:将存储器(104)配置为测试模式(M101);分派测试读取请求(M102);将存储器(104)重新配置为非测试模式(M103);在存储器(104)响应于测试读取请求而产生的测试结果与对测试读取请求的预定的固定响应不相符的情况下产生异常信号(M1001)。
配置操作(M101)是在分派(M102)之前执行的。分派(M102)要在配置操作(M103)之前执行。异常信号产生处(M1001)要在分派(M102)之后执行。
配置操作(M101)和(M103)可以集成在分派(M102)中。
尤其是在分派读取请求序列时,用于安全数据读取的方法能够检测非常长的故障攻击。然而,在方法开始之前未发生故障攻击是很重要的。通过在开始时执行测试读取(即读取已知答案),可以确定故障攻击是否已经在操作。
在图15中,示出了框图,示意了可以在数据处理系统(100)中使用的地址分派器(102)的另一实施例。
地址分派器(102)包括:读取请求输入(101);第一读取请求队列(202);第二读取请求队列(204)和复用器(206)。
读取请求输入(101)被配置为接收读取请求。读取请求输入(101)连接至第一读取请求队列(202)和第二读取请求队列(204)。第一读取请求队列(202)和第二读取请求队列(204)均对读取请求进行缓冲。在本实施例中,第一读取请求队列(202)具有用于缓冲一个读取请求的容量,第二读取请求队列(204)具有用于缓冲两个读取请求的容量。读取请求队列的数目可以改变,其容量也可以改变。这将得到具有不同属性的不同分派序列。
复用器(206)交替地从第一读取请求队列(202)的头部和第二读取请求队列(204)的头部进行读取。起初,可以使用表示测试读取的虚拟读取请求(在以下示例中以“0”指示)来填充两个读取请求队列。
在以下示例中,使用指定参考编号来指示指定读取请求。相等的参考编号指示相等的读取请求。注意,在实际中,地址分派器(102)典型地将处理实际读取请求而不是参考编号。
复用器(206)使用能够传输读取请求的连接连接至存储器(104)。
在操作中,在读取请求输入(101)上出现读取请求1。因此,第一读取请求队列(202)将包含(1),第二读取请求队列(204)将包含(1,0)。复用器(206)从第一读取请求队列(202)读取读取请求1,从第二读取请求队列(204)读取测试读取。复用器(206)将读取请求1、0传输至存储器(104)。
接下来,在读取请求输入(101)上出现读取请求2。因此,第一读取请求队列(202)将包含(2),第二读取请求队列(204)将包含(2,1)。复用器(206)从第一读取请求队列(202)读取读取请求2,从第二读取请求队列(204)读取读取请求1。复用器(206)将读取请求2、1传输至存储器(104)。
接下来,在读取请求输入(101)上出现读取请求3。因此,第一读取请求队列(202)将包含(3),第二读取请求队列(204)将包含(3,2)。复用器(206)从第一读取请求队列(202)读取读取请求3,从第二读取请求队列(204)读取读取请求2。复用器(206)将读取请求3、2传输至存储器(104)。
组合而言,复用器(206)将向存储器(104)依次传输读取请求1,0,2,1,3,2,...。
第一和第二读取请求队列(202)和(204)可以是用作队列的先进先出(FIFO)缓冲器。
本实施例中的地址分派器(102)具有以下优点:需要很少的硬件和开销来产生根据本发明的交织分派序列。
在图16中,示出了示意可以在数据处理系统(100)中使用的异常信号处理器(106)的另一实施例的框图。
图16所示的异常信号产生器(106)的实施例预期与图15所示的地址分派器(102)的实施例一起使用。
异常信号产生器(106)包括:解复用器(300);第一结果序列(302);第二结果序列(304)和比较器(306)。
解复用器(300)接收存储器(104)响应于读取请求而产生的结果(例如数据对象)。解复用器(300)连接至第一结果序列(302)和第二结果序列(304)。比较器(306)可以读取并比较结果队列(302)和(304)的头部。比较器(306)可以产生异常信号并将异常信号转发至异常处理器(108)。比较器(306)还可以连接至产生读取请求的实体(例如CPU(110))。
结果队列(302)和(304)被配置用于缓冲读取请求结果。在本实施例中,第一结果队列(302)具有2个读取请求结果的容量,第二结果队列(304)具有1个读取请求结果的容量。结果队列的数目可以改变,其容量也可以改变。这将得到被配置为对不同分派序列进行验证的异常信号产生器(106)。
在操作中,解复用器(300)交替地向第一结果队列(302)和向第二结果队列(304)转发读取请求结果。这就是说,第一个接收结果仅转发至第一结果队列(302),第二个接收结果仅转发至第二结果队列(304)。每隔一个接收结果,比较器(306)比较两个结果队列(302)和(304)的头部,以确定是否相符(例如相等)。例如,在解复用器(300)的第一次转发之后,比较器(306)不进行比较;在解复用器(300)的第二次转发之后,比较器(306)进行比较;在解复用器(300)的第三次转发之后,比较器(306)不进行比较;在解复用器(300)的第四次转发之后,比较器(306)进行比较,等等。
如果两个结果队列(302)和(304)的头部不相符,则产生异常信号。如果两个结果队列(302)和(304)的头部相符,则向例如CPU(110)转发头部之一。
起初,可以使用存储器测试读取请求的预期结果来填充结果队列(302)和(304)。在以下结果中,存储器(104)的指定结果以产生该结果的指定读取请求的参考编号来指示。注意,在实际中,存储器(104)典型地产生实际数据对象。
假定存储器(104)响应于分派序列D3来产生结果,即以下结果序列:1,0,2,1,3,2,4,3,5,...。
在操作中,向解复用器(300)发送读取请求结果1。解复用器(300)将读取请求结果1转发至第一结果队列(302)。第一结果队列(302)的内容现在是(1,0),第二结果队列(304)的内容是(0)。
接下来,向解复用器(300)发送读取请求结果0。解复用器(300)将读取请求结果0转发至第二读取队列(304)。第一结果队列(302)的内容现在是(1,0),第二结果队列(304)的内容是(0)。比较器(306)将第一结果队列(302)的头部与第二结果队列(304)的头部进行比较,并发现它们相符。比较器(306)不向CPU(110)转发读取请求0,因为它是测试读取。
比较器(306)能够访问知道测试读取产生和预期答案是什么的装置。例如,比较器可以与地址分派器(102)同步,比较器可以被配置为在正确的时间预期虚拟读取。如果存储器(104)被加密并且已知答案也流过解密模块,则将出现另外的复杂性。在这种情况下,它将作为不同的值,即作为已知答案的解密到达比较器。一种解决方案是:具有以在解密模块处产生的已知答案填充的另一队列,或者具有以独立产生的已知答案填充的队列。比较器能够访问另一队列,并且在该队列不为空的情况下与队列中的值进行比较。
接下来,向解复用器(300)发送读取请求结果2。解复用器(300)向第一结果队列(302)转发读取请求结果2。第一结果队列(302)的内容现在是(2,1),第二结果队列(304)的内容是(0)。
接下来,向解复用器(300)发送读取请求结果1。解复用器(300)将读取请求结果1转发至第二结果队列(304)。第一结果队列(302)的内容现在是(2,1),第二结果队列(304)的内容是(1)。比较器(306)将第一结果队列(302)的头部与第二结果队列(304)的头部进行比较,并发现它们相符。比较器(306)将读取请求结果1转发至CPU(110)。
接下来,向解复用器(300)发送读取请求结果3。解复用器(300)向第一结果队列(302)转发读取请求结果3。第一结果队列(302)的内容现在是(3,2),第二结果队列(304)的内容是(1)。
接下来,向解复用器(300)发送读取请求结果2。解复用器(300)将读取请求结果2转发至第二结果队列(304)。第一结果队列(302)的内容现在是(3,2),第二结果队列(304)的内容是(2)。比较器(306)将第一结果队列(302)的头部与第二结果队列(304)的头部进行比较,并发现它们相符。比较器(306)将读取请求结果2转发至CPU(110)。
异常信号产生器(106)继续以这种方式操作。
第一和第二结果队列(302)和(304)可以是FIFO队列。
本实施例中的异常信号产生器(106)具有以下优点:需要很少的硬件和开销来对响应于根据本发明的分派序列的结果队列进行验证。
如这里的实施例中描述的本发明可以使用执行编程指令的编程的处理器来实现,该编程指令以流程图的形式在以上进行了较宽描述,并且可以存储在任何合适的电子存储介质中。然而,本领域技术人员可以认识到,在不脱离本发明的前提下,可以以任何数目的变型和以许多合适的编程语言来实现上述过程。例如,在不脱离本发明的前提下,所执行的特定操作的顺序通常可以改变,可以添加额外操作,或者可以删除操作。在不脱离本发明的前提下,可以添加差错捕获、增强和变型。这种变型被设想并认为是等效的。
可以使用专用硬件和/或专用处理器来实现本发明。类似地,可以使用通用计算机、基于微处理器的计算机、数字信号处理器、微控制器、专用处理器、定制电路、ASICS和/或专用硬接线逻辑来构造本发明的备选等效实施例。
本领域技术人员可以认识到,在不脱离本发明的前提下,用于实现上述实施例的程序步骤和相关联的数据可以使用盘存储以及其他形式的存储来实现,例如只读存储器(ROM)设备、随机存取存储器(RAM)设备、光存储元件、磁存储元件、磁-光存储元件、闪存存储器和/或其他等效存储技术。这些备选存储设备应当被认为是等效的。
尽管已经结合具体实施例描述了本发明,但是显然,根据以上描述,许多备选方案、修改、置换和变化对本领域普通技术人员而言是显而易见的。相应地,本发明应当包括落入所附权利要求范围内的所有这种备选方案、修改和变化。
Claims (18)
1.一种用于数据处理系统的安全数据读取方法,所述方法包括地址分派器,用于向存储器分派读取请求,所述方法包括以下步骤:
(M200)分派第一读取请求;
(M400)分派第二读取请求;
(M600)分派另一第一读取请求;
(M1000-a)在存储器响应于第一读取请求而产生的第一结果与存储器响应于所述另一第一读取请求而产生的另一第一结果不相符的情况下,产生异常信号,
其中:
所述第一读取请求是在分派所述第二读取请求之前分派的,所述第二读取请求是在分派所述另一第一读取请求之前分派的。
2.根据权利要求1所述的安全数据读取方法,其中,所述方法包括在分派所述第二读取请求之后执行的第一附加步骤,所述第一附加步骤包括:
(M1000-b)在存储器响应于所述第二读取请求而产生的第二结果与同所述第二读取请求相关联的预期数据不相符的情况下,产生异常信号。
3.根据权利要求2所述的安全数据读取方法,其中,所述方法包括在分派所述另一第一读取请求(M600)之后并在产生异常信号之前执行的第二附加步骤,所述第二附加步骤包括:
(M800)分派另一第二读取请求;
其中:
所述同第二读取请求相关联的预期数据是存储器响应于所述另一第二读取请求而产生的另一第二结果。
4.根据权利要求2所述的安全数据读取方法,其中,所述方法包括在分派所述第二读取请求(M400)之前执行的第三附加步骤,所述第三附加步骤包括:
(M300)将存储器配置为测试模式,其中,存储器被配置为对第二读取请求产生预定的固定响应;
和/或在分派所述第二读取请求(M400)之后执行的第四附加步骤,所述第四附加步骤包括:
(M450)将存储器重新配置为非测试模式;
其中:
同所述第二读取请求相关联的预期数据与对所述第二读取请求的预定的固定响应相等。
5.根据权利要求3所述的安全数据读取方法,其中,所述方法包括在分派所述另一第一读取请求(M600)之后并在分派所述另一第二读取请求(M800)之前执行的第六附加步骤,所述第六附加步骤包括:
(M700)分派第三读取请求;
其中,所述方法包括在分派所述另一第二读取请求(M800)之后执行的第七附加步骤,所述第七附加步骤包括:
(M900)分派另一第三读取请求;
其中,所述方法包括在分派所述另一第三读取请求之后执行的第八附加步骤,所述第八附加步骤包括:
(M1000-c)在存储器响应于所述第三读取请求而产生的第三结果与存储器响应于所述另一第三读取请求而产生的另一第三结果不相符的情况下,产生异常信号。
6.根据权利要求5所述的安全数据读取方法,其中,所述方法包括在分派所述另一第一读取请求(M600)之后并在分派所述第三读取请求(M700)之前执行的第九附加步骤,所述第九附加步骤包括:
(M650)分派又一第二读取请求;
其中:
在存储器响应于所述第二读取请求而产生的第二结果与存储器响应于所述又一第二读取请求而产生的又一结果不相符的情况下,则也产生异常信号。
7.根据权利要求1和2中任一项所述的安全数据读取方法,其中:
分派读取请求包括:接收初始读取请求的第一序列,并分派读取请求的第二序列,所述方法被配置为将第一序列变换为第二序列;
第二序列包括:分派第一读取请求(M200)、分派第二读取请求(M400)和分派另一第一读取请求(M600);
实质上,在第二序列中,将第一序列中每个接收到的初始读取请求分派至少两次;
在实质上任何指定读取请求的首次分派与该指定读取请求的另一次分派之间,分派至少一个其他读取请求;
该其他读取请求不同于该指定读取请求;
所述方法包括以下步骤:在存储器响应于指定读取请求的首次分派而产生的指定结果与存储器响应于所述指定读取请求的另一次分派而产生的另一指定结果不相符的情况下,产生异常信号。
8.根据权利要求7所述的安全数据读取方法,其中:
在实质上任何指定读取请求的首次分派和所述指定读取请求的另一次分派之间,至少分派第一其他读取请求和第二其他读取请求;
还在所述指定读取请求的首次分派之前分派所述第一其他读取请求;
还在所述指定读取请求的另一次分派之后分派所述第二其他读取请求。
9.根据权利要求7所述的安全数据读取方法,其中:
在第二序列中,将第一序列中每个接收到的初始读取请求分派至少多次;
所述多次至少为3次;
在第二序列中的指定的接收到的初始读取请求的任何两次分派之间,分派至少一个其他读取请求。
10.根据之前任一权利要求所述的安全数据读取方法,其中,在所述方法之前、之中和/或之后进行以下步骤:
(M101)将存储器配置为测试模式,其中,存储器被配置为对测试读取请求产生预定的固定响应;
(M102)分派测试读取请求;和/或
(M103)将存储器重新配置为非测试模式;
(M1001)在存储器响应于测试读取请求而产生的测试结果与对测试读取请求的预定的固定响应不相符的情况下,产生异常信号。
11.根据之前任一权利要求所述的安全数据读取方法,其中,所述方法包括以下步骤:
(M500)选择随机时间间隔;
其中,将所述另一第一读取请求的分派(M600)延迟所述随机时间间隔。
12.根据之前任一权利要求所述的安全数据读取方法,其中,存储器产生数据比特和奇偶校验比特,其中,所述方法包括以下步骤:使用纠错码来验证奇偶校验比特与数据比特相关。
13.一种数据处理系统(100)包括:地址分派器(102),用于向存储器(104)分派读取请求;以及用于执行根据权利要求1至12中任一项所述的方法的装置。
14.根据权利要求13所述的数据处理系统,其中,地址分派器(102)包括:读取请求输入(101)、第一读取请求队列(202)、第二读取请求队列(204)和复用器(206),
其中:
每个读取请求队列被配置为对在读取请求输入(101)处出现的至少一个读取请求进行缓冲,并被配置为将读取请求输出至复用器(206);
复用器(206)被配置为选择读取请求队列,并将所选读取请求队列中的读取请求转发至存储器(104)。
15.根据权利要求13或14所述的数据处理系统,包括异常信号产生器(106),
异常信号产生器(106)包括:解复用器(300)、第一结果队列(302)、第二结果队列(304)和比较器(306),
其中:
解复用器(300)被配置为从存储器(104)接收数据对象;
解复用器(300)被配置为将数据对象转发至第一结果队列(302)或第二结果队列(304);
比较器(306)能够访问第一结果队列(302)的头部和第二结果队列(304)的头部;
比较器(306)被配置为当在预定时刻,第一结果队列(302)的头部与第二结果队列(304)的头部不相符时产生异常信号。
16.根据权利要求13、14或15所述的数据处理系统,其中,存储器(104)被集成在系统中。
17.根据权利要求13、14、15或16所述的数据处理系统,所述数据处理系统在以下任一项中实现:
智能卡;
机顶盒;
移动电话;以及
个人数字助理。
18.一种计算机程序产品,包括用于实现根据权利要求1至12中任一项所述的方法的计算机代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08103978.6 | 2008-05-15 | ||
EP08103978 | 2008-05-15 | ||
PCT/IB2009/051743 WO2009138892A1 (en) | 2008-05-15 | 2009-04-29 | A method for secure data reading and a data handling system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102027482A true CN102027482A (zh) | 2011-04-20 |
Family
ID=40834419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801170435A Pending CN102027482A (zh) | 2008-05-15 | 2009-04-29 | 用于安全数据读取的方法和数据处理系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8583880B2 (zh) |
EP (1) | EP2294526B1 (zh) |
CN (1) | CN102027482A (zh) |
WO (1) | WO2009138892A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104428789A (zh) * | 2012-07-23 | 2015-03-18 | 高通股份有限公司 | 用于阻止安全启动过程期间的基于时序的假信号攻击的方法及设备 |
CN105573856A (zh) * | 2016-01-22 | 2016-05-11 | 芯海科技(深圳)股份有限公司 | 一种解决指令读取异常问题的方法 |
CN108073805A (zh) * | 2016-11-15 | 2018-05-25 | 华为技术有限公司 | 一种数据读取方法和存储器 |
WO2020000316A1 (zh) * | 2018-06-28 | 2020-01-02 | 华为技术有限公司 | 容错处理的方法、装置和服务器 |
CN105893877B (zh) * | 2015-02-16 | 2020-11-20 | 恩智浦有限公司 | 安全数据读取的方法和数据处理系统 |
CN112216333A (zh) * | 2020-09-30 | 2021-01-12 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
US11138316B2 (en) * | 2019-06-28 | 2021-10-05 | Intel Corporation | Apparatus and method to provide secure fuse sense protection against power attacks |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102010006572A1 (de) * | 2010-02-02 | 2011-08-04 | Giesecke & Devrient GmbH, 81677 | Verfahren zum Ausführen einer Anwendung |
FR2984553B1 (fr) * | 2011-12-15 | 2015-11-06 | Proton World Int Nv | Procede et dispositif de detection de fautes |
EP2629447A1 (en) * | 2012-02-17 | 2013-08-21 | Gemalto SA | Method and device for protecting an electronic device against fault attack(s) |
EP2690579A1 (en) * | 2012-07-27 | 2014-01-29 | Gemalto SA | Method and device for protecting against fault attack(s) an electronic device using a cache memory |
US8839074B2 (en) * | 2012-09-13 | 2014-09-16 | Sandisk Technologies Inc. | On chip data recovery for non-volatile storage |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
FR3051935A1 (fr) * | 2016-05-31 | 2017-12-01 | Proton World Int Nv | Execution securisee d'un algorithme |
US20190050570A1 (en) * | 2017-08-14 | 2019-02-14 | Qualcomm Incorporated | Computer resource access control based on the state of a non-accessing component |
US11055409B2 (en) | 2019-01-06 | 2021-07-06 | Nuvoton Technology Corporation | Protected system |
EP3882798A1 (en) * | 2020-03-20 | 2021-09-22 | Thales Dis Design Services Sas | Method for securely accessing a memory component |
US11960358B1 (en) * | 2022-09-30 | 2024-04-16 | Nxp B.V. | More secure data reading with error correction codes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264083A (zh) * | 1998-12-25 | 2000-08-23 | 日本电气株式会社 | 数据处理装置及其数据处理方法 |
WO2007009847A1 (fr) * | 2005-07-19 | 2007-01-25 | Gemplus | Detection d'une faute par perturbation longue |
CN101496026A (zh) * | 2006-05-22 | 2009-07-29 | 日本电气株式会社 | 信息提供系统、信息提供方法以及信息提供用程序 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999035554A2 (en) | 1997-12-30 | 1999-07-15 | Koninklijke Philips Electronics N.V. | Method and apparatus for protection of data on an integrated circuit by using memory cells to detect tampering |
KR100476892B1 (ko) * | 2002-04-29 | 2005-03-17 | 삼성전자주식회사 | 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 |
DE10254325A1 (de) | 2002-11-21 | 2004-06-03 | Philips Intellectual Property & Standards Gmbh | Elektronisches Speicherbauteil |
DE10254659A1 (de) | 2002-11-22 | 2004-06-03 | Philips Intellectual Property & Standards Gmbh | Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Erfassen von Lichtattacken auf das nicht-flüchtige Speichermodul |
US7050291B2 (en) * | 2004-03-31 | 2006-05-23 | Intel Corporation | Integrated ultracapacitor as energy source |
US7584386B2 (en) * | 2004-04-21 | 2009-09-01 | Stmicroelectronics Sa | Microprocessor comprising error detection means protected against an attack by error injection |
KR20060067584A (ko) * | 2004-12-15 | 2006-06-20 | 삼성전자주식회사 | 해킹 방지 기능이 있는 스마트 카드 |
JP2009505266A (ja) | 2005-08-19 | 2009-02-05 | エヌエックスピー ビー ヴィ | 不揮発性メモリモジュールを有する回路装置、およびこの不揮発性メモリモジュールに対する攻撃を記録する方法 |
-
2009
- 2009-04-29 US US12/992,845 patent/US8583880B2/en active Active
- 2009-04-29 WO PCT/IB2009/051743 patent/WO2009138892A1/en active Application Filing
- 2009-04-29 CN CN2009801170435A patent/CN102027482A/zh active Pending
- 2009-04-29 EP EP09746187.5A patent/EP2294526B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264083A (zh) * | 1998-12-25 | 2000-08-23 | 日本电气株式会社 | 数据处理装置及其数据处理方法 |
WO2007009847A1 (fr) * | 2005-07-19 | 2007-01-25 | Gemplus | Detection d'une faute par perturbation longue |
CN101496026A (zh) * | 2006-05-22 | 2009-07-29 | 日本电气株式会社 | 信息提供系统、信息提供方法以及信息提供用程序 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104428789A (zh) * | 2012-07-23 | 2015-03-18 | 高通股份有限公司 | 用于阻止安全启动过程期间的基于时序的假信号攻击的方法及设备 |
CN104428789B (zh) * | 2012-07-23 | 2018-06-01 | 高通股份有限公司 | 用于阻止安全启动过程期间的基于时序的假信号攻击的方法及设备 |
CN105893877B (zh) * | 2015-02-16 | 2020-11-20 | 恩智浦有限公司 | 安全数据读取的方法和数据处理系统 |
CN105573856A (zh) * | 2016-01-22 | 2016-05-11 | 芯海科技(深圳)股份有限公司 | 一种解决指令读取异常问题的方法 |
CN108073805A (zh) * | 2016-11-15 | 2018-05-25 | 华为技术有限公司 | 一种数据读取方法和存储器 |
WO2020000316A1 (zh) * | 2018-06-28 | 2020-01-02 | 华为技术有限公司 | 容错处理的方法、装置和服务器 |
CN113626235A (zh) * | 2018-06-28 | 2021-11-09 | 华为技术有限公司 | 容错处理的方法、装置和服务器 |
US11231983B2 (en) | 2018-06-28 | 2022-01-25 | Huawei Technologies Co., Ltd. | Fault tolerance processing method, apparatus, and server |
US11138316B2 (en) * | 2019-06-28 | 2021-10-05 | Intel Corporation | Apparatus and method to provide secure fuse sense protection against power attacks |
CN112216333A (zh) * | 2020-09-30 | 2021-01-12 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
CN112216333B (zh) * | 2020-09-30 | 2024-02-06 | 深圳市宏旺微电子有限公司 | 芯片测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2294526A1 (en) | 2011-03-16 |
US8583880B2 (en) | 2013-11-12 |
WO2009138892A1 (en) | 2009-11-19 |
US20110072222A1 (en) | 2011-03-24 |
EP2294526B1 (en) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102027482A (zh) | 用于安全数据读取的方法和数据处理系统 | |
TWI512520B (zh) | 偵測對數位電路之攻擊之系統與方法 | |
US7814396B2 (en) | Apparatus and method for checking an error recognition functionality of a memory circuit | |
US7168065B1 (en) | Method for monitoring program flow to verify execution of proper instructions by a processor | |
US7664939B2 (en) | Method and apparatus for detecting false operation of computer | |
EP3644181A1 (en) | Embedded program secure boot method, apparatus and device, and storage medium | |
US20130268776A1 (en) | Cryptographic processing apparatus and ic card | |
US20140149729A1 (en) | Reset vectors for boot instructions | |
CN103140841A (zh) | 保护存储器的部分的方法和装置 | |
KR101484331B1 (ko) | 데이터 저장 디바이스의 데이터 무결성 검증 | |
US8195946B2 (en) | Protection of data of a memory associated with a microprocessor | |
US20110231709A1 (en) | Method for checking data consistency in a system on chip | |
EP3163554B1 (en) | Integrated circuit lifecycle security with redundant and overlapping crosschecks | |
US11232194B2 (en) | Method for executing a binary code of a secure function with a microprocessor | |
CN105579955A (zh) | 应用控制流模型 | |
US11461476B2 (en) | Method for executing a binary code of a function secured by a microprocessor | |
CN111416796A (zh) | 受保护系统及其保护方法 | |
US8843800B2 (en) | Semiconductor integrated circuit | |
US20200302068A1 (en) | Method for executing, with a microprocessor, a binary code containing a calling function and a called function | |
EP4307149A2 (en) | System-on-chip and electronic device including the same | |
CN106874796B (zh) | 系统运行中指令流的安全检测和容错方法 | |
CN105893877A (zh) | 安全数据读取的方法和数据处理系统 | |
US11442738B2 (en) | Method for executing a machine code of a secure function | |
US11531785B2 (en) | PUF-based data integrity | |
US20220292182A1 (en) | Method for the execution of a binary code of a computer program by a microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110420 |