CN105580308A - 用于管理高速缓存一致性的方法 - Google Patents
用于管理高速缓存一致性的方法 Download PDFInfo
- Publication number
- CN105580308A CN105580308A CN201480053601.7A CN201480053601A CN105580308A CN 105580308 A CN105580308 A CN 105580308A CN 201480053601 A CN201480053601 A CN 201480053601A CN 105580308 A CN105580308 A CN 105580308A
- Authority
- CN
- China
- Prior art keywords
- message
- processing unit
- pseudo
- random binary
- header
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/304—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种通过共享的存储器在两个处理单元之间发送消息的方法,该消息包括完整性校验和报头,所述方法包括以下步骤:第一处理单元生成(501)第一伪随机二进制字符串;通过应用依赖于所生成的第一伪随机二进制字符串的对合变换来对待发送的消息加密(502);发送并在共享的存储器中存储(503)已加密的消息;第二处理单元生成(504)第二伪随机二进制字符串;通过应用依赖于所述第二伪随机二进制字符串的对合变换、解密所述消息的报头(505)、验证已解密的报头(505)、以及根据验证的结果来解密完整的消息(506)来对所存储的消息解密;基于已解密的消息的完整性校验来验证(507)所述已解密消息的完整性。
Description
技术领域
本发明的主题是一种用于管理高速缓存一致性的机制。
更具体地,本发明涉及一种在通过共享存储器来共享数据的两个处理单元之间的数据交换方法。
背景技术
为了满足不断增长的对计算能力的需求,在计算机系统中使用的处理器必须能够执行高于以往的每秒操作数量。多年来,处理器工作频率的提高使得能够提出满足不断增长的对计算机能力的需求的处理器。由于工作频率的提高还会增加所释放的热量,因而处理器刻蚀的细度(fineness)已逐步降低以将待耗散的热量控制在在可接受的限度内。然而,随着刻蚀细度已低至一微米以下且现已达到十纳米左右,微处理器电路的小型化已变得比以往更加复杂。
因此,已研究出另一种方法,以在待耗散的热量不增加或者仅略微增加的情况下下继续增强处理器的计算能力:同时并行地执行多个操作,而不是寻求增加由同一执行核心顺序执行的操作数量。因此研发出了多核处理器。
此外,为了减少处理器执行指令的执行时间,为每个执行核心添加了高速缓冲存储器。所述存储器是位于系统的核心与随机存取存储器(RAM)之间的存储器。由于该存储器的访问时间比随机存取存储器的访问时间短得多,因此核心可更快地访问存储在该存储器中的某些数据,从而使得能够加快指令的执行。
对于微处理器系统,如图1所示,每个执行核心可具有不与其他核心共享的高速缓冲存储器。在所述配置中,如果共享存储器中由第一核心修改的数据也包含在第二核心的高速缓存中并且没有更新为由第一核心执行的修改,那么第一核心对共享存储器中的数据进行的修改会引起两个核心的高速缓存之间的不一致。因此,存在第二核心将从自身高速缓存中读取不正确数据的风险。因此,有必要提供有效的机制来确保多核处理器的不同执行核心的高速缓存之间的一致性。
为满足该问题所研发的一种机制是通过“窥探(espionnqge)”获得一致性。根据所述机制,对存储器的每次写入通过由处理器的所有核心共享的总线发送。通过在共享总线上的窥探,每个核心因而可以获知其他核心的存储器写入操作,并由此能够更新自身的缓存以确保该高速缓存与其他核心的高速缓存的一致性。
由于高速缓存的尺寸减小,因此有必要更新(renouveler)高速缓存的内容以使出现缓存缺陷的可能性最小化,即,使核心在自身高速缓存中找到其试图读取的数据的可能性最大化,从而避免在更高级别的高速缓存或RAM中提取所述数据。如果在缓存中修改的数据仅写入RAM,当该数据在高速缓存更新时被从该缓存中删除的时候,那么将数据写入高速缓存和将相同的数据写入RAM在时间上会出现偏差。根据所用的高速缓存更新算法,数据被写入存储器的顺序甚至可能与这些数据之前被输入高速缓存的顺序不同。因此,采用窥探一致性机制可能出现以下情况:对第一核心的写入操作进行窥探的第二核心会在对应的数据已写入共享存储器或完成写入共享存储器之前就获知第一核心的写入指针的变化。那么这会导致第二核心使用与第一核心更新的数据不对应的数据来更新自身的高速缓存。于是高速缓存一致性无法再得到保障。
避免所述问题的一个方案在于使第二核心在读取共享存储器中更新的数据之前等待一定的时间,以在读取操作之前留下用于将更新的数据写入共享存储器的时间。然而,所述方案减缓了缓存的更新并由此降低了处理器的性能水平。
另一方案在于使用由不同核心共享的时钟来对所有写入操作打上时间戳。因此,对第一核心写入共享存储器的写入操作进行检测的第二核心能够重构执行这些写入操作的顺序,并能够确保在共享存储器中读取与所检测到的写入指针的更新相对应的数据。然而,所述方案很大程度上依靠高速缓存一致性机制的资源。每个写入数据必须与其写入日期一起存储,因而增大了在核间总线上待交换的且待存储在不同存储器中的数据量。
因此,需要一种确保计算机系统不同核心的高速缓存之间的一致性,而无需明显降低所述系统的性能水平且不增加待存储在存储器中的数据量的高速缓存一致性机制。
发明内容
根据第一方面,本发明的主题涉及一种通过第一处理单元与第二处理单元两者共享的存储器在两个处理单元之间发送消息的方法;
待发送的消息包括完整性校验和报头,
每个处理单元包括伪随机二进制字符串生成器和密码模块;
所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化,并彼此同步;
所述方法包括以下步骤:
-所述第一处理单元的伪随机二进制字符串生成器生成第一伪随机二进制字符串;
-所述第一处理单元的密码模块通过对所述待发送的消息应用依赖于所生成的第一伪随机二进制字符串的对合变换来对所述待发送的消息加密;
-所述第一处理单元发送并在共享的存储器中存储已加密的消息;
-所述第二处理单元的伪随机二进制字符串生成器生成第二伪随机二进制字符串;
所述第一二进制字符串和所述第二二进制字符串相同;
-所述第二处理单元的密码模块通过对存储在共享存储器中的所述消息应用依赖于所述第二伪随机二进制字符串的对合变换来对所存储的消息解密,解密所述消息包括解密所述消息的报头、验证已解密的报头以及根据报头验证的结果来解密完整的消息;
依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
-所述第二处理单元基于已解密的消息的完整性校验来验证所述已解密的消息的完整性。
所述方法使得第二处理单元能够确保在存储器中读取的且已解密的消息确实是第一处理单元发送且存储在共享存储器中的消息。此外,解密时使用所述报头使得能够进行对存储器中读取的消息的第一验证,同时仅需要比完整消息的解密和完整性校验少的计算。因此,与解密完整的消息相比,能够更快速地检测到不正确消息的读取。
依赖于二进制字符串的对合变换可以是应用在所述二进制字符串与待加密或待解密的消息之间的异或运算(XOR)。
通过自身对合的加密消息和解密消息的所述变换使用单一变换,同时要求降低的用于加密和解密的计算能力。此外,所述变换可以逐位地应用到消息,从而使得能够仅对所述消息的一部分尤其是消息报头解密。
验证所述报头包括将所述报头与预定报头进行比较。
根据一个优点,非限制性的特征在于,所述完整性校验是误差检测码。
该误差检测码可以是循环冗余校验(CRC)或校验和(checksum)。
使用所述代码使得能够验证在存储器中读取的加密消息的解密已被正确地执行并由此验证所读取的消息确实是第一处理单元发送并存储在共享存储器中的消息。
所述共享存储器可以是循环缓冲存储器。
伪随机二进制字符串生成器的周期可以长于共享存储器的比特容量。
使用循环缓冲存储器,可以在写入操作已被输入到该缓冲存储器的所有位置的情况下避免旧数据无意的解密。
根据本发明的第二方面涉及一种计算机程序产品,该计算机程序产品包括当在处理器上执行该程序时,用于实现根据第一方面所述的方法的代码指令。
根据本发明的第三方面涉及一种系统,该系统包括:
-至少一个第一处理单元,配置为访问与第一处理单元共享的存储器;
所述第一处理单元包括:
-用于生成第一伪随机二进制字符串的伪随机二进制字符串生成器;
-密码模块,用于通过对待发送的消息应用依赖于所生成的第一伪随机二进制字符串的对合变换来对所述待发送的消息加密;
所述待发送的消息包括完整性校验和报头;
-用于发送已加密的消息并将该消息存储在共享的存储器中的装置;
以及至少一个第二处理单元,配置为访问与第一处理单元共享的存储器;
所述第二处理单元包括:
-用于生成第二伪随机二进制字符串的伪随机二进制字符串生成器;
所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化并彼此同步,所述第一二进制字符串与所述第二二进制字符串相同;
-密码模块,用于通过对存储在共享的存储器中的已加密的消息应用依赖于所述第二伪随机二进制字符串的对合变换来对所存储的已加密的消息解密,解密所述消息包括解密所述消息的报头、验证已解密的报头以及根据报头验证的结果来解密完整的消息;
依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
-用于根据已解密的消息的完整性校验来验证所述已解密的消息的完整性的装置。
所述计算机程序产品和系统的优点与以上根据第一方面所述的方法的优点相同。
附图说明
通过阅读实施例的以下说明,其他特征和优点将变得显而易见。该说明将参考附图给出,在附图中:
-图1示意性地示出了微处理器系统中的材料装置;
-图2示意性地示出了根据本发明的一个实施例的系统中的材料装置;
-图3示意性地示出了根据本发明的另一实施例的系统中的材料装置;
-图4为示出根据本发明的第一实施例的校验方法的示例性实施例的框图;
-图5为示出根据本发明的第二实施例的校验方法的示例性实施例的框图。
具体实施方式
本发明的一个实施例涉及一种通过计算机系统的两个处理单元共享的存储器而在这两个处理单元之间发送消息的方法。
如图2所示,这些处理单元可以是同一微处理器计算系统(systèmeinformatiquemultiprocessor,SI)201的两个处理器,该微处理器计算系统包括多个处理器202a,...,202n。每个处理器202a,...,202n连接到高速缓冲存储器203a,...,203n处。高速缓冲存储器203a,...,203n不共享。仅高速缓冲存储器所属的处理器能够读取该高速缓冲存储器的内容。
根据图3所示的变型,处理单元是集成在单个处理器301内的多个执行核心302a,...,302n中的执行核心。根据所述变型,每个执行核心连接到自身的非共享高速缓冲存储器303a,...,303n处。
高速缓冲存储器203a,...,203n和303a,...,303n可以是1级、2级或更高级的高速缓冲存储器。
所有的高速缓冲存储器连接到共享存储器(MEM)204、304处,该共享存储器对所有处理器202a,...,202n和所有执行核心302a,...,302n具有读写可存取性。根据第一变型,所述共享存储器可以是比非共享存储器203a,...,203n和303a,...,303n更高级的高速缓冲存储器,因而是2级或更高级的高速缓冲存储器。根据另一变型,共享存储器204、304是计算机系统的随机存取存储器。
共享存储器204、304可以是能够实现FIFO型逻辑的循环缓冲存储器。
每个处理单元包括密码模块206、306和伪随机二进制字符串生成器(PRNG)205、305,例如,线性反馈移位寄存器(“LSFR”)或线性同余发生器(“GCL”)。
所有处理单元的伪随机二进制字符串生成器205、305采用同一“种子”初始化并彼此同步。
密码模块使得处理单元能够对待交换的消息加密和解密。
消息的加密和解密包括对待加密或解密的消息应用同一依赖于相同的伪随机二进制字符串Si的变换fSi,该变换fSi是对合的,即验证fSiofSi=id。该伪随机二进制字符串Si由每个处理单元的伪随机二进制字符串生成器等同地生成来用于同一消息的加密和解密,这些生成器使用同一种子初始化并维持彼此同步。
根据第一变型,对合的变换fSi对应于在待加密或解密的消息与处理单元所生成的伪随机二进制字符串Si之间进行异或运算(opérationOUEXCLUSIF)。
根据第二变型,对合的变换fSi对应于由字符串Si限定的二进制数与对应于待加密或解密的二进制消息的二进制数之间的差。
因此,在消息已写入共享存储器之后,试图更新自身高速缓存的处理单元能够确保该处理单元从存储器中读取的消息确实是检测到的写入消息。
更具体地,以下将参照图4对通过共享存储器在两个处理单元间交换的消息的校验方法的第一实施例进行说明。
交换的消息Mi包括完整性校验。该完整性校验因而能够由诸如循环冗余校验(“cyclicredundancycheck”或“CRC”)之类使得能够进行误差检测的编码来实现。该完整性校验还可以包括例如校验和。
在第一步骤401处,发送消息的第一处理单元的伪随机二进制字符串生成器生成第一伪随机二进制字符串Si。如果生成的二进制字符串是生成器初始化之后所生成的第一字符串,那么它对应于与所用种子对应的字符串序列的第一字符串。如果至少一个二进制字符串已预先在生成器初始化之后生成,那么在第一步骤401处生成的二进制字符串是该序列的后续字符串。
在第二步骤402处,发送消息的第一处理单元的密码模块通过对待交换的消息应用依赖于在第一步骤401处生成的第一伪随机二进制字符串的变换fSi来对待交换的消息加密,该变换是对合的,即该变换验证等式fSiofSi=Id,其中Id为识别函数。因此,利用同一变换对消息加密和解密是可能的。
在第三步骤403处,已加密的消息(M'i=fSi(M))由第一处理单元发送并存储在共享存储器中;
在第四步骤404处,第二处理单元希望通过自身的高速缓存读取存储在共享存储器中的消息M'i。因此,第二处理单元的伪随机二进制字符串生成器生成第二二进制字符串S'i。该二进制字符串生成器利用与用于对第一步骤401的生成器进行初始化的种子相同的种子进行初始化,并且这两个生成器从它们的初始化开始就保持彼此同步。因此,在第四步骤404处生成的第二二进制字符串S'i与在第一步骤401处生成的第一二进制字符串Si相同。
在第五步骤405处,第二处理单元通过自身的高速缓存读取存储在共享存储器中的已加密的消息M'i。随后第二处理单元的密码模块通过对加密消息M'i应用依赖于第二伪随机二进制字符串S'i的对合变换fS'i来对已加密的消息M'i解密。由于第二伪随机二进制字符串S'i与第一随机二进制字符串Si相同,因此该变换fS'i与变换fSi相同。随后解密该已加密的消息产生待交换的消息,该待交换的消息在第二步骤402处被加密(fS'i(M'i)=fS'i(fSi(Mi))=fSi(fSi(Mi))=Id(Mi)=Mi)
如果第二处理单元读取共享存储器中的、与待交换的消息M'i不同的消息M'j对应的已加密数据,例如,因为该读取发生在将已加密消息M'i写入共享存储器之前,那么第二处理单元不能正确解密该消息。在共享存储器中读取的已加密消息采用与变换fSi不同的变换fSj进行加密,这是因为该变换fSj相对于与第一二进制字符串Si不同的二进制字符串Sj定义。当对利用函数fS'i加密的该消息解密时,处理单元的密码模块将获得结果fS'i(M'j)=fS'i(fSj(Mj))=fSi(fSj(Mj)),因此该结果既不对应于Mi也不对应于Mj。
在第六步骤406处,第二处理单元借助于完整性校验对该已解密的消息的完整性进行验证。如果发送的消息在第五步骤405处被成功解密,那么该消息是完整的,并且试图更新自身高速缓存的第二处理单元证明其已读取了共享存储器中正确的消息。相反地,如果解密未在第五步骤405处正确地执行,则该已解密的消息是不完整的,那么第二处理单元获知在共享存储器中读取的消息不是之后所寻求用于更新自身高速缓存的消息。
根据一个变型,在对已解密消息的完整性验证失败的情况下,第二处理单元在经过预定时间后再次执行第五步骤405。
伪随机二进制字符串生成器205、305可以具有比共享存储器的比特容量长的周期。这使得可以在存储器已经完成一个循环(即一旦写入已输入到存储器的所有位置中,包含旧数据的位置被重用于写入最新的数据)时使用例如循环缓冲存储器来避免无意地解密一个旧值。
以下将参照图5对通过共享存储器在两个处理单元间交换的消息进行校验的方法的第二实施例进行说明。
交换的消息Mi包括完整性校验。该完整性校验因而能够由诸如循环冗余校验(CRC)之类使得能够进行误差检测的编码来实现。该完整性检查还包括例如校验和。
交换的消息Mi还包括n比特长度的预定报头hi。
在与上述根据第一实施例的方法的第一步骤401类似的第一步骤501处,发送消息的第一处理单元的伪随机二进制字符串生成器生成伪随机二进制字符串Si。如果生成的二进制字符串是生成器初始化之后所生成的第一字符串,那么它对应于与所用种子对应的字符串序列的第一字符串。如果在生成器初始化之后已经生成了至少一个二进制字符串,那么在第一步骤501处生成的二进制字符串是该序列的后续字符串。
在与上述根据第一实施例的方法的第二步骤402类似的第二步骤502处,发送消息的第一处理单元的密码模块通过对待交换的消息应用依赖于在第一步骤501处生成的第一伪随机二进制字符串Si的变换fSi来对待交换的消息加密,该变换是对合的,即该变换验证等式fSiofSi=Id,其中Id为识别函数。因此,利用同一变换对消息加密和解密是可能的。
在该实施例中,变换fSi还必须可应用于已加密消息的前n个比特,以只对该已加密消息的报头h'i进行解密。例如,如果该变换是异或函数,那么它仅仅能够应用在字符串Si的前n个比特与已加密消息的前n个比特之间以只对该报头解密。
在第三步骤503处,已加密的消息(M'i=h'i::d'i=fSi(Mi)=fsi(hi::di))被第一处理单元发送并存储在共享存储器中。
在与上述方法的第四步骤404类似的第二步骤504处,第二处理单元希望读取存储在共享存储器中的消息M'i。因此,第二处理单元的伪随机二进制字符串生成器生成第二伪随机二进制字符串生成器S'i。该二进制字符串生成器利用与用于初始化第一步骤501的生成器的种子相同的种子进行初始化,并且这两个生成器从它们的初始化开始就维持彼此同步。因此,在第四步骤504处生成的第二二进制字符串S'i与在第一步骤501处生成的第一二进制字符串Si相同。
在第五步骤505处,第二处理单元读取存储在第三步骤503中存储在共享存储器中的已加密消息M'i。第二处理单元的密码模块随后通过对已加密消息应用依赖于第二伪随机二进制字符串S'i的对合变换fS'i来仅对已加密消息的报头h'i解密。第二伪随机二进制字符串S'i与第一伪随机二进制字符串Si相同,变换fS'i与变换fSi相同。随后,对该已加密消息M'i的报头h'i的解密产生了预定报头hi,该预定报头hi用作在第二步骤502处被加密的消息Mi的报头。
如果第二处理单元读取共享存储器中的、与待交换的消息M'i不同的消息M'j对应的加密数据,例如,因为该读取操作发生在加密消息M'i被写入共享存储器之前,那么第二处理单元将不能正确解密该消息报头。在共享存储器中读取的已加密消息会利用与变换fSi不同的变换fSj加密,这是因为该变换fSj被定义为不同于二进制字符串Si的二进制字符串Sj的函数。当使用变换fS'i对已加密的该消息的报头解密时,处理单元的密码模块所获得的结果将是fS'i(fSj(hj)),该结果并不对应于用作消息Mi和Mj的报头的预定报头hi或hj。
如果对该已加密消息的报头进行的解密没有产生预定报头,那么第二处理单元在经过预定时间间隔后再次执行第四步骤504。
如果对该已加密消息的报头进行的解密产生了预定报头,那么第二处理单元执行接下来的第六步骤506。
在第六步骤506处,第二处理单元的密码模块通过对已加密消息M'i的剩余部分应用依赖于第二伪随机二进制字符串S'i的对合变换fS'i来对共享存储器中读取的已加密消息M'i的剩余部分解密。由于第二伪随机二进制字符串S'i与第一随机二进制字符串Si相同,因此该变换fS'i与变换fSi相同。随后,对在第二步骤502处加密的已加密消息进行的解密产生待交换的消息(fS'i(M'i)=fS'i(fSi(Mi))=fSi(fSi(Mi))=Id(Mi)=Mi)。
在第七步骤507处,第二处理单元使用完整性校验对该已解密消息的完整性进行验证。如果发送的消息在第六步骤506处被成功解密,那么该消息是完整的并且第二处理单元证明其已读取共享存储器中正确的消息。相反地,如果解密在第六步骤506处被错误地执行,那么该已解密的消息是不完整的,并且第二处理单元获知在共享存储器中读取的消息不是所需的消息。
根据一个变型,在已解密消息的完成性验证失败的情况下,第二处理单元在经过预定时间间隔后再次执行第五步骤505。
Claims (9)
1.一种通过第一处理单元(202,302)与第二处理单元(202,302)两者共享的存储器(204,304)在所述第一处理单元和所述第二处理单元之间发送消息(Mi)的方法,
待发送的消息(Mi)包括完整性校验和报头,
每个处理单元包括伪随机二进制字符串生成器(205,305)和密码模块(206,306);
所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化,并彼此同步;
所述方法包括以下步骤:
-所述第一处理单元的伪随机二进制字符串生成器(205,305)生成(501)第一伪随机二进制字符串(Si);
-所述第一处理单元的密码模块(206,306)通过对所述待发送的消息(Mi)应用依赖于所生成的第一伪随机二进制字符串(Si)的对合变换(fSi)来对所述待发送的消息(Mi)加密(502);
-所述第一处理单元发送并在共享的存储器(204,304)中存储(503)已加密的消息(M′i=fSi(Mi));
-所述第二处理单元的伪随机二进制字符串生成器(205,305)生成(504)第二伪随机二进制字符串(S′i);
所述第一二进制字符串和所述第二二进制字符串相同;
-所述第二处理单元的密码模块(206,306)通过对存储在共享的存储器(204,304)中的所述消息(M′i=fSi(Mi))应用依赖于所述第二伪随机二进制字符串(S′i)的对合变换(fS′i)来对所存储的消息解密(505,506),解密所述消息包括解密所述消息的报头(505)、验证已解密的报头(505)以及根据报头验证的结果来解密完整的消息(506);
依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
-所述第二处理单元基于已解密的消息(fS′i(M′i))的完整性校验来验证(507)所述已解密的消息的完整性。
2.根据权利要求1所述的方法,其中,所述依赖于二进制字符串的对合变换为应用在所述二进制字符串与待加密或待解密的消息之间的异或运算(XOR)。
3.根据权利要求1或2所述的方法,其中,验证所述报头(505)包括将所述报头与预定报头比较的步骤。
4.根据前述权利要求中任一项所述的方法,其中,所述完整性校验为误差检测码。
5.根据权利要求4所述的方法,其中,所述误差检测码为循环冗余校验(CRC)或校验和。
6.根据前述权利要求中任一项所述的方法,其中,所述共享的存储器(204,304)为循环缓冲存储器。
7.根据前述权利要求中任一项所述的方法,其中,所述伪随机二进制字符串生成器的周期长于所述共享的存储器的比特容量。
8.一种计算机程序产品,包括当在处理器上执行该程序时用于实现根据前述权利要求中任一项所述的方法的代码指令。
9.一种系统,包括:
-至少一个第一处理单元(202,302),配置为访问与第二处理单元(202,302)共享的存储器(204,304);
所述第一处理单元(202,302)包括:
-伪随机二进制字符串生成器(205,305),用于生成第一伪随机二进制字符串(Si);
-密码模块(206,306),用于通过对待发送的消息(Mi)应用依赖于所生成的第一伪随机二进制字符串(Si)的对合变换(fSi)来对所述待发送的消息(Mi)加密(206);
所述待发送的消息(Mi)包括完整性校验和报头;
-用于发送并在共享的存储器(204,304)中存储已加密的消息(M′i=fSi(Mi))的装置;
以及,至少一个第二处理单元(202,302),配置为访问与所述第一处理单元(202,302)共享的所述存储器(204,304);
所述第二处理单元包括:
-伪随机二进制字符串生成器(205,305),用于生成第二伪随机二进制字符串(S′i);
所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化并彼此同步,并且所述第一二进制字符串与所述第二二进制字符串相同;
-密码模块(206,306),用于通过对存储在共享的存储器中的已加密的消息(M′i=fSi(Mi))应用依赖于所述第二伪随机二进制字符串(S′i)的对合变换(fS′i)来对所存储的已加密的消息解密,解密所述消息包括解密所述消息的报头(505)、验证已解密的报头(505)以及根据报头验证的结果来解密完整的消息(506);
依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
-用于根据已解密的消息的完整性校验来验证所述已解密的消息的完整性的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1358597 | 2013-09-06 | ||
FR1358597A FR3010598B1 (fr) | 2013-09-06 | 2013-09-06 | Procede de gestion de coherence de caches |
PCT/EP2014/068990 WO2015032921A1 (fr) | 2013-09-06 | 2014-09-05 | Procédé de gestion de cohérence de caches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105580308A true CN105580308A (zh) | 2016-05-11 |
CN105580308B CN105580308B (zh) | 2018-12-28 |
Family
ID=50069025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480053601.7A Active CN105580308B (zh) | 2013-09-06 | 2014-09-05 | 用于管理高速缓存一致性的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9734065B2 (zh) |
CN (1) | CN105580308B (zh) |
FR (1) | FR3010598B1 (zh) |
WO (1) | WO2015032921A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711177A (zh) * | 2018-12-14 | 2019-05-03 | 国家电网有限公司 | 基于生物信息识别的数据安全管理方法及终端设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367886B (zh) * | 2020-03-02 | 2024-01-19 | 中国邮政储蓄银行股份有限公司 | 数据库中数据迁移的方法及装置 |
US12013780B2 (en) * | 2020-08-19 | 2024-06-18 | Google Llc | Multi-partition memory sharing with multiple components |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551562A (zh) * | 2003-05-07 | 2004-12-01 | ���ǵ�����ʽ���� | 一种对内容提供者进行认证及确保内容完整性的方法 |
US20100312960A1 (en) * | 2009-06-08 | 2010-12-09 | Lsi Corporation | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (das) system |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102171658A (zh) * | 2008-12-29 | 2011-08-31 | 英特尔公司 | 抑制比特错误校验码方案 |
CN102834813A (zh) * | 2010-02-05 | 2012-12-19 | 诺基亚公司 | 用于多通道高速缓存的更新处理机 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996042155A1 (en) | 1995-06-08 | 1996-12-27 | Motorola Inc. | Method of encrypting data packets and detecting decryption errors |
CA2365236A1 (en) | 2000-01-21 | 2001-07-26 | Sony Corporation | Data authentication system |
US8296581B2 (en) * | 2007-02-05 | 2012-10-23 | Infineon Technologies Ag | Secure processor arrangement having shared memory |
US8930647B1 (en) * | 2011-04-06 | 2015-01-06 | P4tents1, LLC | Multiple class memory systems |
US9311250B2 (en) * | 2011-12-19 | 2016-04-12 | Intel Corporation | Techniques for memory de-duplication in a virtual system |
-
2013
- 2013-09-06 FR FR1358597A patent/FR3010598B1/fr active Active
-
2014
- 2014-09-05 WO PCT/EP2014/068990 patent/WO2015032921A1/fr active Application Filing
- 2014-09-05 CN CN201480053601.7A patent/CN105580308B/zh active Active
- 2014-09-05 US US14/916,915 patent/US9734065B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551562A (zh) * | 2003-05-07 | 2004-12-01 | ���ǵ�����ʽ���� | 一种对内容提供者进行认证及确保内容完整性的方法 |
CN102171658A (zh) * | 2008-12-29 | 2011-08-31 | 英特尔公司 | 抑制比特错误校验码方案 |
US20100312960A1 (en) * | 2009-06-08 | 2010-12-09 | Lsi Corporation | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (das) system |
CN102834813A (zh) * | 2010-02-05 | 2012-12-19 | 诺基亚公司 | 用于多通道高速缓存的更新处理机 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
Non-Patent Citations (2)
Title |
---|
WEIDONG SHI, ET AL.: "Architectural Support for High Speed Protection of Memory Integrity and Confidentiality in Multiprocessor Systems", 《PROCEEDINGS OF THE 13TH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURE AND COMPILATION TECHNIQUES》 * |
杨鹏飞: "多核环境Cache一致性协议研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711177A (zh) * | 2018-12-14 | 2019-05-03 | 国家电网有限公司 | 基于生物信息识别的数据安全管理方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105580308B (zh) | 2018-12-28 |
FR3010598A1 (fr) | 2015-03-13 |
US9734065B2 (en) | 2017-08-15 |
WO2015032921A1 (fr) | 2015-03-12 |
US20160224469A1 (en) | 2016-08-04 |
FR3010598B1 (fr) | 2017-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10396978B2 (en) | Crypto devices, storage devices having the same, and encryption and decryption methods thereof | |
CN101149709B (zh) | 存储卡的加密处理器和使用其进行数据读写的方法 | |
US20130297948A1 (en) | System on chip, method of operating the same, and devices including the system on chip | |
CN105122203A (zh) | 存储设备辅助式内联加密和解密 | |
CN103546576A (zh) | 一种嵌入式设备远程自动升级方法和系统 | |
CN109977702B (zh) | 一种基于ds2432芯片的fpga设备加密认证系统 | |
CN102280133A (zh) | 一种抗截获的代码加密烧录方式 | |
CN112887077B (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
CN103034801A (zh) | 基于模式的安全微控制器 | |
CN104732159A (zh) | 一种文件处理方法及装置 | |
CN103413101A (zh) | 电子数据防篡改系统和方法 | |
EP4202685A1 (en) | Algebraic and deterministic memory authentication and correction with coupled cacheline metadata | |
CN105580308A (zh) | 用于管理高速缓存一致性的方法 | |
CN111984985A (zh) | 一种基于fpga硬件系统的hdl源码加密方法 | |
CN104077243A (zh) | Sata硬盘设备加密方法及系统 | |
CN114327255A (zh) | 存储器接口控制器及存储器 | |
KR20210132928A (ko) | 메모리 컨트롤러의 구동방법, 클라우드 컴퓨팅 장치의 구동방법 및 에지 컴퓨터의 구동 방법 | |
CN114070552B (zh) | 数据加密方法及装置、数据解密方法及装置、设备及介质 | |
CN113536331B (zh) | 存储器和计算系统的数据安全 | |
US20150249467A1 (en) | Storage device, controller, and data writing method | |
CN104503705A (zh) | 利用闪存设备构建可信存储系统的方法及构建的可信存储系统 | |
CN102110038B (zh) | 一种安全类芯片的测试电路 | |
CN105897405B (zh) | 一种128位对称密钥生成及保护装置 | |
JP6047933B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
US20240356732A1 (en) | Information processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |