CN106557382A - 在外部存储器中存储并读取消息验证码 - Google Patents
在外部存储器中存储并读取消息验证码 Download PDFInfo
- Publication number
- CN106557382A CN106557382A CN201610098676.8A CN201610098676A CN106557382A CN 106557382 A CN106557382 A CN 106557382A CN 201610098676 A CN201610098676 A CN 201610098676A CN 106557382 A CN106557382 A CN 106557382A
- Authority
- CN
- China
- Prior art keywords
- memory
- line
- identifying code
- cache
- word
- 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
- 230000005055 memory storage Effects 0.000 title claims abstract description 20
- 230000011218 segmentation Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000006835 compression Effects 0.000 claims description 23
- 238000007906 compression Methods 0.000 claims description 23
- 230000006837 decompression Effects 0.000 claims description 5
- 230000000717 retained effect Effects 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/403—Error protection encoding, e.g. using parity or ECC codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
用于保护旨在由计算机处理模块(1)执行的程序代码的方法,该计算机处理模块包含中央处理单元(5),该中央处理单元被耦合到包含高速缓存行(60)的高速缓存存储器(6),每个高速缓存行具有旨在存储能够由中央处理单元(5)执行的指令字(83)的数据字段,包括:将程序代码存储在相对于计算机处理模块(1)的外部存储器(2)的存储器位置(81)中,每个存储器位置(8)能够存储一个高速缓存行的指令字(81);确定分别与所述高速缓存行相关联的验证码,并且对于每个高速缓存行,对所关联的验证码分段并且将该分布式分段验证码存储在对应的存储器位置(8)中。
Description
技术领域
本发明的实现方式和实施例涉及保护存储在外部存储器(例如,闪存NOR类型)中的程序代码,该程序代码旨在由计算机处理模块执行,通过示例的方式而非限制性地,该计算机处理模块包括微处理器和高速缓存存储器。
背景技术
计算机处理模块不仅可以具有微处理器,而且还具有允许它存储最近使用过的程序代码以便在可能再用的情况下更快地访问所述程序代码的高速缓存存储器。如果程序代码不存在于高速缓存存储器中,则它从更高等级的存储器被传递到高速缓存存储器。在这种传递期间,程序代码可以是已经修改或将程序代码替换为恶意代码的攻击者的目标。因此,尤其针对关键的应用,必须检查所传递的程序代码的完整性。
使用通常由首字母缩写“MAC”表示的消息验证码的允许检查程序代码的完整性的方法是已知的。
消息验证码是例如出于通过允许进行检查以确定它们在从外部存储器向微处理器传递之后没有进行任何修改来确保其完整性的目的而伴随数据的代码。
目前,消息验证码可以被存储以下任一项:
-在外部存储器的区域中,其与包含程序代码的区域不同,在这种情况下,读取验证码需要第二读访问,或者
-在与程序代码相同的存储器位置中,但是在这之后,这种情况不与包(wrap)兼容。
发明内容
根据一个实施例,所提出的发明是允许消息验证码以分割方式被存储在程序代码中的方法。
根据第一方面,所提出的发明是一种用于保护旨在由计算机处理模块的中央处理单元执行的程序代码的方法,该中央处理单元被耦合到包含高速缓存行的高速缓存存储器,每个高速缓存行具有旨在存储可以由中央处理单元执行的指令字的数据字段,包括:将程序代码存储在相对于计算机处理模块的外部存储器的存储器位置中,每个存储器位置能够存储一个高速缓存行的指令字;确定分别与所述高速缓存行相关联的验证码;并且对于每个高速缓存行,对所关联的验证码分段并且将该分布式分段验证码存储在对应的存储器位置中。
因此,在通过计算机处理模块请求程序代码指令行期间,同时读取程序代码和验证码。而且,本实施例与包兼容。
根据一个实施例,每个存储器位置包含旨在分别存储与高速缓存行对应的字的存储器字,每个存储器字具有高于指令字的存储容量的存储容量,并且包含不用于存储指令字的区域,与高速缓存行的指令字相关联的验证码的分段被存储在所述未使用区域的至少一些区域中。
该方法还可以包括:在通过中央处理单元请求在高速缓存存储器的高速缓存行中不存在的指令字期间,
-从外部存储器中提取与高速缓存行对应的指令字和所关联的分段验证码,
-从所述分段重构验证码,
-从所提取的指令字计算验证码,以及
-比较所计算的验证码和所重构的验证码。
根据另一实施例,每个存储器位置包含旨在分别存储与高速缓存行对应的字的存储器字,每个存储器字具有与指令字的存储容量相等的存储容量,而且存储程序代码包括:压缩每个高速缓存行的指令字的至少一些指令字并且将压缩的指令字存储在对应的存储器字中,这种存储允许自由区(free area)保留在对应的存储器字中,并且与高速缓存行的压缩的指令字相关联的验证码的分段被存储在所述自由区中。
因此,该实施例使其可能无需使用大小高于指令字的大小的存储器字,因为指令字的压缩使其可能在存储器字中获得自由区并且将验证码存储在其中。
压缩可以或者通过使其可能获得大小可变的压缩字的算法或者通过使其可以获得大小固定的压缩字的算法来执行。
该方法还可以包括:
-在通过中央处理单元请求在高速缓存存储器的高速缓存行中不存在的指令字期间,
-从外部存储器中提取与高速缓存行对应的指令字和所关联的分段验证码,
-从所述分段重构验证码,
-解压缩压缩的指令字,
-从解压缩的指令字计算验证码,以及
-比较所计算的验证码和所提取的验证码。
根据第二方面,所提出的发明是一种系统,包括:
-计算机处理模块,包含中央处理单元,
-高速缓存存储器,包含高速缓存行,每个高速缓存行具有旨在存储可以由计算机处理模块的中央处理单元执行的指令字的数据字段,
-相对于计算机处理模块的外部存储器,包括与高速缓存行的数据字段相对应的存储器位置,每个存储器位置被配置成存储高速缓存行的指令字,
-控制装置,被配置成确定分别与所述高速缓存行相关联的验证码,以对所关联的验证码分段,并且将该分布式分段验证码存储在对应的存储器位置中。
每个存储器位置的每个存储器字具有高于指令字的存储容量的存储容量并且包含未用于存储指令字的区域,并且所述未使用区域的至少一些区域能够接收与高速缓存行的指令字相关联的验证码的分段。
该控制装置被配置成在通过中央处理单元请求在高速缓存存储器的高速缓存行中不存在的指令字期间,
-从外部存储器中提取与高速缓存行对应的指令字和所关联的分段验证码,
-从所述分段重构验证码,
-从所提取的指令字计算验证码,以及
-比较所计算的验证码和所重构的验证码。
根据该方面的另一实施例,每个存储器位置包含旨在分别存储与高速缓存行对应的字的存储器字,每个存储器字具有与指令字的存储容量相等的存储容量,并且能够接收压缩的或以其它方式的指令字以便允许自由区保留在能够接收与高速缓存行的压缩指令字相关联的验证码的分段的存储器字中。
有利地是,控制装置可以被配置成压缩指令字以形成大小相等的压缩字或以形成大小可变的压缩字。
附图说明
在审查并非限制性的实现方式和实施例的具体实施方式和附图时,本发明的其它优点和特征将体现出来,其中:
图1图示了本发明的实施例,
图2-图6图示了本发明的实现方式。
具体实施方式
图1示出了包括经由通信总线3耦合到外部存储器2(例如,闪存NOR类型)的计算机处理模块1(例如,微处理器)的系统SYS。
系统SYS同样包括控制装置4,其被配置成对在处理模块1和外部存储器2之间互换的数据执行解压缩和/或级联(concatenation)操作。下文将更详细地看到这些操作。
在本示例中,处理模块1包括微处理器5、包括旨在接收程序代码的指令字83的高速缓存行60的等级为1的高速缓存6、以及高速缓存控制器7。在本示例中,高速缓存包括每个能够接收16位的32个字的高速缓存行。
外部存储器包括存储器位置8,其每个被配置成接收与高速缓存行相对应的程序代码的指令字83和与所述高速缓存行相关联的消息验证码。
图2示意性地示出了本发明的实现方式的各种步骤。
在步骤10中,程序代码被存储在存储器位置8中。
如图3所示,在存储器位置8中,高速缓存行的每个指令字83被存储在大小高于指令字83的大小的存储器字81中,以使在存储指令字83之后,自由区82保留在其中。
在这种情况下,例如,外部存储器的存储器字81是18位的字,其中16位旨在存储指令字83并且其中2位是补充位。每个存储器位置8因此能够通过留出分布在32个存储器字81上的32×2位的自由空间来将高速缓存行的32个存储器字83存储在18位的32个存储器字81中。
在这里所描述的示例中,这些自由区82位于存储器字81的端部处。作为变型,它们可能位于存储器字81的开始处或者位于用于这些图案81的任何已知位置处。
在步骤11中,从存在于存储器位置8中的程序代码计算消息验证码MAC(被称为MACref)。通过示例的方式,通常,通过使用作为输入的待被传送的消息和编码关键字以便获得作为输出的验证码的算法来获得消息验证码。类似于本领域技术人员众所周知的哈希函数的这种算法不需要是可逆的。它使得能够确保所传送的数据的完整性和真实性。
步骤12包括:对与32个指令字83相关联的验证码MACref分段,以便在这种情况下,将它分布在32个存储器字81的所述自由区82中,可能不必使用32个自由区82用于存储分段MACref,而例如仅仅使用自由区的一些区域。
应当注意可以在存储指令集合之前接着将指令集合和分段代码MACref同时存储在存储器中来执行计算代码MACref及其分段的这个时刻。
接下来(步骤13),如果中央处理单元5(在这种情况下,微控制器)做出对指令字83的请求,则高速缓存控制器7检查所述指令字83在计算机处理模块1的高速缓存6的高速缓存行中的存在。
如果指令字存在于高速缓存6的高速缓存行中,则该指令由微处理器6执行(步骤14)。
相反的情况(步骤15)被称为高速缓存缺失。高速缓存控制器然后向外部存储器件2做出请求,以使存储包含所需的指令字的高速缓存行的存储器位置8的内容被传送到该外部存储器2。
应当注意,高速缓存行是可以在高速缓存存储器6与外部存储器2之间被传递的最小元素。因此,在对指令字83的每个请求时,存储器位置8中的所有字81被传递,而非仅仅包含指令字83的存储器字81。
通过示例的方式,按照包的操作,如果所需的指令字位于存储器位置中的位置n中,则从该行的第n个到最后一个字81的字81将被提取,然后从该行中的第一个字到第n-1个字的字将被提取。
接下来,在步骤16中,控制装置4使用级联以从分布在从存储器位置8中接收的存储器字81的每个存储器字的自由区82中的分段来重构消息验证码MACref。
无论指令字的任何提取顺序,这种级联均是可能的。
控制装置4同样从在传递期间接收的指令字83的内容来计算消息验证码MACcalc(步骤17),然后比较所计算的代码MACcalc和所重构的验证码MACref。
如果这两个代码不同(步骤18),则这意味着程序代码已经被修改。控制装置然后生成错误(error)。
如果这两个代码相同(步骤19),则这意味着程序代码的完整性和真实性被证实,并且程序代码可以由微控制器5以安全的方式执行。
图4图示了另一实施例,其类似于上文所描述的并且由图2所图示的方法,但是还包括两个补充步骤100和101。
在本实施例中,存储器位置8(例如,在这种情况下,具有16位的32个字的存储器位置)包括大小与指令字83的大小相同的存储器字81。
第一步骤100与在存储在外部存储器的存储器位置中的步骤10之前的压缩指令字83相对应。
可以安装以下来执行这种压缩:
-按照使其可能获得大小固定的压缩指令字84的确定性算法(图5),在这种情况下,字被存储在存储器字81中并且同样自由区82大小固定。通过示例的方式,压缩字84构成15个位并且因此保留每个字一个位,用于存储验证码分段,或者
-按照使其可以获得大小可变的压缩指令字84的可变编码算法(图6),在这种情况下,压缩字84被存储在存储器字81中并且自由区82大小可变,如果对应的字83不能被压缩,则一些字81可能不包括自由区。通过示例的方式,第一存储器字M1包括15位的压缩字、和1位的验证码分段,而第四存储器字M4包括13位的压缩指令字和3位的验证码分段。第三存储字M3(就其部分而言)没有压缩指令字。
只有与指令字相对应的位被压缩,而与验证码相对应的那些位没有被压缩。
紧接着提取存储器位置8的内容的步骤101与解压缩压缩指令字84相对应。
在这种情况下,例如,控制装置4可以包括硬件解压缩器,其允许数据的快速解压缩。
应当注意,这里所呈现的实现方式和实施例并非限制性的。尤其,尽管在这种情况下,不牵涉到闪存NOR存储器,但是本发明同样可以适用于DRAM(动态随机存取存储器)存储器。
更进一步地,尽管上文已经描述了位于计算机处理模块1中的高速缓存存储器6,但是高速缓存存储器可能位于处理模块外部。特别地,高速缓存存储器可能由位于闪存8的接口中的缓冲存储器形成。
而且,鉴于上文的描述涉及仅当所重构的验证码MACref与所计算的验证码MACcalc相同时,通过微处理器5执行程序代码,对于执行程序代码,非常有可能在计算代码MACcalc和比较两个代码MACref和MACcalc期间开始,并且在指示两个代码MACref和MACcalc不相同的比较的情况下被中断。
Claims (13)
1.一种用于保护旨在由计算机处理模块(1)的中央处理单元(5)执行的程序代码的方法,所述中央处理单元被耦合到包含高速缓存行(60)的高速缓存存储器(6),每个高速缓存行具有旨在存储能够由所述中央处理单元(5)执行的指令字(83)的数据字段,包括:将所述程序代码存储在相对于所述计算机处理模块(1)的外部存储器(2)的存储器位置(81)中,每个存储器位置(8)能够存储一个高速缓存行的所述指令字(81);确定与所述高速缓存行分别相关联的验证码,并且对于每个高速缓存行,对所关联的验证码分段并且将该分布式分段验证码存储在对应的所述存储器位置(8)中。
2.根据权利要求1所述的方法,其中,每个存储器位置(8)包含旨在分别存储对应的所述高速缓存行的所述字(83)的存储器字(81),每个存储器字(81)具有高于所述指令字(83)的存储容量的存储容量并且包含未用于存储所述指令字的区域(82),以及与所述高速缓存行的所述指令字(83)相关联的所述验证码的所述分段被存储在所述未使用区域中的至少一些区域中。
3.根据权利要求2所述的方法,还包括:
-在所述中央处理单元(5)请求在所述高速缓存存储器(6)的高速缓存行(60)中不存在的指令字(83)期间,
-从所述外部存储器(2)提取对应的所述高速缓存行的所述指令字(83)和所关联的分段验证码,
-从所述分段(82)重构所述验证码,
-从所提取的指令字(83)计算所述验证码,以及
-将所计算的验证码MACcalc与所重构的验证码MACref进行比较。
4.根据权利要求1所述的方法,其中,每个存储器位置(8)包含旨在分别存储对应的高速缓存行的所述字(83)的存储器字(81),每个存储器字(81)具有与所述指令字(83)的存储容量相等的存储容量,并且存储所述程序代码包括:压缩每个高速缓存行(8)的所述指令字(83)中的至少一些指令字并且将所压缩的指令字(84)存储在对应的所述存储器字(81)中,这种存储允许自由区(82)保留在对应的存储器字(81)中,并且与所述高速缓存行的所述压缩的指令字(84)相关联的所述验证码的所述分段被存储在所述自由区中。
5.根据权利要求4所述的方法,其中,按照确定性编码算法执行所述压缩,所述自由区的大小相等。
6.根据权利要求4所述的方法,其中,按照可变编码算法执行所述压缩,所述自由区的大小可变。
7.根据权利要求4-6中的其中一项所述的方法,还包括:在所述中央处理单元请求在所述高速缓存存储器(6)的高速缓存行(60)中不存在的指令字(83)期间,
-从所述外部存储器(2)提取对应的所述高速缓存行(60)的所述压缩的指令字(84)和相关联的分段验证码,
-从所述分段重构所述验证码,
-解压缩所述压缩的指令字(84),
-从所述解压缩的指令字(84)计算所述验证码,以及
-将所计算的验证码MACcalc和所提取的验证码MACref进行比较。
8.一种系统SYS,包括:
计算机处理模块(1),包含中央处理单元(5),
高速缓存存储器(6),包含高速缓存行(60),每个高速缓存行具有旨在存储能够由所述计算机处理模块(1)的所述中央处理单元(5)执行的指令字(83)的数据字段,
相对于所述计算机处理模块(1)的外部存储器(2),包括与高速缓存行的数据字段相对应的存储器位置(8),每个存储器位置被配置成存储高速缓存行的所述指令字(83),
控制装置(4),被配置成确定与所述高速缓存行分别相关联的验证码,对所关联的验证码分段,并且将该分布式分段验证码存储在对应的存储器位置(8)中。
9.根据权利要求8所述的系统,其中,每个存储器位置(8)的每个存储器字(81)具有高于所述指令字(83)的存储容量的存储容量并且包含未用于存储所述指令字(83)的区域,并且所述未使用区域中的至少一些区域能够接收与所述高速缓存行的所述指令字(83)相关联的所述验证码的所述分段。
10.根据权利要求8或9所述的系统,其中,所述控制装置(4)被配置成在所述中央处理单元请求在所述高速缓存存储器的高速缓存行中不存在的指令字(84)期间,
-从所述外部存储器提取对应的高速缓存行(60)的所述指令字(83)和所关联的分段验证码,
-从所述分段重构所述验证码,
-从所提取的指令字(83)计算所述验证码,以及
-将所计算的验证码MACcalc和所重构的验证码MACref进行比较。
11.根据权利要求8所述的系统,其中,每个存储器位置(8)包含旨在分别存储对应的高速缓存行的所述字(83)的存储器字(81),每个存储器字(81)具有与所述指令字(83)的存储容量相等的存储容量,并且能够接收压缩的或以其它方式的指令字(84)以便允许自由区保留在所述存储器字中,所述存储器字能够接收与所述高速缓存行的所述压缩的指令字相关联的所述验证码的分段。
12.根据权利要求11所述的系统,其中,所述控制装置(4)被配置成压缩所述指令字(83)以形成大小相等的压缩字(84)。
13.根据权利要求11所述的系统,其中,所述控制装置被配置成压缩所述指令字(83)以形成大小可变的压缩字(84)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1559009A FR3041796B1 (fr) | 2015-09-24 | 2015-09-24 | Stockage et lecture d'un code d'authentification de message dans une memoire externe |
FR1559009 | 2015-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106557382A true CN106557382A (zh) | 2017-04-05 |
Family
ID=55361594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610098676.8A Pending CN106557382A (zh) | 2015-09-24 | 2016-02-23 | 在外部存储器中存储并读取消息验证码 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170090801A1 (zh) |
EP (1) | EP3147811B1 (zh) |
CN (1) | CN106557382A (zh) |
FR (1) | FR3041796B1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997089B2 (en) * | 2019-03-29 | 2021-05-04 | L3 Technologies Inc. | Cross domain filtration in multi-processor environments |
FR3096798A1 (fr) * | 2019-05-27 | 2020-12-04 | Stmicroelectronics (Rousset) Sas | Dispositif de mémorisation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021479A1 (en) * | 2001-12-12 | 2005-01-27 | Jorba Andreu Riera | Secure remote electronic voting system and cryptographic protocols and computer programs employed |
CN1902602A (zh) * | 2003-12-29 | 2007-01-24 | 英特尔公司 | 存储带压缩的重排序数据的机制 |
CN103688249A (zh) * | 2011-07-26 | 2014-03-26 | 国际商业机器公司 | 固态盘的自适应记录高速缓存 |
US20140208109A1 (en) * | 2011-12-28 | 2014-07-24 | Alpa T. Narendra Trivedi | Method and system for protecting memory information in a platform |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4520439A (en) * | 1981-01-05 | 1985-05-28 | Sperry Corporation | Variable field partial write data merge |
US5611071A (en) * | 1995-04-19 | 1997-03-11 | Cyrix Corporation | Split replacement cycles for sectored cache lines in a 64-bit microprocessor interfaced to a 32-bit bus architecture |
US20020042867A1 (en) * | 1998-06-04 | 2002-04-11 | Alva Henderson | Variable word length data memory |
US20030110347A1 (en) * | 1998-06-25 | 2003-06-12 | Alva Henderson | Variable word length data memory using shared address source for multiple arrays |
US6735673B2 (en) * | 2002-01-10 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for cache line compression |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US8621241B1 (en) * | 2008-04-25 | 2013-12-31 | Netapp, Inc. | Storage and recovery of cryptographic key identifiers |
US8452932B2 (en) * | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
JP5159849B2 (ja) * | 2010-09-24 | 2013-03-13 | 株式会社東芝 | メモリ管理装置及びメモリ管理方法 |
US9442864B2 (en) * | 2013-12-27 | 2016-09-13 | Intel Corporation | Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes |
US10019603B2 (en) * | 2014-04-16 | 2018-07-10 | Synopsys, Inc. | Secured memory system and method therefor |
JP6162652B2 (ja) * | 2014-06-20 | 2017-07-12 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
JP6181004B2 (ja) * | 2014-06-20 | 2017-08-16 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
EP3167569B1 (en) * | 2014-09-30 | 2020-09-23 | NEC Corporation | Method and system for providing a secure update of code on a memory-constrained device |
US10185842B2 (en) * | 2015-03-18 | 2019-01-22 | Intel Corporation | Cache and data organization for memory protection |
US9904805B2 (en) * | 2015-09-23 | 2018-02-27 | Intel Corporation | Cryptographic cache lines for a trusted execution environment |
-
2015
- 2015-09-24 FR FR1559009A patent/FR3041796B1/fr not_active Expired - Fee Related
-
2016
- 2016-02-17 EP EP16156141.0A patent/EP3147811B1/fr not_active Not-in-force
- 2016-02-23 CN CN201610098676.8A patent/CN106557382A/zh active Pending
- 2016-02-23 US US15/050,854 patent/US20170090801A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021479A1 (en) * | 2001-12-12 | 2005-01-27 | Jorba Andreu Riera | Secure remote electronic voting system and cryptographic protocols and computer programs employed |
CN1902602A (zh) * | 2003-12-29 | 2007-01-24 | 英特尔公司 | 存储带压缩的重排序数据的机制 |
CN103688249A (zh) * | 2011-07-26 | 2014-03-26 | 国际商业机器公司 | 固态盘的自适应记录高速缓存 |
US20140208109A1 (en) * | 2011-12-28 | 2014-07-24 | Alpa T. Narendra Trivedi | Method and system for protecting memory information in a platform |
Non-Patent Citations (1)
Title |
---|
SPARSH MITTAL等: "A Survey Of Architectural Approaches for Data Compression in Cache and Main Memory Systems", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
Also Published As
Publication number | Publication date |
---|---|
FR3041796B1 (fr) | 2017-10-20 |
US20170090801A1 (en) | 2017-03-30 |
EP3147811A1 (fr) | 2017-03-29 |
EP3147811B1 (fr) | 2019-02-06 |
FR3041796A1 (fr) | 2017-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI653538B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN109313551B (zh) | 使用编译器插入的转换代码对冗余线程进行指纹识别的方法和设备 | |
US8442942B2 (en) | Combining hash-based duplication with sub-block differencing to deduplicate data | |
CN105824720B (zh) | 一种面向数据连续读取的重删纠删混合系统的数据放置方法 | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
CN109085997A (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
US8082472B2 (en) | System and method for testing graphics card | |
CN108121810A (zh) | 一种数据去重方法、系统、中心服务器及分布式服务器 | |
EP2842041B1 (en) | Data processing system and method for operating a data processing system | |
CN113835901A (zh) | 读锁操作方法、写锁操作方法及系统 | |
CN109716302B (zh) | 用于冗余数据处理的方法和设备 | |
CN106716348A (zh) | 用于执行多个线程的数据处理设备中的共享资源 | |
CN111984421B (zh) | 数据处理方法、装置及存储介质 | |
CN106557382A (zh) | 在外部存储器中存储并读取消息验证码 | |
van der Vegt et al. | A parallel compact hash table | |
CN101901316A (zh) | 基于Bloom Filter的数据完整性保护方法 | |
US11601283B2 (en) | Message authentication code (MAC) based compression and decompression | |
CN107908954B (zh) | 一种基于地址压缩技术的动态检测gpu上内存溢出的方法 | |
US9639477B2 (en) | Memory corruption prevention system | |
CN105988724B (zh) | 多副本写入存储设备的方法及存储设备 | |
US20200057682A1 (en) | Barrier-free atomic transfer of multiword data | |
CN108647289B (zh) | 基于布谷哈希和布隆过滤器的Hash建表方法 | |
CN114297193A (zh) | 一种基于hash的数据比对方法及装置 | |
CN103840935B (zh) | 开放系统之函式库的加密及解密方法 | |
US12088722B2 (en) | Method for executing a computer program by means of an electronic apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170405 |