用于暂存存储内容的存储器装置和方法与流程

文档序号:17548357发布日期:2019-04-30 18:01阅读:176来源:国知局
用于暂存存储内容的存储器装置和方法与流程

实施例一般性地涉及用于暂存存储内容的存储器装置和方法。



背景技术:

电子设备在许多应用中必须受保护以防攻击。典型的示例是芯片卡,所述芯片卡处理和存储机密数据(例如密钥或者密码)或者应受保护以防篡改的数据(例如预付卡上的结余),或者也是控制设备,例如车辆中的控制设备,它们的正确工作对于用户的安全而言是重要的。电子设备的一个可能的攻击点是其存储器,通过对所述存储器的篡改,攻击者能够获悉机密数据或者能够损害电子设备的正确工作。因此,期望有有效的机制来保护电子存储器,尤其是存储内容。



技术实现要素:

根据一个实施方式,提供一种存储器装置,其具有:存储器;第一缓冲存储器;第一缓冲存储器控制单元,所述第一缓冲存储器控制单元配置为,在将来自存储器的存储内容存储到第一缓冲存储器中时,借助修改(例如通过使有用数据相对于其校验和而改变)使在存储器中的存储内容无效;第二缓冲存储器和第二缓冲存储器控制单元,所述第二缓冲存储器控制单元配置为,从存储器读取存储内容,以检验:从存储器中读取的存储内容是否有效,并且如果从存储器读取的存储内容无效,则将对修改的逆向操作(umkehrung)应用于所读取的存储内容。

根据另一实施方式,提供一种用于根据上述存储器装置暂存存储内容的方法。

附图说明

附图并未反映实际大小比例,而是要用于说明不同的实施例的原理。在下文中,参照下述附图描述不同的实施例。

图1示出了具有一个主存储器、一个缓存存储器和一个处理器的数据处理装置。

图2示出了具有一个主存储器、两个缓存存储器和一个处理器的数据处理装置。

图3示出了具有一个主存储器、两个缓存存储器、所属的缓存控制器和一个处理器的数据处理装置。

图4示出根据一个实施方式的存储器装置。

图5示出流程图,所述流程图图解说明根据一个实施方式的用于暂存存储内容的方法。

具体实施方式

接下来的详细描述涉及附图,所述附图示出细节和实施例。这些实施例予以详细地描述,使得本领域技术人员能够实施本发明。其它实施方式也是可行的并且所述实施例能够在结构、逻辑和电学方面做出改变,而不偏离于本发明的主题。不同的实施例不一定互相排斥,而是不同的实施方式能够彼此组合,使得产生新实施方式。在本说明书的范围中,术语“连接”、“联接”以及“耦合”用于描述直接和间接的连接、直接或间接的联接以及直接或间接的耦合。

缓冲存储器,其典型地称作缓存或缓存存储器,典型地被用来补偿对存储器相对缓慢的访问。

图1示出了具有一个主存储器101、一个缓存存储器102和一个处理器103的数据处理装置100。

处理器103访问主存储器101并且从主存储器101中读取指令(程序代码)和要处理的数据。然而,处理器103可以是快速的,使得其与主存储器101能提供指令和数据相比更快速地处理数据和指令(命令)。因此,设有缓存存储器102,在该缓存存储器中逐块地暂存有来自主存储器的存储内容,该处理器由于与对主存储器的访问速度相比而对缓存存储器102的访问速度更高,所以能够更快速地访问所述来自主存储器的存储内容。

如果该数据处理装置100是安全控制器,在所述安全控制器中可变的数据被从原始存储器(例如主存储器101例如ram(随机存储器))输送到另一存储器(例如缓存102)中,则会需要:通过破坏性读取使在主存储器101中的原始数据在输送之后不可用。由此强制使得:在系统(由主存储器和缓存构成)中总是只存在数据的一实例。这阻止如下攻击,所述攻击目的在于有错误地访问其他(即较旧)版本的数据。

然而存在如下场景:其中尽管从第一缓冲存储器来看,原始数据应被破坏,但从第二缓冲存储器来看,原始数据应始终是可读取的。对此的示例是一种系统,其具有数据缓存和与之分开的指令缓存。

图2示出了具有一个主存储器201、一个第一缓存存储器202、一个第二缓存存储器203和一个处理器204的数据处理装置200。

如在图1中的示例中那样,处理器204访问主存储器201并且从主存储器201中读取指令(程序代码)和要处理的数据。

然而与图1不同,设有两个缓存存储器202、203。例如,第一缓存存储器202是用于暂存(“缓存”)要处理的数据的数据缓存存储器,而第二缓存存储器203是用于暂存指令(程序代码)的指令缓存存储器。

如果程序代码和要处理的数据以混合形式存在于主存储器201中,即存在如下数据块,所述数据块不仅包含程序代码而且包含要处理的数据,如其在特定的架构中情况如此(例如在使用literal(字面量)时),如果缓存存储器202、203逐块地加载存储内容(如常见的那样),则需要的是:相同的数据块对两个缓存存储器202、203保持是可读取的和可加载的。

这通过如下方式来实现:完全放弃破坏性读取,然而这使该系统对攻击是脆弱的。

另一可能性是,第一缓存存储器202(即首先从该存储器读取的缓存存储器)在第二缓存存储器203能够从原始存储器读取存储内容之前首先将存储内容回写到原始存储器201中。然而,这以如下认识为前提:存储内容是否恰好存在于第一缓存存储器202中,这因必需的再复制(umkopieren)产生高的系统复杂性和显著的性能损失。

根据不同的实施方式,在将来自主存储器201的存储内容存储到第一缓存缓存器202中时执行可逆的破坏性读取。

这能够实现:在将存储内容读取到第二缓存存储器203中时在了解可逆的破坏性读取的逆向规则(umkehrvorschrift)的情况下,原始的存储内容又能够被修复,其中所述可逆的破坏性读取通过读取到第一缓存储存器202中已启动。

由此,破坏性读取本身不是破坏数据的操作,而是更确切地说是对数据进行变换的操作。在此,变换(或修改)例如选择为,使得该变换尽可能全面地修改存储内容并且以不能轻易逆向操作的方式修改所述存储内容。因此,例如取反是最大程度的更改,但通过再次应用是可轻易撤销的。借助非线性/线性反馈的移位寄存器((n)lfsr)或适当的加密函数进行的修改同样是进行显著修改的,然而并不能够借助相同的逻辑电路再次向回变换进而不那么容易逆向操作。

例如,针对变换选择修改函数,所述修改函数必须相对频繁重复性地应用于数据,直至又建立原始数据。

对存储内容的修改和将对存储内容的修改进行逆向操作例如由缓存存储器202、203的缓存控制器执行。

图3示出了数据处理装置300,其具有一个主存储器301、一个第一缓存存储器302、一个第二缓存存储器303、一个处理器304、一个第一缓存控制器305和一个第二缓存控制器306。

第一缓存控制器305具有对主存储器301的存储器接口和对第一缓存存储器302的存储器接口,并且控制:将来自主存储器301的存储内容存储在第一缓存存储器302中。

第二缓存控制器306具有对主存储器301的存储器接口和对第二缓存存储器303的存储器接口,并且控制:将来自主存储器301的存储内容存储在第二缓存存储器303中。

根据一个实施例,第一缓存控制器305又将存储在第一缓存存储器302中的且例如由处理器304改变的存储内容又向回存储到主存储器301中。同样,第一缓存控制器305可以修改主存储器301中的存储内容并且例如根据如上文所描述的可逆的修改使之无效。

而根据一个实施例,第二缓存控制器306具有对主存储器301的只读访问,即不能写入主存储器301中并且尤其不修改主存储器301中的存储内容。

为了可逆修改存储内容,第一缓存控制器305例如能够仅仅变换附于存储内容(例如附于存储字)的错误识别码,而不变换整个存储内容。

可以提出:第一缓存控制器305可以仅对存储内容检查错误,对于所述存储内容而言错误识别码处于原始(未修改的)状态中,即所述第一缓存控制器并不能够在检查错误时补偿错误识别码的修改。可逆的修改因此从第一缓存控制器305来看可以是可逆的,因为第一缓存控制器305并不支持其逆向操作。这提高了系统的安全性。

而根据一个实施例,第二缓存控制器306能够在读取存储内容包括所属的错误识别码例如存储字在内时,不仅在假设错误识别码不曾被修改的情况下而且在假设错误识别码曾被修改的情况下对存储内容检查错误。

如果要避免这样的双重检查——或存储内容(无错误识别码)本身是可逆的修改的一部分,则能够借助补充的预测信息、例如补充的预测位通过第二缓存控制器306有针对性地触发向回变换。例如,第一缓存控制器305设置存储内容的预测位,该预测位指明:存储内容已经由所述第一缓存控制器可逆地变换,并且对此第二缓存控制器306能够进行响应,在其读取存储内容并检测到预测位(以预测信息为例)被设置时,将变换的逆向操作应用于存储内容。该预测位本身产生仅1位安全性。

通过修改足够数量的位(例如32位或更多)可以设计高的安全性和攻击识别概率。

另一方案(在不需要非常高的安全等级时)在于,仅通过附加的命令位将存储内容标记为被破坏。然而这引起了附加的存储器需求和安全性减低。因此,可逆的修改(通过将位取反)在此仅应用于一个位。

数据处理设备300例如可以是安全控制器,所述安全控制器具有数据缓存存储器302和指令缓存存储器303。主存储器301例如是外部的ram,两个缓存302、303都能够访问该外部的ram并且该外部的ram以缓存块加上附加的错误识别码的大小来对存储内容进行存储。缓存块在此是如下单元,缓存302、303借助所述单元来暂存。这意味着:当缓存302、303要暂存存储内容时,所述缓存从存储器读取缓存块的大小的整个数据块并且将其存储。

因为在数据缓存302中能够将来自ram301的数据由处理器(cpu)304通过存储数据(存储器操作)被修改并且存在如下风险:该修改通过重新加载来自ram301的原始数据(例如通过攻击强制进行)丢失,所以根据一个实施例在将数据块装入数据缓存302中时可逆地破坏性读取ram301中的对应的原始数据块。在此,数据缓存302的缓存控制器305可逆地修改ram301中的数据块的错误识别码字(或通常为错误识别数据)。

对于指令缓存303而言并不存在如下必要性:所述指令缓存在存储数据块时销毁原始数据块,因为其是只读缓存进而在此通过cpu304进行数据修改不可行。如果指令缓存303应装入数据块,该数据块之前已经由数据缓存302装入进而已经可逆地被修改,则指令缓存303的缓存控制器306根据该实施例能够不仅根据数据块的未被破坏的错误码而且根据数据块的被可逆破坏的(经修改的)错误码来检查数据块。为了使这变得容易,可以设有另一补充该数据块的位,所述位说明了,数据库是否已经被可逆地破坏。数据缓存302的缓存控制器305在破坏性读取时将所述位取反。应注意的是,根据不同的实施方式,缓存控制器通常可以是配设给该缓存的存储器控制器,该存储器控制器例如也可以处于ram301本身中。同样,术语“缓冲存储器控制单元”通常可理解为如下控制单元,所述控制单元配设有缓冲存储器并且承担对缓冲存储器的控制任务。

上文所描述的机制例如可以用于安全控制器,该安全控制器实现为片上系统(singlechip(单芯片))。

综上所述,根据不同的实施方式提供一种存储器装置,如其在图4中所示出的那样。

图4示出根据一个实施方式的存储器装置400。

存储器装置400具有一个存储器401、一个第一缓冲存储器402和一个第一缓冲存储器控制单元403,所述第一缓冲存储器控制单元配置为,在将来自存储器401的存储内容存储到第一缓冲存储器402中时借助修改使存储器401中的存储内容无效。

此外,存储器装置400具有一个第二缓冲存储器404和一个第二缓冲存储器控制单元405,所述第二缓冲存储器控制单元配置为,从该存储器401读取存储内容,以检验:从该存储器401读取的存储内容是否有效,并且如果从该存储器401读取的存储内容无效,则将对修改的逆向操作应用于所读取的存储内容。

根据不同的实施例,当第一缓冲存储器暂存数据块时,第一缓冲存储器(例如缓存)或其相关的控制装置执行对存储器中的数据块的可逆的修改。这用于防止:相同的数据块两次存在于该系统(由存储器和缓冲存储器构成)中,这对攻击会是脆弱的。可逆的修改使在存储器401中的存储内容无效。无效在此可以理解为,使得存储内容在修改后不再满足一定的检查规则。例如,存储内容具有有用数据和校验和,并且有用数据或校验和或这两者在修改时被修改,使得校验和对于有用数据不再是正确的校验和(例如根据特定的错误检测码或错误校正码,根据所述错误检测码或错误校正码在修改之前针对有用数据已经产生校验和)。

第二缓冲存储器(或其相关的控制装置)能够确定:该第二缓冲存储器应存储的数据块是否已经被可逆地修改并且必要时是否补偿该修改。例如,第二缓冲存储器可以取消修改或立即补偿该修改,使得所述第二缓冲存储器当修改在于对错误码进行修改时也能够利用修改过的错误码正确地执行错误检测。

存储器装置400例如对应于电子集成电路的存储器,例如芯片卡(带有任意形状系数(formfaktor))或控制设备(例如带有微控制器),尤其是安全控制器,例如车辆中的控制设备。

第一缓冲存储器控制单元例如配置为,控制在第一缓冲存储器中的存储内容的存储,和第二缓冲存储器控制单元例如配置为,控制在第二缓冲存储器中的存储内容的存储。

图5示出了流程图500,该流程图图解说明了用于暂存存储内容的方法。

在501中,在将来自存储器的存储内容存储在第一缓冲存储器中时,修改在存储器中的存储内容,使得该存储内容变为无效。

在502中,从该存储器中读取存储内容,以将该存储内容存储在第二缓冲存储器中。

在503中,检验:从该存储器中读取的存储内容是否有效。

在504中,如果从该存储器中读取的存储内容是无效的,则将对修改的逆向操作应用于被读取的存储内容。

综上所述,接下来说明一些实施例。

实施例1是存储器装置,如其在图4中所示出。

实施例2是根据实施例1的存储器装置,其中第二缓冲存储器控制单元配置为,将借助对修改的逆向操作而修改的被读取的存储内容存储在第二缓冲存储器中。

实施例3是根据实施例1至2中任一项的存储器装置,其中存储内容包含指令和借助指令要处理的数据,和第一缓冲存储器是用于将要处理的数据提供给处理器的缓冲存储器,和第二缓冲存储器是用于将指令提供给处理器的缓冲存储器。

实施例4是根据实施例1至3中任一项的存储器装置,其中针对在存储器中的存储内容存储错误码信息,并且第一缓冲存储器控制单元配置为,借助修改所存储的错误码信息使在存储器中的存储内容无效。

实施例5是根据实施例4的存储器装置,其中第二缓冲存储器控制单元配置为,根据所存储的错误码信息检验:从存储器中读取的存储内容是否有效。

实施例6是根据实施例5的存储器装置,其中第二缓冲存储器控制单元配置为,通过所述第二缓冲存储器控制单元检验存储内容根据所存储的错误码信息是否无错误的方式来检验:从存储器中读取的存储内容是否有效。

实施例7是根据实施例6的存储器装置,其中对修改的逆向操作的应用包括:检查:存储内容根据错误码信息是否无错误,所述错误码信息通过应用对修改的逆向操作而从所存储的错误码信息中产生。

实施例8是根据实施例1至7中任一项的存储器装置,其中存储内容是数据块,而第一缓冲存储器和第二缓冲存储器以数据块形式暂存存储内容。

实施例9是根据实施例1至8中任一项的存储器装置,其中对存储内容的修改包括:改变存储内容的一个或多个位或改变存储内容的错误码信息的一个或多个位。

实施例10是根据实施例1至9中任一项的存储器装置,其中第一缓冲存储器控制单元具有对存储器的读取和写入访问,而第二缓冲存储器控制单元具有对存储器的只读访问。

实施例11是根据实施例1至10中任一项所述的存储器装置,其中修改对于第一缓冲存储器控制单元是不可逆的,而对于第二缓冲存储器控制单元是可逆的。

实施例12是根据实施例1至11中任一项的存储器装置,其中针对存储器中的存储内容存储预测位,所述预测位指明:存储内容是否已经被修改并且第一缓冲存储器控制单元配置为在读取或修改存储内容时设置预测位。

实施例13是根据实施例12的存储器装置,其中第二缓冲存储器控制单元配置为,根据所存储的预测位检验:从存储器中读取的存储内容是否有效。

实施例14是一种用于暂存存储内容的方法,如其在图5中所示出。

实施例15是根据实施例14的方法,所述方法包括:将借助对修改的逆向操作修改的被读取的存储内容存储在第二缓冲存储器中。

实施例16是根据实施例14或15的方法,其中存储内容包含指令和借助指令要处理的数据,和第一缓冲存储器是用于将要处理的数据提供给处理器的缓冲存储器,和第二缓冲存储器是用于将指令提供给处理器的缓冲存储器。

实施例17是根据实施例14至16中任一项的方法,其中针对在存储器中的存储内容存储错误码信息,并且借助修改所存储的错误码信息使在存储器中的存储内容无效。

实施例18是根据实施例17的方法,包括:根据所存储的错误码信息检验:从存储器中读取的存储内容是否有效。

实施例19是根据实施例18的方法,包括:通过检验存储内容根据所存储的错误码信息是否无错误的方式来检验:从存储器读取的存储内容是否有效。

实施例20是根据实施例19的方法,其中对修改的逆向操作的应用包括:检查:存储内容根据错误码信息是否无错误,通过应用对修改的逆向操作从所存储的错误码信息中产生所述错误码信息。

实施例21是根据实施例14至20中任一项的方法,其中存储内容是数据块而第一缓冲存储器和第二缓冲存储器以数据块形式暂存存储内容。

实施例22是根据实施例14至21中任一项的方法,其中对存储内容的修改包括:改变存储内容的一个或多个位或改变存储内容的错误码信息的一个或多个位。

实施例23是根据实施例14至22中任一项的方法,其中用于所述第一缓冲存储器的第一缓冲存储器控制单元具有对存储器的读取和写入访问,而用于第二缓冲存储器的第二缓冲存储器控制单元具有对存储器的只读访问。

实施例24是根据实施例14至23中任一项的方法,其中修改对于用于第一缓冲存储器的第一缓冲存储器控制单元是不可逆的,而对于用于第二缓冲存储器的第二缓冲存储器控制单元是可逆的。

实施例25是根据实施例14至24中任一项的方法,其中针对存储器中的存储内容存储预测位,所述预测位指明:存储内容是否已经被修改,并且所述方法包括:在读取存储内容以存储在第一缓冲存储器中时或在修改存储内容时设置预测位。

实施例26是根据实施例25的方法,其中根据所存储的预测位检验:从存储器中读取的存储内容是否有效。

应当注意的是,所有在上文中所提到的实施例能够任意彼此组合。

虽然本发明特别参考特定的实施方式示出和描述,但是熟悉本领域的技术人员应当理解的是,能够对所述实施方式在设计和细节方面进行大量改变,而不偏离本发明的如通过接下来的权利要求限定的实质和范围。本发明的范围因此通过所附的权利要求确定,并且旨在包括落入权利要求的字面意义和等同范围内的所有变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1