用于检测数据项读取中的错误的方法

文档序号:6497478阅读:341来源:国知局
用于检测数据项读取中的错误的方法
【专利摘要】一种检测数据项读取中的错误的方法,该方法包括:a)在电子存储器的第一区域中存储数据项的第一副本,和在电子存储器的第二区域中存储数据项的第二副本,b)分别读取(68)在第一区域中的数据项的第一副本的值和在第二区域中的数据项的第二副本的值,c)比较(74)数据项的第一副本和第二副本的读取值,e)如果第一副本和第二副本的读取值不同,则重复(78、80)上述步骤b)和c),然后,f)如果在步骤e)中的读取值相同,则检测到(82)该数据项读取中的错误,否则,该数据项读取中未检测到错误。
【专利说明】用于检测数据项读取中的错误的方法
[0001]本发明涉及一种用于检测数据项读取中的错误的方法和一种用于保护安全处理器的方法。本发明还涉及一种用于实施所述方法的信息存储介质和安全处理器。
[0002]已知的方法通过执行以下步骤来检测读取错误:
[0003]a)在电子存储器的第一区域中存储数据项的第一副本,和在电子存储器的第二区域中存储数据项的第二副本,
[0004]响应于读取数据项的请求:
[0005]b)分别读取在第一区域中的数据项的第一副本的值和在第二区域中的数据项的第二副本的值,
[0006]c)比较数据项的第一副本和第二副本的读取值,
[0007]d)如果第一副本和第二副本的读取值相同,则该数据项读取中未检测到错误。
[0008]存储器的区域或存储区域是电子存储器或划分为几个存储块的电子存储器的部分。每个存储块旨在包含数据项。通常,存储块是页或整数倍的页。页是在单次写入操作中可以写入的最小数量的八位位组。因此,即使页中存储的数据项具有小于页的大小,也认为页的全部被该数据项占据,而且不能在该页中存储任何额外数据。
[0009]涉及这些已知方法的现有技术例如在以下专利申请中公开:GB 2 404 261、US2006 053308、WO 2008 23297、US 2007 0033417、US 2005 0160310、US2008/140962A1 和US2009/113546A1。
[0010]已知方法的目的仅在于防范存储块故障的后果。因此,如果第一副本和第二副本的值不同,则发出出错信号并触发纠正措施。常规纠正措施之一在于纠正存储的数据项的值。然而,这些方法也检测数据项读取中的错误。在数据项读取中出错的情况下,数据项的第一副本和第二副本的值不相等并不是起源于存储在存储区域中数据的损坏,而是起源于读取这些数据的期间的错误。此处,术语“损坏”或“损坏的数据”在该数据项的物理存储值由于存储块故障而出错时使用。因此,虽然第一副本和第二副本的存储值完全相同,但是在上述步骤c)中观察到所述值是不同的。例如,读取错误可以由读取总线的信号干扰引起,或由非易失性存储器中的被读入到非易失性存储区域后的复制的数据的损坏引起。
[0011]已知方法并不区分这两种类型的错误,且在检测到错误之后系统地开始相同的纠正措施。通常,纠正措施在于纠正错误的值。然而,在读取错误的情况下,这种纠正是无效的,并且转变为计算机资源、例如微处理器实施该纠正的时间的浪费。
[0012]在安全处理器领域,还有区别这两种类型的错误的另一个好的理由。安全处理器是被加强以尽可能地抵挡黑客的电子处理器。因此,其通常用于存储机密数据。目前,针对安全处理器的常规攻击在于损坏存储的数据来引起安全处理器不可预料的行为,这样可能暴露其包含的机密数据的部分或全部。但是,对黑客来说引起读取错误比损坏存储数据更容易。当黑客故意通过利用电压峰或激光束或其它方式引起读取错误时,据说安全处理器为读取攻击的受害者。因而,在安全处理器的情况下,读取错误使得能够十分确定地检测到对密码分析的尝试,而存储块故障可以是例如由老化造成的偶然故障。
[0013]本发明的目的在于纠正该缺点。因此,其主题是根据权利要求1的一种用于检测读取错误的方法。
[0014]上述方法使得能够将读取错误与由存储数据的损坏造成的错误区分开,因而检测出读取错误。实际上,在上述步骤b)和c)的第二迭代中,第一副本和第二副本的值在这些值中的至少一个损坏时必然不同。相反地,在步骤b)和c)的第二迭代中这些值相同确定地识别出数据项读取中的错误。
[0015]因此,能够实施不同的适当措施来响应读取错误或存储数据的损坏。例如,检测到读取错误的事实使得能够避免在存储数据没有损坏时无用地实施目的为纠正存储数据的措施。此外,在安全处理器的情况下,读取错误的检测使得能够触发阻止密码分析的对策的实施。
[0016]该检测方法的实施方案可以包括从属权利要求的一个或更多个特征。
[0017]上述检测方法的实施方案还具有以下优点:
[0018]-使用检错码使得即使在存储块故障之后也能够恢复用于检测读取错误的方法的功能,
[0019]-使用纠错码使得即使数据项的第一副本和第二副本的值已经损坏之后也能够恢复用于检测读取错误的方法的功能,同时限制存储的纠错码的数量,
[0020]-仅从未存储为有故障的存储块中选择用于存储新的数据项的存储块使得能够避免再次使用有故障的存储块来存储数据,
[0021]-在第一存储区域中存储与第二存储区域中的存储值不同的变换值使得发生读取攻击时能够增加第一副本和第二副本的读取值不同的可能性。
[0022]本发明的另一个主题是根据权利要求6的一种用于保护安全处理器免受读取攻击的方法。
[0023]本发明的另一个主题是一种信息存储介质,该信息存储介质包括在被电子计算机执行时用于实施上述检测或保护方法的指令。
[0024]最后,本发明的另一个主题是根据权利要求8的一种安全处理器。
[0025]该安全处理器的实施方案可以包括从属权利要求的一个或更多个特征。
[0026]在通过阅读仅以非限制性实例并参照附图给出的以下描述后,会更好地理解本发明,其中:
[0027]-图1是一种用于与安全处理器相关联的加扰多媒体内容的接收终端的示意图,
[0028]-图2是图1中安全处理器的存储器结构的示意图,
[0029]-图3是将数据写入到图2中的存储器中的阶段的流程图,
[0030]-图4是一种用于保护图1中的安全处理器的方法的流程图;和,
[0031]-图5是用于保护图1中的安全处理器的方法的另一个实施方案的流程图。
[0032]在这些图中,相同的附图标记用来表示相同的要素。
[0033]在该描述的其余部分中,未详细描述本领域技术人员熟知的特征和功能。此外,所使用的术语为用于多媒体内容的条件接收系统的术语。对于关于该术语的更多信息,读者可以参考以下文件:
[0034]“Functional Model of Conditional Access System”,EBU Review, TechnicalEuropean Broadcasting Union,布鲁塞尔,BE,n° 266,21st,1995 年 12 月。
[0035]本发明特别适用于提供付费多媒体内容、例如付费电视的接收控制的领域。[0036]同时播送几个多媒体内容是已知的。为此,每一多媒体内容在其自己的频道上播送。频道通常对应于电视频道。
[0037]在本说明书中,“多媒体内容”更具体地表示旨在以人类可直接感知和理解的方式还原的声音内容和/或视觉内容。通常,多媒体内容对应于形成电影、电视节目或一些广告的一系列图像。多媒体内容还可以是互动式内容,例如游戏。
[0038]为了改善安全性并使多媒体内容在一定条件下、例如订购付费会员资格时可视化,多媒体内容以加扰形式和非明文形式播送。
[0039]更确切地说,每一多媒体内容被分成一系列密码周期。在密码周期的整个持续期间,加扰的多媒体内容的接收条件保持不变。特别地,在密码周期的整个持续期间,多媒体内容以相同的控制字加扰。通常,一个密码周期与下一个密码周期的控制字不同。
[0040]此外,控制字通常是特定于多媒体内容的,下一个控制字随机或伪随机地产生。
[0041]此处,术语“加扰”和“加密”被认为是同义词。对于术语“解扰”和“解密”同样如此。
[0042]明文形式的多媒体内容对应于加扰之前的多媒体内容。因此,加扰之前的多媒体内容对于人类是可以直接理解的,无需凭借解扰操作并且无需使其可视化受制于特定条件。
[0043]用于解扰多媒体内容的必要控制字以同步方式与多媒体内容传输。为此,例如,控制字与加扰多媒体内容多路复用。
[0044]为了改善控制字传输的安全性,控制字以包含在ECM (授权控制信息)中的密码的形式传输至终端。此处,“密码”表示凭借其本身不足以恢复明文控制字的信息项。因此,如果控制字的传输被截获,仅知道控制字的密码不能够恢复使多媒体内容能够解扰的控制字。
[0045]为了恢复明文控制字,即、能够直接解扰多媒体内容的控制字,其必须结合秘密信息项。例如,控制字的密码是通过利用密钥加密明文控制字来获得的。在这种情况下,秘密信息项是使得能够解密密码的密钥。控制字的密码还可以是存储在包含大量可能控制字的表格中的控制字的参照。在这种情况下,秘密信息项为使明文控制字与每一参照相关联的表格。
[0046]秘密信息项必须保存在安全的地方。为此,已经提出将秘密信息项存储在直接与每个终端连接的安全处理器、例如智能卡中。
[0047]图1描绘了旨在在这样的条件接收控制系统中使用的终端8。终端8解扰频道以使其在显示器上以明文方式显示。
[0048]终端8包含播送的多媒体内容的接收器10。该接收器10连接到解复器12的输入端,解复器12将多媒体内容传输到解扰器14,并将ECM和EMM(授权管理信息)传输到安全处理器16。
[0049]解扰器14基于由处理器16传输的控制字将加扰的多媒体内容解扰。解扰的多媒体内容被传输到对其进行解码的解码器18。解压缩或解码的多媒体内容被传输到驱动该多媒体内容在配备有屏幕24的显示器22上显示的显卡20。显示器22在屏幕24上以明文形式显示多媒体内容。例如,显示器22为电视机、计算机或者固定电话或移动电话。此处,显示器22为电视机。[0050]通常,终端8和处理器16之间的接口包括由接收控制模块28管理的阅读器26。此处,阅读器26为智能卡阅读器。模块28特别地管理:
[0051 ]-解复用的ECM和EMM到处理器16的传输,和
[0052]-由处理器16解密的控制字的接收及其到解扰器14的传输。
[0053]处理器16处理机密信息,例如密钥或多媒体内容接收授权。为了保持该信息的机密性,其设计为对黑客进行的攻击尝试尽可能地稳健。因此,其针对这些攻击比终端8的其它部件更为稳健。特别地,处理器16包括的存储器仅可被该处理器16访问并使用。此处,处理器16为智能卡30的安全处理器。
[0054]处理器16特别地包括借助于信息传输总线34连接到易失性电子存储器36和非易失性电子存储器38的可编程电子计算机32。
[0055]存储器36通常以缩写RAM(随机存取存储器)为人所知。存储器38即使在处理器16缺乏电力的情况下也保存存储的数据。此外,存储器38为可重写存储器。通常,其为EEPROM(电可擦可编程只读存储器)或闪存。存储器38包含解扰多媒体内容所需的机密信息。此处,其还包含用于执行图4和图5中方法的必要指令。
[0056]图2更详细地描绘了存储器38的各个区域。此处,存储器38包括以下存储区域:
[0057]-控制区域42,
[0058]-第一数据存储区域44,和
[0059]-第二数据存储区域46。
[0060]每个存储区域由起始地址和结束地址来定义。此处,每个区域占据存储器38中一系列连续的地址。每个区域被分成几个存储块。例如,区域42、44和46各包含超过100或400个存储块。每个存储块的大小为几个八位位组。此处,这些区域的存储块全部是同样大小的。例如,该大小大于或等于64ο或128ο。区域44和46的大小相同。
[0061]区域44被分成P个同样大小的存储块Blj,其中下标j识别存储块Blj相对于区域44起始地址的起始位置。
[0062]区域46也被分成P个与块Blj同样大小的存储块B2j。下标j识别存储块B2j相对于区域46的起始地址的起始位置。此处,为了简化实施方案,块B2j的起始和区域46的起始地址之间的偏移量与存在于块Blj的起始和区域44的起始地址之间的偏移量相同。在这些条件下,块Bu和B。被称为“成对的”。
[0063]区域42包含2P个同样大小的存储块CBijtl每个块CBij与区域44或46的块Bij相关联。下标i取值“ I ”来识别区域44,取值“ 2 ”来识别区域46。
[0064]此处,每个块CBij特别地包含以下信息:
[0065]-关联的块Bu是否空闲,即其是否可以用来存储新数据项的指示,
[0066]-在适用情况下,下一个与该块Bu相连的存储块的指示,或者块该Bu是一系列相连块的最后一个块的指不,
[0067]-检错码CDij,
[0068]-覆盖掩码MRij,和,
[0069]-指示块Bij是否有故障的标记MDijt5
[0070]码仅从包含在块Bu的数据项的值中构建。该码将足够的冗余添加到包含在块Bu中的数据项,使其能够检测存储在该块中的数据项的值中的一个或更多个错误位。
[0071]例如,码⑶u为以缩写CRC更为人所知的循环冗余校验。例如,码OTij为CRC32。
[0072]覆盖掩码MRu为用来将待存储于块Bu中的数据项的值Du可逆地变换为存储于该块^中的变换值D’ 的值。该变换是可逆的,使得由掩码MRu的值和变换值D’ 的值能够获取数据项的值Dijtl
[0073]标记MDij使得能够将块Bij是否有故障存储。例如,有故障的块Bij为包含其值不能再被重写或修改的信息位的存储块,这导致在该存储块中的存储值中出现错误。
[0074]区域42还包含纠错码CCQ、CC1和CC2。码CCtl从区域44和46的内容中构建。码CCtl将足够的冗余添加到存储在区域44和46的内容,使其不仅能够检测而且能够纠正存储在所述区域44和46中的数据的一个或更多个错误位。类似地,码CC1和CC2分别将足够的冗余添加到区域44和46的内容,使得能够分别纠正在区域44和46中的k个错误位,其中,k是大于或等于I的自然整数,优选为大于或等于5或10。与码CCtl相反,码CC1和CC2仅能分别纠正区域44和46中的错误位。例如,这些纠错码为Reed Solomon码。
[0075]图3描绘了在存储器38中存储机密数据项的阶段50。机密数据项通常是用于解密控制字或接收权利的授权或不授权接收和解扰多媒体内容的密钥。
[0076]如果数据项的大小大于存储块的大小,则数据项首先被分为几个部分,每个大小都小于存储块的大小,这样来达到数据项具有小于存储块的大小的情况。在这种情况下,相同数据项的各个部分例如通过在每个块BCu中指出下一个存储块的地址链接到一起。
[0077]首先,在步骤52 中,计算机32从区域44和46的各个存储块中选择一对满足以下条件的存储块BCij:
[0078]-存储块Blj和B2j是成对的,
[0079]-存储块Blj和B2j是空闲的,和,
[0080]-存储块Blj和B2j未被标记为有故障。
[0081 ] 计算机32基于包含在控制区域42的块BClj和BC2j中的信息验证选择的块Blj和B2j是空闲且无故障的。
[0082]在下文中,待存储于块Bu和B。中的数据项的值分别表示为Du和Dy这些值是相同的。
[0083]在步骤54中,计算机32计算码OTlj和OT2j的新值,使得能够分别检测值Dlj和D2j中的错误。在该步骤54中,计算机32还计算纠错码CQ、CC1和CC2的新值,并将其存储到区域42中。
[0084]码OTlj和OT2j的新值分别存储于块BClj和BC2j中。
[0085]计算机32还在其块BCu和中存储指示,根据该指示存储块Bu和B。不再是空闲的。
[0086]然后,在步骤56中,值Dlj和D2j分别根据掩码MRlj和MR2j的值分别变换为值D’ ^和D’2j。掩码MRlj和MR2j的值包含在块BClj和BC2j中。掩码MRlj和MR2j的值是不同的,使得变换值D’ 和0’μ是不同的。
[0087]例如,利用以下关系进行变换:D’ ,j = DuMRu,其中“”是异或运算。
[0088]然后,在步骤58中,值D’ u和D’ 2J分别物理地存储于存储块Blj和B2j中。然后阶段50结束。[0089]在使用时,处理器16执行例如用于解密控制字的程序。在执行该程序时,指令需要读取存储在存储器38中的数据项,例如密钥或接收授权。于是执行图4中的方法。
[0090]首先,在步骤66中,将要读取的存储块的地址存储在非易失性读取地址寄存器中。例如,该寄存器包含在存储器38中。
[0091]然后是读取存储器38中的特定地址处的数据项的步骤68。更确切地说,在操作70中,读取分别包含在成对存储块Bu和B2^中的值D’ u和D’ 2j。
[0092]然后,在操作72中,计算机32对图3中方法的步骤56中被应用的值应用逆变换。为此,其使用掩码MRu和MI^.的值。通过对值D’ u和D’ 2J应用该逆变换获得的值分别表示为值Du和Dy要注意的是,在存储数据读取错误或损坏的情况下,值Du和&不一定与在写入阶段50中存储的值Dlj和D2j相同。
[0093]在步骤74中,比较读取值DulP D2^如果这些值相等,则接下来是步骤76,在该步骤期间,通过处理器16执行的程序对值Dlj进行处理并继续其正常执行。例如,计算机32利用值Du解密控制字。在步骤76中,未检测到读取错误。此外,在步骤76中,读取地址寄存器被擦除。
[0094]相反地,如果读取值Dlj和D2j不相同,则正在执行的程序被中断,由计算机32执行验证例程。例如,重启安全处理器,在安全处理器重启期间,如果读取地址寄存器不是空的,则系统地执行验证例程。在程序执行中有错误的情况下验证例程还可以通过重新路由来启动。
[0095]一旦启动该验证例程,在步骤78中,计算机32继续进行读取存储在存储器38中的数据项的新尝试。新的读取尝试在于读取与存储在读取地址寄存器中的地址对应的数据项。例如,步骤78与步骤68相同。
[0096]然后,在步骤80中,计算机继续进行在步骤78中读取的新值DuIP D2^的新比较。
[0097]如果这回值01.和0^是相同的,则在步骤82中,检测到读取错误。实际上,在步骤68中读取的值Dlj和D2j之间的不同并不起源于存储在存储器38中的数据的损坏。事实上,在安全处理器的情况下,检测到读取错误表明有非常高的可能性步骤68中的第一读取尝试已经由于读取攻击而失败。
[0098]因此,作为响应,在步骤84中,计算机32触发限制将多媒体内容解扰的对策。此处,利用处理器16来暂时地或永久地阻止多媒体内容的解扰。为此通常禁止控制字的解
LU O
[0099]更确切地说,对策可以是以下对策中的一种:
[0100]-擦除包含在存储器38中的机密数据,例如密钥和接收授权,
[0101]-触发处理器16的自毁以致使其永久地无法使用,和
[0102]-暂时地或永久地停止控制字的解密。
[0103]在步骤84中,如果尽管实施了对策而处理器16仍然可用,则擦除读取地址寄存器。
[0104]如果在步骤78中读取的值D u和D2^是不同的,则这意味着存储的数据必定是损坏的。因此,这不是读取错误。
[0105]在这种情况下,在步骤86中,计算机32利用码CTlj验证值Dlj是否是错误的。
[0106]如果值Dlj不是错误的,则接下来是在区域44和46的新的成对存储块中存储值Dlj的步骤88。例如,步骤88以与写入阶段50相似的方式执行。因此,正是存储在这些新块中的值会在相同数据项的下一次读取期间使用。
[0107]然后,在步骤90中,标记MDlj和MD2j被更新以指示之前的块Blj和B2j是有故障的并存储在存储器中。此处,块Blj表示为有故障的,而其中已经存储的值是正确的。这使得能够继续以简单的方式管理存储块的配对。
[0108]在步骤90中,还擦除读取地址寄存器。然后,值Dlj由通过步骤76继续其执行的程序处理。
[0109]如果在步骤86中值Dlj是错误的,则接下来是利用码OT2j来验证值D2j正确还是错误的步骤92。
[0110]如果数据项D2j是正确的,则接下来是与步骤88相同的步骤94,除了用值D2j代替值Dljtl步骤94的接下来也是步骤90。
[0111]如果值Du和Du是错误的,则计算机继续进行步骤98,在该步骤期间,利用码CCtl执行纠正这些值的第一尝试。该步骤98使得计算机32能够纠正分布在区域44和46中的k个错误位。如果有比k少的错误位,则认为纠正已经成功。在这种情况下,分别得到值Dlj和D2j的纠正值DdjP Dm。
[0112]在这种情 况下,在步骤100中,计算机32比较值Delj和Dc^。
[0113]如果值Delj和De2j相同,则在步骤102中,值Delj分别存储在区域44和46的两个新存储块中。例如,该步骤与步骤88相同,除了使用值Dm代替值Dlj。
[0114]然后是步骤104,在该步骤期间,块Blj和B2j被标记为有故障的。例如,该步骤104与步骤90相同。然后本方法返回步骤76。
[0115]如果值Delj和De2j是不同的或如果利用码CCtl的错误纠正未成功,则计算机32继续进行步骤108,在该步骤期间,计算机设法利用码CC1纠正区域44的数据。如果纠正是成功的,则计算机32获得值Dlj的纠正值Delj。然后是与步骤102相同的步骤110。步骤110之后为步骤104。
[0116]如果步骤108是不成功的且未使得能够纠正值Du,则计算机执行步骤112,在该步骤期间,计算机尝试利用码CC2纠正值Dy如果该步骤112成功了,则计算机32获得纠正值D&。然后是与步骤94相同的步骤114,除了用值Dc^来代替值D2^步骤114之后是步骤 104。
[0117]如果已经不可能纠正值Dlj或值D2j,则在步骤116中,由于数据项是错误的且不能被纠正,计算机32确定数据项丢失。在该步骤116中,计算机32将存储块Bu和B。标记为有故障的。相对于步骤90执行该操作。然后,不管程序是否能够管理数据项的值的缺失,在这种情况下都继续程序的执行。如果程序的执行不能在没有数据项的值的情况下继续,则停止程序的执行,并且例如重启安全处理器。
[0118]图5描绘了一种与图4中的方法相同的用于保护处理器16的方法,除了没有使用纠错码。因此,在该方法中省略步骤98到114。此外,在值Du和&都被检测为有错误的情况下,直接继续进行步骤116。
[0119]许多其它实施方案也是可能的。例如,可以省略存储值的变换操作。在这种情况下,省略步骤56和72。
[0120]存储器的分配可以是存储器的逻辑或物理分配。[0121]用于检测值Dlj中错误的算法可以与用于检测值D2j中错误的算法不同。在这种情况下,码CDlj和CD2j的值不同。
[0122]在一个变化方案中,还在利用纠错码纠正存储值之后使用检错码。这使得能够在有需要时验证纠正值是正确的。
[0123]在另一个变化方案中,省略码CCtl,或相反地,省略码CC1和CC2,或者不使用纠错码。
[0124]在另一个变化方案中,纠错码仅用于单个存储区域。 [0125]纠错码不一定是整个存储区域共用的。在一个变化方案中,纠错码被构建为用于存储区域的几个块的有限组。纠错码也可以被构建为用于每个存储块和仅用于该存储块。在这种情况下,优选纠错码替代检错码。实际上,几乎所有的纠错码也都允许错误的检测。
[0126]纠错码也可以是值Dlj和D2j共用的。
[0127]纠错码也可以根据其它算法、例如Hamming算法或Turbo码来构建。
[0128]当存储块Bu被检测为有故障的,与其配对的存储块B。不必也被系统地标记为也是有故障的。在一个变化方案中,只有在与块B。相关联的码CD。确认其包含的数据项也错误时,该块才被标记为有故障的。在相反的情况下,表格使每个块B。的地址与每个块Blj的地址相关联。在这种情况下,修改该表格以使在块B2j的地址处与使用来代替之前的块Bu的新块B’ U相关联。
[0129]控制区域42可以存储在区域44的块中。在这些条件下,如同该区域44的所有块,其在区域46中被复制。因此,这使得能够以与所述区域44和46的任何其它块相同的方式保护控制区域免受数据损坏或读取错误。
[0130]值Dij到值D’ u的变换可以省略或仅对区域44或46之一实施。
[0131]此处描述的特定操作或步骤的顺序可以修改。例如,检错码的计算在值Du到变换值D’ u的变换之后执行。在这种情况下,在读取期间,读取的数据项是正确或错误的验证基于值D’ ^而不是值0〃来进行。
[0132]在一个变化方案中,在更新故障块的标记MDij之前,计算机验证块Bij确实是故障的。例如,其执行以下操作:
[0133]α)在关注的块Bij中写入值Dij,然后,
[0134]β )读取存储在该块Bij中的值Dij,
[0135]X)比较写入值和读取值,然后,
[0136]δ )如果这些值相等,则重复操作a)至c)至少N次。否则,更新标记MDij来指示块Bu是有故障的。
[0137]通常,数量N大于2,优选大于10。
[0138]如果上述操作a)至d)经常实施用于同一个块Bij,但是上述验证每次都得到块Bij仍为有用的,则可以将特定值分配到标记MDij,指出该块Bij不是非常安全。在这些条件下,于是尽可能地不选择块Bu用于存储新数据。另一方面,如果不再有任何其它更安全的有效存储块,则块Bu会用于存储数据项。
[0139]此处描述的每个存储器都可以以单电子元件或彼此独立地连接到计算机32的几个电子元件的结合的形式制造。例如,区域44和46可以对应于两个物理分离的存储器,每个存储器都通过其自己的读取总线连接到计算机32。[0140]可以实施超过两个的冗余存储器。在这种情况下,在这些存储区域的每一个中复制在该存储器中复制的数据项的值。上述方法可以容易地适合于W个存储区域的情况,其中W为严格大于2的整数。
[0141]上述描述的主题也适用于非易失性存储器。
【权利要求】
1.一种用于检测数据项读取中的错误的方法,所述方法包括: a)在电子存储器的第一区域中存储(50)所述数据项的第一副本,和在电子存储器的第二区域中存储所述数据项的第二副本, 响应于读取所述数据项的请求: b)分别读取(68)在所述第一区域中的所述数据项的第一副本的值和在所述第二区域中的所述数据项的第二副本的值, c)比较(74)所述数据项的第一副本和第二副本的读取值, d)如果所述第一副本和第二副本的读取值相同,则所述数据项读取中未检测到错误, 其特征在于: e)如果所述第一副本和第二副本的读取值不同,则重复(78、80)上述步骤b)和C),然后, f)如果步骤e)中的所述读取值相同,则检测到(82)所述数据项的读取中的错误,否则,所述数据项读取中未检测到错误。
2.根据权利要求1所述的方法,其中,所述方法包括: -使检错码与所述数据项的第一副本的值相关联(54),所述检错码向所述数据项添加冗余并使得能够检测所述数据项的值中的错误, -如果在步骤f)中,所述第一副本和第二副本的读取值不同,则所述方法包括利用与所述值相关联的所述检错码来验证(86)所述第一副本的读取值是错误的还是相反地为正确的,和 -如果所述第一副本的读取值是正确的,则在与发现所述数据项的之前的第二副本的存储块不同的第二存储区域的存储块中存储(88)所述第一副本的值,以便形成所述数据项的新的第二副本,然后, -在步骤b)和c)的所有新的迭代中,使用所述数据项的新的第二副本代替之前的第二副本。
3.根据前述权利要求之一所述的方法,其中,所述方法包括: -使检错码与所述数据项的第一副本和第二副本相关联(54),所述检错码向所述第一副本和第二副本的值添加足够的冗余以使得能够纠正所述数据项的这些副本中每一个的值中的一个或更多个错误位, -如果在步骤f)中,所述第一副本和第二副本的读取值不同,则所述方法包括: ?利用纠错码纠正(98)所述数据项的第一副本和第二副本的值来获得所述第一副本和第二副本的纠正值,然后, ?比较(100)所述第一副本和第二副本的纠正值,和, ?如果纠正值相同,则在与其中发现所述数据项的之前的第一副本和第二副本的存储块不同的分别来自第一存储区域和第二存储区域的新的存储块中存储(102)所述数据项第一副本的纠正值,以便形成所述数据项的新的第一副本和第二副本,然后, 在步骤b)和c)的所有新的迭代中,使用所述新的第一副本和第二副本代替之前的第一副本和第二副本。
4.根据权利要求3或4所述的方法,其中,对于其中发现所述数据项的之前的副本的每个存储块,所述方法包括:-将所述存储块存储(90、104、116)为有故障的,和, -当在用于存储信息项的存储区域之一中分配新的存储块时,仅从该区域的未存储为有故障的存储块中选择(52)该存储块。
5.根据前述权利要求中任一项所述的方法,其中, -当存储所述数据项的第一副本时,首先利用可逆掩码函数对所述数据项的值进行变换(56)来获得与非变换值不同且与所述第二副本的存储值不同的变换值,然后,在第一区域中存储的正是该变换值,和, -当读取所述第一副本时,对存储的变换值实施逆变换(72)来获得第一副本的读取值。
6.一种用于保护安全处理器免受读取攻击的方法,所述安全处理器利用存储在所述安全处理器的第一存储区域和第二存储区域中的机密数据项来执行(76)加密或解密信息项的例程,其特征在于: -所述安全处理器通过实施根据前述权利要求中任一项所述的方法来检测(82)所述机密数据项读取中的错误, -如果未检测到所述机密数据项读取中的错误,则所述安全处理器继续利用读取的机密数据项来加密或解密(76)所述信息项,否则, -相对于未检测到所述机密数据项读取中的错误的情况,响应于检测到读取错误,所述安全处理器自动触发(86)限制利用所述读取的机密数据项来加密或解密所述信息项的对策。
7.一种信息存储介质(38),其特征在于,所述信息存储介质包括在被电子计算机执行时用于实施根据前述权利要求中任一项所述的方法的指令。
8.一种安全处理器,包括: -电子存储器的第一(44)区域和第二(46)区域, -电子计算机(32),其编程为: a)在所述第一区域中存储数据项的第一副本,和在所述第二区域中存储所述数据项的第二副本, 响应于读取所述数据项的请求: b)分别读取在所述第一区域中的所述数据项的第一副本的值和在所述第二区域中的所述数据项的第二副本的值, c)比较所述数据项的第一副本和第二副本的读取值,和, d)如果所述第一副本和第二副本的读取值相同,则所述数据项读取中未检测到错误。 其特征在于,所述电子计算机还编程为: e)如果所述第一副本和第二副本的读取值不同,则重复上述步骤b)和C),然后, f)如果在步骤e)中的所述读取值相同,则检测到所述数据项读取中的错误,否则,表示无读取错误。
9.根据权利要求8所述的安全处理器,其中,所述安全处理器为智能卡(30)的安全处理器。
10.根据权利要求8和9之一所述的处理器,其中,已知为第一存储器的电子存储器(38)为非易失性存储器,所述安全处理器包括第二易失性存储器(36),其中,在所述第一`存储器(38)中读取的数据被系统地复制以便由所述电子计算机(32)处理。
【文档编号】G06F11/16GK103959250SQ201280059140
【公开日】2014年7月30日 申请日期:2012年11月29日 优先权日:2011年12月1日
【发明者】伊曼纽尔·巴罗, 帕特里克·索凯 申请人:维亚塞斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1