CN116368773A - 通过使用水印确保被存储在存储器中的数据的完整性 - Google Patents

通过使用水印确保被存储在存储器中的数据的完整性 Download PDF

Info

Publication number
CN116368773A
CN116368773A CN202180070779.2A CN202180070779A CN116368773A CN 116368773 A CN116368773 A CN 116368773A CN 202180070779 A CN202180070779 A CN 202180070779A CN 116368773 A CN116368773 A CN 116368773A
Authority
CN
China
Prior art keywords
data
memory
bits
address
generate
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
Application number
CN202180070779.2A
Other languages
English (en)
Inventor
J·G·班尼特
G·扎韦鲁查
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN116368773A publication Critical patent/CN116368773A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

描述了涉及通过使用水印确保被存储在存储器中的数据的完整性的系统和方法。一种在包括处理器和存储器的系统中的示例方法可以包括:接收用于存储在存储器中的地址处的数据。该方法还可以包括在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过对用户密钥和地址应用密码函数而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。

Description

通过使用水印确保被存储在存储器中的数据的完整性
背景技术
计算、存储和网络资源越来越多地经由分布式计算系统,包括公有云、私有云或两者的混合而被访问。公有云包括执行各种功能的全球服务器网络,这些功能包括存储和管理数据、运行应用以及交付内容或服务,诸如流视频、电子邮件、办公生产力软件或社交媒体。服务器和其他组件可能位于世界各地的数据中心。尽管公有云通过互联网向公众提供服务,但企业可以使用私有云或混合云。私有云和混合云都还包括位于数据中心的服务器网络。云服务提供商通过向客户提供云计算和存储资源来提供对这些资源的访问。在任何这样的分布式计算系统中,多个计算实体可以访问同一存储器。此外,在某些存储器系统中,可能是不清楚从地址取回的数据是否实际上是应当存储在该地址处的数据。因此,需要更好的存储器系统,在其中多个实体可以访问相同的存储器。
发明内容
本公开的一个方面涉及一种在包括处理器和存储器的系统中的方法。该方法可以包括接收用于存储在存储器中的地址处的数据。该方法还可以包括在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过对用户密钥和地址应用密码函数而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
在又一方面中,本公开涉及一种系统,包括主机服务器,该主机服务器包括存储器控制器,存储器控制器耦合到存储器和处理器。该系统还可以包括管理程序,与主机服务器相关联,该管理程序被配置为管理多个计算实体。存储器控制器可以被配置为:(1)从多个计算实体中的一个计算实体接收数据以用于存储在存储器中的地址处,以及(2)在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过应用密码函数到地址而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
在另一方面,本公开涉及一种被执行在包括处理器和存储器的主机服务器中的方法。该方法可以包括从与主机服务器相关联的多个计算实体中的一个计算实体接收明文数据,以用于存储在存储器中的地址处。该方法还可以包括至少使用与计算实体相关联的用户密钥来加密明文数据以生成加密数据。该方法还可以包括在利用纠错码对加密数据进行编码以生成具有第一数目的比特的中间数据之后,利用消息认证码可逆地改变中间数据,以生成用于存储在存储器中的带水印的数据,其中消息认证码是通过对用户密钥和地址应用密码函数而被生成,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
提供该发明内容部分是为了以简化的形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。该发明内容部分无意标识所要求保护的主题的关键特征或必要特征,也无意用于限制所要求保护主题的范围。
附图说明
本公开以示例的方式示出,并且不受附图的限制,附图中相似的附图标记指示相似的元素。图中的元素是为了简单和清楚而示出的,不一定按比例绘制。
图1示出了根据一个示例的用于通过使用水印确保数据完整性的系统环境的图;
图2示出了根据一个示例的包括用于通过使用水印确保数据完整性的系统的主机服务器的图;
图3示出了根据一个示例的用于通过使用水印确保数据完整性的数据路径的图;
图4示出了根据一个示例的用于通过使用水印确保数据完整性的另一数据路径的图;
图5示出了根据一个示例的用于实现通过使用水印确保数据完整性的系统的系统环境;
图6示出了根据一个示例的方法的流程图;以及
图7示出了根据一个示例的方法的另一个流程图。
具体实施方式
本公开中描述的示例涉及通过使用水印确保被存储在多用户计算系统中的数据的完整性。该数据可以被存储在主机服务器中包括的存储器模块中。多个主机服务器可以被包括在服务器机架或服务器堆栈中。主机服务器可以是云计算环境中的、被配置为服务云计算服务的租户或其他订阅者的任何服务器。示例存储器技术包括但不限于易失性存储器技术、非易失性存储器技术和准易失性存储器技术。示例存储器类型包括动态随机存取存储器(DRAM)、闪存(例如NAND闪存)、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、相变存储器(PCM)和电阻随机存取存储器(RRAM)。广义地说,本公开的示例涉及一种计算环境,在该计算环境中,即使一个用户能够访问另一个用户的存储器,也不能在不被检测到的情况下这样做。本公开中描述的技术的示例可以在诸如个人计算机、笔记本计算机、移动电话、蜂窝塔(例如,5G蜂窝塔)、边缘计算站点、游戏控制器或其他类似设备的系统中实现。
云计算可以指用于使能针对可配置计算资源的共享池进行访问的按需网络的模型。例如,云计算可以在市场中被采用,以提供对可配置计算资源的共享池的普适和便捷的按需访问。可配置计算资源的共享池能够以低管理工作量或服务提供商交互的方式,经由虚拟化被快速地供应并被释放,然后被相应地缩放。云计算模型可以由各种特征组成,例如,按需自助服务、广泛的网络访问、资源池、快速弹性、可计量服务等。云计算模型可被用于公开各种服务模型,诸如举例而言,硬件即服务(“HaaS”)、软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型也可以使用不同的部署模型被部署,诸如私有云、社区云、公有云、混合云等。
图1示出了根据一个示例的用于通过使用水印确保被存储的数据的完整性的系统环境100的图。在该示例中,系统环境100可以对应于数据中心中的云计算堆栈。系统环境100可以被实现为服务器机架。在此示例中,系统环境100可以包括主机服务器110、120和130。每个主机服务器可以包括被配置为提供至少某种形式的计算功能的一个或多个处理器。作为示例,主机服务器110可以包括CPU 112和CPU 114,主机服务器120可以包括CPU122和CPU 124,以及主机服务器130可以包括CPU 132和CPU 134。主机服务器110还可以包括存储器116和存储器118。主机服务器120还可以包括存储器126和存储器128。主机服务器130还可以包括存储器136和存储器138。
继续参考图1,主机服务器110可以被配置为执行与管理程序140相对应的指令。管理程序140还可以被配置为与虚拟机(VM)(例如,VM 142、VM 144和VM 146)进行交互。对应于VM的指令可以使用与主机服务器110相关联的CPU 112或CPU 114中的任一个来被执行。管理程序150还可以被配置为与虚拟机(VM)(例如,VM 152、VM 154和VM 156)进行交互。对应于这些VM的指令可以使用与主机服务器120相关联的CPU 122或CPU124中的任一个来被执行。管理程序160还可以被配置为与虚拟机(VM)(例如,VM 162、VM 164和VM 166)进行交互。对应于这些VM的指令可以使用与主机服务器130相关联的CPU 132或CPU 134中的任一个来被执行。
管理程序140可以经由控制路径与管理程序150共享控制信息。控制路径可以对应于使用总线系统(例如,服务器机架总线系统或其他类型的总线系统)而被实现的路径。管理程序150可以经由另一控制路径与管理程序160共享控制信息。控制路径可以对应于使用总线系统而被实现的路径。管理程序140、管理程序150和管理程序160中的每一个可以是基于内核的虚拟机(KVM)管理程序、Hyper-V管理程序或另一类型的管理程序。尽管图1将系统100示出为包括以特定方式被布置和被耦合的特定数量的组件,但是它可以包括以不同方式被布置和被耦合的更少的或额外的组件。作为示例,尽管图1中未示出,但每个主机服务器可以包括用于管理主机服务器的特定方面的操作系统。作为另一示例,系统100可以包括组合为机架或堆栈的一部分的任意数目的主机服务器。作为另一示例,每个主机服务器可以根据需要包括任何数量的CPU、GPU、存储器模块或其他组件,用于提供云计算、存储和/或网络功能。此外,与系统100相关联的功能可以根据需要被指派或被组合。而且,尽管图1描述了通过VM对主机服务器的存储器的访问,但是其他类型的计算实体,诸如容器、微VM、微服务和用于无服务器功能的单核,可以以类似的方式访问存储器。如本文所使用的,术语“计算实体”包括但不限于实现用于无服务器计算的功能、管理程序、应用、服务、微服务、容器、单内核或上述部分的任何可执行代码(以硬件、固件、软件或前述内容的任何组合的形式)。
图2示出了根据一个示例的包括存储器控制器250的主机服务器200。主机服务器200可以包括CPU 210、高速缓存220、存储器控制器250和存储器280。CPU 210可以经由总线212被耦合到高速缓存220,以允许快速访问高速缓存中的指令或数据。在该示例中,高速缓存220可以是L2高速缓存,并且还可以被耦合到其他高速缓存,诸如L1高速缓存(未示出)。CPU 210可以耦合到存储器控制器250以允许数据/控制信号的交换。高速缓存220还可以被耦合到存储器控制器250以允许数据和元数据或其他信息的交换。在一个示例中,CPU 210、高速缓存220和存储器控制器250可以被合并在单个模块(例如,SoC)中。存储器控制器250可以经由总线264(例如,DDR存储器总线或另一类型的总线)被耦合到存储器280。存储器280可以对应于各种类型的存储介质中的任意类型,包括随机存取存储器(例如,DRAM)、存储类存储器或适合于存储数据以用作主机服务器200的一部分的任何其他类型的存储器。此外,虽然未示出,但是时钟源可以根据需要被用来同步信号。时钟源可以被实现为锁相环(PLL)电路或另一类型的时钟电路。在一个示例中,存储器280可以对应于经由总线264(例如,单通道或多通道)被耦合到存储器控制器250的DRAM模块(例如,DIMM)。每个存储器模块可以包括存储器芯片。
关于对与主机服务器相关联的存储器(例如,DIMM)的访问,在广义上,计算实体(例如,虚拟机(VM))可以有两种方式来访问主机服务器的存储器。在这些情况下,当VM正在访问与其正在执行的CPU相关联的物理存储器时,则加载或存储访问,该访问可以由与系统相关联的硬件而被转换为总线事务。
仍然参考图2,存储器控制器250可以经由总线232从CPU 210接收地址(ADDR)。存储器控制器250可以包括地址解码逻辑(未示出),以解码接收到的地址并向存储器280提供命令。作为示例,在存储器280被实现为DRAM的情况下,存储器控制器250可以将接收到的地址解码为用于访问DRAM的适当控制信号。在此示例中,地址可以对应于主机物理地址。在一个示例中,与主机服务器200相关联的操作系统(未示出)可以维护虚拟地址(由诸如虚拟机之类的计算实体使用)与主机物理地址之间的映射。与CPU 210相关联的存储器管理单元(MMU)可以将虚拟地址转译为主机物理地址。其他适当的地址转译机制也可以被使用。存储器控制器250可进一步维持主机物理地址与用于存储器280的逻辑地址之间的映射。作为示例,在存储器280是DRAM的情况下,逻辑地址可以对应于DDR逻辑地址。
存储器控制器250可以经由总线236从高速缓存220接收数据(DATA)。存储器控制器250可以包括密钥生成器252。密钥生成器252可以经由总线242被耦合到加扰逻辑254。密钥生成器252还可以经由总线244被耦合到加密逻辑/解密逻辑256。加扰逻辑254可以经由总线246与水印逻辑260耦合。加密逻辑/解密逻辑256可以经由总线248被耦合到ECC编码器/解码器270。ECC编码器/解码器270可以经由总线262被耦合到水印逻辑260。水印逻辑260可以经由总线264被耦合到存储器280。尽管图2将系统主机服务器200和存储器控制器250示出为包括以特定方式被布置和被耦合的特定数量的组件,但是每个组件可以包括以不同方式被布置和被耦合的更少的或额外的组件。作为示例,尽管图2中未示出,但是每个主机服务器200可以包括用于管理主机服务器的特定方面的操作系统。作为另一示例,每个主机服务器200可以根据需要包括任意数目的CPU、GPU、存储器模块或其他组件,用于提供云计算、存储和/或网络功能。此外,与主机服务器200相关联的功能可以根据需要被指派或被组合。而且,存储器控制器250可以包括额外的功能,包括控制被耦合到不同存储器介质的多个通道的能力。作为另一示例,水印逻辑260可以被耦合到通道控制器(未示出),通道控制器可以转而被耦合到存储器280。
继续参考图2,在一个示例中,管理程序可以向每个用户(例如,访客VM)指派唯一的逻辑号。该逻辑号可以被称为用户ID。CPU 210可以将用户ID提供给高速缓存220,使得其可以被广播到与CPU 210相关联的所有存储器通道中。因此,关于主机服务器200,用户ID可以被提供给密钥生成器252,该密钥生成器252被包括为存储器控制器250的一部分。与存储器控制器250相关联的通道可以生成用作与用户ID相关联的用户的密钥的数字。当写入操作针对用户被执行时,用户ID可以被使用来生成用户密钥,或者先前被生成的用户密钥可以被使用。因此,在一个示例中,当存储器控制器250被通知有新的有效用户ID时,密钥生成器252可以生成与用户ID相对应的用户密钥并将其存储在存储器控制器250之内。以此方式,当预先存在的用户ID与存储器操作相关联时,存储器控制器250可以简单地使用被存储的用户密钥而不是生成新的用户密钥。
CPU(例如,图1的CPU 112)可以使用针对计算实体的相同用户ID来对存储器116和存储器118两者进行访问。此外,通过在CPU 112、CPU 114或同时在CPU 112和CPU 114上运行的计算实体执行的存储器操作可以使用相同的用户ID,而不管哪个CPU启动存储器操作。在另一示例中,用户ID可以对于每个CPU是局域的。因此,在具有两个CPU的系统中,一个CPU可以向其附属的存储器控制器将用户ID注册为X,且另一个CPU可以向其附属的存储器控制器将用户ID注册为Y,并且相互连接两个CPU的总线系统(例如,UPI总线)可以在两个用户ID之间转换,使得正确的用户ID(X或Y)被呈现给服务于所讨论的存储器操作的存储器控制器。用户密钥(例如,用户密钥)可以被用于对数据进行加密,以将数据从明文转换为密文。作为示例,加密逻辑/解密逻辑256可以被用于将数据从明文转换为密文。当读取操作代表同一用户被执行时,先前生成的相同的用户密钥可以被使用来解密。作为示例,加密逻辑/解密逻辑256可以被用于执行加密和解密。
一旦用户密钥被生成,其可以作为阵列(或另一类型的数据结构)的一部分被存储在存储器控制器250之内。存储器控制器250可以被配置为使得用户密钥不能从外部被访问并且永远不会退出存储器控制器250。在之后的某个时间,管理程序可以确定计算实体(例如,访客VM)需要关机或终止。这可能是虚拟机被卸载或以其他方式被终止的结果。管理程序(例如,管理程序140、150或160中的任意)可以向存储器控制器350广播另一命令,指示与计算实体相关联的用户ID不再有效。存储器控制器250可以清除与计算实体(例如,访客VM)相关联的用户密钥。因此,即使CPU 210发出指令以读取与不再有效的计算实体的用户ID相关联的数据,存储器控制器250也将不能生成正确的水印,并且异常将被抛出。这样,因为与无效用户ID相关联的用户密钥已经被清除,即使恶意代码冒充具有无效用户ID的用户也将无法获取该数据。
仍然参考图2,加密数据可以使用ECC码被编码。示例ECC码包括但不限于Reed-Solomon码、Bose-Chaudhuri-Hocquenghem(BCH)码和低密度奇偶校验(LDPC)码。作为示例,ECC编码器/解码器270可以生成576比特代码,其中的512比特可以是数据比特,64比特可以是ECC比特。
继续参考图2,在利用纠错码对加密数据进行编码以生成具有第一数目的比特的中间数据(例如,576比特,其中的512比特可以是数据比特,64比特可以是ECC比特)之后,图2的水印逻辑260可以被用于对中间数据应用水印(例如,消息认证码(MAC)),以生成用于存储在存储器中的带水印的数据。在一个示例中,MAC可以是具有密钥和输入的密码函数。为了确保更强的安全保证,在一个示例中,该函数可以是伪随机函数。可以使用导致中间数据的可逆改变的任何类型的置换、加扰或组合函数来组合水印与中间数据。适当的MAC可以由哈希函数(例如,HMAC(用于消息认证的密钥哈希)、KMAC(KECCAK消息认证码)或块密码(例如,高级加密标准(AES)-CMAC)被构造。尽管这样的MAC具有固定的输出长度,但它们可以与计数器一起重复应用到输入中,以便根据需要创建任意数目的输出比特。除了MAC之外,其他具有伪随机输出的密钥密码函数也可以被使用。作为示例,块密码(例如,高级加密标准(AES)-密码块链接(CBC)或AES-CTR(计数器块模式))可以被用来对用户密钥和/或地址和计数器进行加密。此外,输出取决于用户密钥和地址的流密码也可以被使用。
示例性改变包括但不限于:在水印和中间数据之间执行异或运算、基于水印旋转中间数据以及本质上可逆的其他改变。水印被选择用来确保在应用水印之后错误的位置不被改变。例如,Reed-Solomon码可以被理解为具有必须在某些点被对齐的符号。在一个示例中,假设水印的应用是旋转,并且因此该符号的一些比特被旋转到不同的符号中,而该符号的那些比特中的一些则被留在原始符号中。在本例中,如果数据中存在实际错误,则有可能仅在一个符号中存在错误,并且底层存储器介质被设计为试图将故障机制局限于单个符号。由于这些比特已被移动到两个单独的符号中,因此错误无法再被纠正。相应地,在该示例中,通过将可纠正错误转换为不可纠正错误,存储器系统已被削弱。如果反过来,没有比特被允许进入不同的符号,那么存储器系统则没有被削弱,因为即使比特被移动到同一符号内的不同位置,错误仍然可以被纠正。因此,不导致数据比特跨符号移动的旋转可能是可使用的有效置换。例如,因为异或机制根本不移动比特,所以错误保留在原始的底层位置,因而与水印的应用之前完全一样可纠正。
响应于来自CPU 210的用于读取地址处的数据的读取请求,水印可以被应用到取回的带水印的数据(例如,存储在存储器280中的数据)以生成中间数据。作为示例,水印逻辑260可以利用从地址取回的带水印的数据来置换水印,以生成中间数据。ECC编码器/解码器270可以对中间数据进行解码以生成解码数据;如果解码导致不可纠正的错误,则读取操作可以由存储器控制器250被终止,否则解码数据可以使用加密逻辑/解密逻辑256被解密,以生成明文数据。明文数据可以经由高速缓存220被提供给CPU 210。
综上,在与本公开相关联的示例中,示例存储器控制器被配置为生成认证码(例如,消息认证码(MAC)),但不是将其作为额外数据写入存储器,而是被用于可逆地改变由纠错码(ECC)进行编码的数据。在常规的系统中,除了用户数据和ECC之外,MAC可以被存储为元数据。由于每一比特都是宝贵的资源,这会导致冲突,诸如MAC大小和ECC强度之间的折衷。此外,因为数据比特的损坏是潜在的攻击向量,所以ECC强度被降低的系统实际上不可能更安全。置换方案的优点之一是不存在对元数据比特的竞争,同时也不存在ECC的削弱。因此,换言之,消息认证码(MAC)被用作隐式MAC而不是显式MAC,用于确保存储在存储器中的数据的完整性。
在这样的系统中,匹配的读取和写入操作以精确的平衡向数据比特添加和减去熵,使得当MAC匹配时(这是必需的),MAC的信息有效地消失,并且ECC系统具有完全的完整性。本公开的某些示例进一步要求所允许的置换必须是不将比特移动到其纠正符号之外的置换,并且另外,MAC可以被用于ECC中,目的例如是由于不同比特的位置上的错误率的物理差异而调整权重。
在某些示例中,在不需要额外的元数据比特的情况下,描述了将消息认证码压印到数据存储器中的方法。这些技术在写入操作期间使用MAC来置换数据,并且在读取操作期间相同的MAC被用来逆转改变。在纠错码被计算之后,该数据被可逆地改变。如果执行写入操作的用户与执行读取操作的用户不同,则它们的密钥将彼此不同,因此它们的MAC将不匹配,因而可逆的改变将不会被逆转,且ECC将失败。实际上,在这样的示例中,MAC已被存储为不需要额外比特的“水印”,并且ECC机制被借用作为MAC完整性检查。
如果被写入方使用的MAC与被读取方使用的MAC不同,则被可逆地改变的数据将不匹配,并且数据不会被还原到原始值。可逆的改变操作跨所有比特而被执行,从而有效地生成随机码字,因此ECC将不匹配报告为不可纠正的错误。在这些示例中,ECC完整性必须足够强,以便支持安全要求,因为如果其他错误原因未被检测到,则系统将会不安全。有利地,使用MAC可逆地改变数据消除了存储开销。实际上,MAC熵被正交地压印到所有数据比特中,但是如果相同的MAC被读取方使用,则该压印被完全去除,因此该数据可以通过全部强度和完整性未受影响的错误纠正进行。可逆的改变方法被需要使得如果在存储期间数据中确实发生错误,那么在可逆的改变被逆转之后错误仍然是可纠正的。在某些示例中,这是通过使用MAC的每个比特来实现的,以便指导所有比特都保持在相同的纠正符号内的非常局部化的变换。
假设在基于DRAM的存储器系统中,每512比特的数据有64比特的元数据,则Reed-Solomon纠错码可以被配置为仅修复一个16比特的符号。这将在ECC算法中留下大约42比特的完整性检查。备选地,对于每512比特的数据的64比特的元数据,Reed-Solomon纠错码可以被配置为修复两个16比特的符号。这可以略微提高可靠性,但完整性可能下降到大约24比特。在不同的存储器系统中,假设每512比特的数据有128比特的元数据,则Reed-Solomon纠错码可以被配置为仅修复一个64比特的符号或两个32比特的符号。假设每个芯片提供64比特,如果64比特的符号可以被纠正,那么这可以提供“终止芯片”(chip kill)故障保护。因此,即使芯片完全失效,数据仍然可以重新被创建。尽管Reed-Solomon是基于DRAM的存储系统的良好选择,并且具有良好的假阳性排斥能力,但其他具有强假阳性排斥能力的ECC技术也可能是兼容的。主要的要求是,在存在常规物理错误的情况下,可逆改变不应削弱错误纠正方案。例如,如果存储器系统使用闪存,则水印的应用可能需要被设计为不干扰多级单元的错误修复算法。
图3示出了根据一个示例的用于通过使用水印来确保数据完整性的数据路径300的图。在该示例中,对数据和其他信息(例如,用户密钥和地址)的操作可以使用图2的存储器控制器250来被执行。数据路径300假定数据大小为512比特。此外,假设用户不能改变其标识符及作为另一用户与存储器控制器交互。在此示例中,进一步假设用户(例如,计算实体)可以通过以下功能访问存储器:(1)写入(地址A,数据D)(将数据D写入地址A,且D是固定长度的数据块(在本示例中为512比特));(2)读取(地址A)(读取存储在地址A处的数据);以及(3)损坏(地址A)(模拟类似于行锤(Row-hammer)的攻击,其中用户可以对存储在地址A处的数据引入随机损坏)。如果用户执行写入(A,D),然后读取(A),则中间可能会有由系统中的其他(可能是恶意的)用户执行的读取、写入和损坏操作,影响地址A。而且,假设用户无法直接访问由存储器控制器写入介质的数据,则只能经由读取、写入和损坏功能访问存储器。此外,在此示例中,用户密钥从不从存储器控制器250导出。最后,在本示例中,假设由存储器控制器计算的中间值不会泄漏(不会通过边通道攻击或直接泄漏)。如果在写入和读取之间发生损坏操作,则存储器控制器250确保读取错误被抛出示意数据的损坏。
表1示出了作为使用存储器控制器250存储数据的存储序列的一部分的数据移动和其他操作。
Figure BDA0004179170790000131
表1
表2示出了作为使用图2的存储器控制器250从图2的存储器280取回数据的加载序列的一部分的数据移动和其他操作。
Figure BDA0004179170790000141
表2
图4示出了根据一个示例的用于通过使用水印来确保数据完整性的另一数据路径400的图。数据路径400假设数据大小为512比特。此外,假设用户不能改变其标识符并作为另一用户与存储器控制器进行交互。在此示例中,进一步假设用户(例如,计算实体)可以通过以下功能访问存储器:(1)写入(地址A,数据D)(将数据D写入地址A,且D是固定长度的数据块(在本示例中为512比特));(2)读取(地址A)(读取存储在地址A处的数据);以及(3)损坏(地址A):(模拟类似于行锤的攻击,其中用户可以对存储在地址A处的数据引入随机损坏)。如果用户执行写入(A,D),然后读取(A),则中间可能会有由系统中的其他(可能是恶意的)用户执行的读取、写入和损坏操作,影响地址A。此外,假设用户无法直接访问由存储器控制器写入介质的数据,则只能经由读取、写入和损坏功能访问存储器。此外,在此示例中,用户密钥从不从存储器控制器250被导出。最后,在此示例中,假设由存储器控制器计算的中间值不会泄漏(不会通过边信道攻击或直接泄漏)。如果在写入和读取之间发生损坏操作,则存储器控制器250确保读取错误被抛出,发信号说明数据的损坏。
表3示出了作为使用图2的存储器控制器250存储数据的存储序列的一部分的数据移动和其他操作。
Figure BDA0004179170790000151
表3
表4示出了作为使用图2的存储器控制器250从图2的存储器280取回数据的加载序列的一部分的数据移动和其他操作。
Figure BDA0004179170790000152
Figure BDA0004179170790000161
表4
尽管表1、2、3和4示出了作为生成消息认证码的加扰操作的一部分的特定密码函数的使用,但前面描述的其他技术可以被替代地使用。作为示例,哈希函数(例如,HMAC(用于消息认证的密钥哈希)、KMAC(KECCAK消息认证码)或块密码(例如,高级加密标准(AES)-CMAC)可以被使用。此外,如前文所述,除MAC之外,其他具有伪随机输出的密钥密码函数也可以被使用。作为示例,块密码(例如,高级加密标准(AES)-密码块链接(CBC)或AES-CTR(计数器块模式))可以被使用来加密用户密钥和/或地址和计数器。尽管参考图3和图4描述的示例将异或操作描述为数据路径的一部分,但其他置换也可以被使用。作为示例,其他置换包括旋转比特或在组之间划分某些比特,并且使用这些比特以与之前相同的顺序保留比特或逆转比特的顺序。通常,诸如异或运算的任何可逆运算都可以被用于置换。
图5示出了根据一个示例的用于实现系统和方法的系统环境500。在此示例中,系统环境500可以对应于数据中心的一部分。作为示例,数据中心可以包括多个机架集群,包括平台硬件,诸如服务器节点、存储节点、网络节点或其他类型的节点。服务器节点可以被连接到交换机以形成网络。网络可以使能交换机的每个可能组合之间的连接。系统环境500可以包括服务器1 510和服务器N530。系统环境500还可以包括数据中心相关功能560,包括部署/监测570、目录/标识服务572、负载均衡574、数据中心控制器576(例如,软件定义网络(SDN)控制器和其他控制器)以及路由器/交换机578。服务器1 510可以包括主机处理器511、主机管理程序512、存储器513、(多个)存储接口控制器(SIC)514、冷却515(例如,冷却风扇或其他冷却装置)、(多个)网络接口控制器(NIC)516以及存储盘517和518。服务器N530可以包括主机处理器531、主机管理程序532、存储器533、(多个)存储接口控制器(SIC)534、冷却535(例如,冷却风扇或其他冷却设备)、(多个)网络接口控制器(NIC)536以及存储盘537和538。服务器1 510可以被配置为支持虚拟机,包括VM1 519、VM2 520和VMN 521。虚拟机还可以被配置为支持应用,诸如APP1 522、APP2 523和APPN 524。服务器N 530可以被配置为支持虚拟机,包括VM1 539、VM2 540和VMN 541。虚拟机还可以被配置为支持应用(APP),诸如应用1 542、应用2 543和应用N 544。
继续参考图5,在一个示例中,系统环境500可以使用虚拟可扩展局域网(VirtualeXtensible Local Area Network,VXLAN)架构而对多个租户使能。每个虚拟机(VM)可以被允许与同一VXLAN区段中的VM进行通信。每个VXLAN区段可以由VXLAN网络标识符(VNI)所标识。尽管图5将系统环境500示出为包括以特定方式被布置和被耦合的特定数目的组件,但是其可以包括以不同方式被布置和被耦合的更少或额外的组件。此外,与系统环境500相关联的功能可以根据需要被指派或被组合。而且,尽管图5示出了VM,但是其他类型的计算实体,诸如用于无服务器功能的容器、微VM、微服务和单内核也可以以类似的方式被使用。
图6示出了根据一个示例的方法的流程图600。在此示例中,该方法可以在包括处理器和存储器的系统中被执行。作为示例,该方法可以作为图2的主机服务器200的一部分被执行,图2的主机服务器的一部分作为图1的系统环境100的一部分。步骤610可以包括接收用于存储在存储器中的地址处的数据。作为示例,作为步骤610的一部分,存储器控制器(例如,图2的250)可以从高速缓存220接收数据,用于存储由CPU 210提供的地址(ADDR)。此外,在一个示例中,数据可以是关于图3和表1所描述的512比特的明文数据。
步骤620可以包括在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过对用户密钥和地址应用密码函数而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。作为示例,存储器控制器(例如,图2的存储器控制器250)可以执行如关于图2和图3所描述的此步骤。在该示例中,在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据(例如,576比特,其中的512比特可以是数据比特,64比特可以是ECC比特)之后,图2的水印逻辑260可以被用于利用水印(例如,MAC)可逆地改变中间数据以生成用于存储在存储器中的带水印的数据。示例的可逆改变包括但不限于:在水印和中间数据之间执行异或运算、基于水印旋转中间数据、以及本质上可逆的其他改变。MAC和其他水印的额外示例参照图2在前面有所描述。尽管图6将流程图600描述为包括以特定顺序被执行的特定数量的步骤,但该方法可以包括以不同顺序而被执行的额外或更少的步骤。用户可以包括用于无服务器功能的管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。
图7示出了根据一个示例的方法的另一流程图700。在该示例中,该方法可以在包括存储器和处理器的主机服务器中被执行。作为示例,该方法可以作为图2的主机服务器200的一部分被执行,图2的主机服务器200作为图1的系统环境100的一部分。步骤710可以包括从与主机服务器相关联的多个计算实体中的一个计算实体接收明文数据以用于存储在存储器中的地址处。作为示例,作为步骤710的一部分,存储器控制器(例如,图2的250)可以从高速缓存220接收明文数据,用于存储由CPU 210提供的地址(ADDR)。此外,在一个示例中,明文数据可以是关于图3和表1所描述的512比特的明文数据。计算实体可以包括用于无服务器功能的管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。
步骤720可以包括至少使用与计算实体相关联的用户密钥来加密明文数据,以生成加密数据。作为示例,作为步骤720的一部分,存储器控制器(例如,图2的250)可以如先前关于图2所描述的那样对明文数据进行加密。此外,在一个示例中,加密数据可以是先前关于图3和表1描述的512比特的加密数据。
步骤730可以包括在利用纠错码对加密数据进行编码以生成具有第一数目的比特的中间数据之后,利用消息认证码可逆地改变中间数据,以生成用于存储在存储器中的带水印的数据,其中消息认证码是通过对用户密钥和地址应用密码函数而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。作为示例,存储器控制器(例如,图2的存储器控制器250)可以执行如关于图2和图3所描述的该步骤。在该示例中,在利用纠错码对加密数据进行编码以生成具有第一数目的比特的中间数据(例如,576比特,其中的512比特可以是数据比特,64比特可以是ECC位)之后,图2的水印逻辑260可以被用于由MAC可逆地改变中间数据以生成用于存储在存储器中的带水印的数据。示例的可逆改变包括但不限于在MAC和中间数据之间执行异或运算、基于MAC旋转中间数据、以及本质上可逆的其他改变。MAC和其他水印的额外示例参照图2在前面所描述的。尽管图7将流程图700描述为包括以特定顺序所执行的特定数量的步骤,但该方法可以包括以不同顺序所执行的额外步骤。
综上,本公开涉及一种在包括处理器和存储器的系统中的方法。该方法可以包括:接收用于存储在存储器中的地址处的数据。该方法还可以包括:在利用纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过对用户密钥和地址应用密码函数而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
该系统还可以包括存储器控制器,并且该方法还可以包括:存储器控制器基于与用户相关联的用户标识符生成用户密钥。该系统还可以包括管理程序,并且该方法还可以包括:管理程序将用户标识符指派给用户。用户可以包括用于无服务器功能的管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。
中间数据还可以包括元数据,并且该方法还可以包括:利用水印可逆地改变中间数据和元数据。
该方法还可以包括:响应于指定存储器中的地址的读取操作,在该地址处从存储器读取带水印的数据;通过利用用户密钥处理带水印的数据来重新计算对中间数据的先前应用的水印;以及移除先前应用的水印以生成第二中间数据。该方法还可以包括:使用纠错码对第二中间数据进行解码以生成解码数据;以及如果解码导致不可纠正的错误,则终止读取操作。
在又一方面,本公开涉及一种系统,系统包括主机服务器,该主机服务器包括耦合到存储器和处理器的存储器控制器。该系统还可以包括与主机服务器相关联的管理程序,该管理程序被配置为:管理多个计算实体。存储器控制器可以被配置为:(1)从多个计算实体中的一个计算实体接收数据以用于存储在存储器中的地址处,以及(2)在由纠错码对数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变中间数据以生成用于存储在存储器中的带水印的数据,其中水印是通过应用密码函数到地址而被生成的,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
管理程序还可以被配置为向计算实体指派用户标识符,并且其中存储器控制器还可以被配置为:基于与计算实体相关联的用户标识符来生成用户密钥。计算实体可以包括用于无服务器功能的管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。中间数据还可以包括元数据,并且存储器控制器还可以被配置为利用水印可逆地改变元数据。
存储器控制器还可以被配置为:响应于来自计算实体的、指定地址的读取请求,从存储器在该地址处读取带水印的数据;通过利用地址处理带水印的数据来重新计算对中间数据的先前应用的水印;以及移除先前应用的水印以生成第二中间数据。存储器控制器还可以被配置为:使用纠错码对第二中间数据进行解码以生成解码数据,以及如果解码导致不可纠正的错误,则终止读取请求。
在另一方面,本公开涉及一种被执行在包括处理器和存储器的主机服务器中的方法。该方法可以包括:从与主机服务器相关联的多个计算实体中的一个计算实体接收明文数据,以用于存储在存储器中的地址处。该方法还可以包括:至少使用与计算实体相关联的用户密钥来加密明文数据,以生成加密数据。该方法还可以包括:在利用纠错码对加密数据进行编码以生成具有第一数目的比特的中间数据之后,利用消息认证码可逆地改变中间数据,以生成用于存储在存储器中的带水印的数据,其中消息认证码是通过对用户密钥和地址应用密码函数而被生成,并且其中带水印的数据具有第二数目的比特,比特的第二数目等于比特的第一数目。
该系统还可以包括存储器控制器,并且该方法还可以包括:存储控制器基于与计算实体相关联的用户标识符来生成用户密钥。该方法还可以包括与主机服务器相关联的管理程序,该管理程序将用户标识符指派给计算实体。计算实体可以包括用于无服务器功能的管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。中间数据还可以包括元数据,并且该方法还可以包括利用水印可逆地改变中间数据和元数据。
该方法还可以包括:响应于来自计算实体的、指定地址的读取请求,从存储器在地址处读取带水印的数据,通过利用用户密钥处理带水印的数据来重新计算对中间数据的先前应用的水印,以及移除先前应用的水印以生成第二中间数据。该方法还可以包括:使用纠错码对第二中间数据进行解码以生成解码数据,以及如果解码导致不可纠正的错误,则终止读取请求,否则对解码数据进行解密,以生成第二明文数据。
应当理解,本文描述的方法、模块和组件仅仅是示例性的。备选地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。在抽象的但仍然明确的意义上,实现相同功能的组件的任何布置都有效地“关联”,从而实现所需的功能。因此,本文中组合以实现特定功能的任何两个组件可以被视为彼此“关联”,从而实现所需的功能,而不考虑架构或中间组件。同样,如此关联的任何两个组件也可以被视为彼此“可操作地连接”或“耦合”,以实现所需的功能。
与本公开中描述的一些示例相关联的功能还可以包括存储在非暂时性介质中的指令。本文使用的术语“非暂时性介质”是指存储数据和/或指令的任何介质,这些数据和/或者指令会导致机器以特定方式运行。示例性非暂时性介质包括非易失性介质和/或易失性媒体。非易失性介质例如包括硬盘、固态驱动器、磁盘或磁带、光盘或磁带、闪存、EPROM、NVRAM、PRAM或其他此类介质,或此类介质的联网版本。易失性介质包括例如动态存储器,诸如DRAM、SRAM、高速缓存或其他此类介质。非暂时性介质不同于传输介质,但可以与传输介质结合使用。传输介质用于向机器或从机器传输数据和/或指令。示例性传输介质包括同轴电缆、光纤电缆、铜线和无线介质,例如无线电波。
此外,本领域技术人员将认识到,上述操作的功能之间的边界仅仅是说明性的。可以将多个操作的功能组合成单个操作,和/或可以将单个操作的功能分布在附加操作中。此外,备选实施例可以包括特定操作的多个实例,并且可以在各种其他实施例中可以改变操作的顺序。
尽管本公开提供了具体示例,但是可以在不脱离如权利要求书中所述的本公开的范围的情况下进行各种修改和改变。因此,说明书和附图将被视为说明性的而非限制性的,并且所有这些修改都将被包括在本公开的范围内。本文中关于某些示例描述的任何益处、优点或问题的解决方案无意被解释为任何或所有权利要求的关键、必需或基本特征或元素。
此外,本文中使用的术语“一”或“一个”定义为一个或多个。此外,在权利要求中使用诸如“至少一个”和“一个或多个”之类的引言短语不应被解释为暗示通过不定冠词“一”或“一个”引入另一权利要求要素将包含所引入的权利要求要素的任何特定权利要求限制为仅包含一个这样的要素的发明,即使在同一权利要求中包括引言短语“一个或多个”或“至少一个”以及不定冠词,如“一”或“一个”的情况也是如此。定冠词的使用也是如此。
除非另有说明,否则“第一”和“第二”等术语用于任意区分这些术语所描述的元素。因此,这些术语无意指示这些元素的时间或其他优先级。

Claims (15)

1.一种在包括处理器和存储器的系统中的方法,所述方法包括:
接收用于存储在所述存储器中的地址处的数据;以及
在利用纠错码对所述数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变所述中间数据以生成用于存储在所述存储器中的带水印的数据,其中所述水印是通过对用户密钥和所述地址应用密码函数而被生成的,并且其中所述带水印的数据具有第二数目的比特,比特的所述第二数目等于比特的所述第一数目。
2.根据权利要求1所述的方法,其中所述系统还包括存储器控制器,并且所述方法还包括:所述存储器控制器基于与用户相关联的用户标识符生成所述用户密钥。
3.根据权利要求2所述的方法,其中所述系统还包括管理程序,并且其中所述方法还包括:所述管理程序将所述用户标识符指派给所述用户。
4.根据权利要求3所述的方法,其中所述用户包括用于无服务器功能的所述管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。
5.根据权利要求1所述的方法,其中所述中间数据还包括元数据,并且所述方法还包括:利用所述水印可逆地改变所述中间数据和所述元数据。
6.根据权利要求2所述的方法,还包括:
响应于指定所述存储器中的所述地址的读取操作,从所述存储器在所述地址处读取所述带水印的数据;
通过利用所述用户密钥处理所述带水印的数据来重新计算对所述中间数据的先前应用的水印;以及
移除所述先前应用的水印以生成第二中间数据。
7.根据权利要求6所述的方法,还包括:
使用所述纠错码对所述第二中间数据进行解码,以生成解码数据;以及
如果所述解码导致不可纠正的错误,则终止所述读取操作。
8.一种系统,包括:
主机服务器,包括存储器控制器,所述存储器控制器耦合到存储器和处理器;以及
管理程序,与所述主机服务器相关联,被配置为管理多个计算实体,其中所述存储器控制器被配置为:
从所述多个计算实体中的一个计算实体接收数据以用于存储在所述存储器中的地址处,以及
在利用纠错码对所述数据进行编码以生成具有第一数目的比特的中间数据之后,利用水印可逆地改变所述中间数据以生成用于存储在所述存储器中的带水印的数据,其中所述水印是通过对所述地址应用密码函数而被生成的,并且其中所述带水印的数据具有第二数目的比特,比特的所述第二数目等于比特的所述第一数目。
9.根据权利要求8所述的系统,其中所述管理程序还被配置为向所述计算实体指派用户标识符,并且其中所述存储器控制器还被配置为基于与所述计算实体相关联的所述用户标识符来生成用户密钥。
10.根据权利要求8所述的系统,其中所述计算实体包括用于无服务器功能的所述管理程序、虚拟机(VM)、微VM、微服务或单内核中的一项。
11.根据权利要求8所述的系统,其中所述中间数据还包括元数据,并且其中所述存储器控制器还被配置为:利用所述水印可逆地改变所述元数据。
12.根据权利要求8所述的系统,其中所述存储器控制器还被配置为:
响应于来自所述计算实体的、指定所述地址的读取请求,从所述存储器在所述地址处读取所述带水印的数据;
通过利用所述地址处理所述带水印的数据来重新计算对所述中间数据的先前应用的水印;以及
移除所述先前应用的水印以生成第二中间数据。
13.根据权利要求12所述的系统,其中所述存储器控制器还被配置为:使用所述纠错码对所述第二中间数据进行解码,以生成解码数据,以及如果所述解码导致不可纠正的错误,则终止所述读取请求。
14.一种在包括处理器和存储器的主机服务器中执行的方法,所述方法包括:
从与所述主机服务器相关联的多个计算实体中的一个计算实体接收明文数据,以用于存储在所述存储器中的地址处;
至少使用与所述计算实体相关联的用户密钥来加密所述明文数据以生成加密数据;以及
在利用纠错码对所述加密数据进行编码以生成具有第一数目的比特的中间数据之后,利用消息认证码可逆地改变所述中间数据,以生成用于存储在所述存储器中的带水印的数据,其中所述消息认证码是通过对所述用户密钥和所述地址应用密码函数而被生成的,并且其中所述带水印的数据具有第二数目的比特,比特的所述第二数目等于比特的所述第一数目。
15.根据权利要求14所述的方法,其中所述系统还包括存储器控制器,并且所述方法还包括:所述存储器控制器基于与所述计算实体相关联的用户标识符来生成所述用户密钥。
CN202180070779.2A 2020-10-16 2021-07-28 通过使用水印确保被存储在存储器中的数据的完整性 Pending CN116368773A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/072,144 US11664999B2 (en) 2020-10-16 2020-10-16 Ensuring the integrity of data stored in a memory by using a watermark
US17/072,144 2020-10-16
PCT/US2021/043354 WO2022081233A1 (en) 2020-10-16 2021-07-28 Ensuring the integrity of data stored in a memory by using a watermark

Publications (1)

Publication Number Publication Date
CN116368773A true CN116368773A (zh) 2023-06-30

Family

ID=77338952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070779.2A Pending CN116368773A (zh) 2020-10-16 2021-07-28 通过使用水印确保被存储在存储器中的数据的完整性

Country Status (4)

Country Link
US (1) US11664999B2 (zh)
EP (1) EP4229821A1 (zh)
CN (1) CN116368773A (zh)
WO (1) WO2022081233A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000030A (en) 1996-06-20 1999-12-07 Emc Corporation Software fingerprinting and branding
US8578116B2 (en) * 2006-03-28 2013-11-05 Broadcom Corporation System and method for memory data protection with secure pad memory
US8375225B1 (en) * 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
US9443107B2 (en) * 2013-02-19 2016-09-13 Qualcomm Incorporated Method for protecting the integrity of a group of memory elements using an aggregate authentication code
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
EP3563553B1 (en) * 2017-02-24 2022-02-16 NEC Corporation Method for signing a new block in a decentralized blockchain consensus network
US10540297B2 (en) 2017-08-03 2020-01-21 Arm Limited Memory organization for security and reliability
US10802910B2 (en) 2018-09-17 2020-10-13 Intel Corporation System for identifying and correcting data errors
KR102557993B1 (ko) 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
KR20210113906A (ko) * 2020-03-09 2021-09-17 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그 동작 방법
US11301344B2 (en) * 2020-06-16 2022-04-12 Intel Corporation Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates
US20200403779A1 (en) * 2020-09-02 2020-12-24 Intel Corporation Error resilient cryptographic units and methods
US11641272B2 (en) * 2020-09-18 2023-05-02 Intel Corporation Seamless one-way access to protected memory using accessor key identifier
US11709729B2 (en) * 2020-09-30 2023-07-25 Micron Technology, Inc. Performing error checking operations on encrypted write data in a memory sub-system

Also Published As

Publication number Publication date
WO2022081233A1 (en) 2022-04-21
US20220123940A1 (en) 2022-04-21
EP4229821A1 (en) 2023-08-23
US11664999B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
US11775447B2 (en) System, apparatus and method for page granular, software controlled multiple key memory encryption
US11755500B2 (en) Cryptographic computing with disaggregated memory
US9990249B2 (en) Memory integrity with error detection and correction
US10684945B2 (en) System, apparatus and method for providing key identifier information in a non-canonical address space
EP3716071B1 (en) Combined secure message authentication codes (mac) and device correction using encrypted parity with multi-key domains
CN112149148A (zh) 计算环境中存储器隔间的密码隔离
EP3758287A1 (en) Deterministic encryption key rotation
CN112149151A (zh) 用于微架构流水线的存储器加载单元和存储单元的加密计算引擎
US11693754B2 (en) Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates
CN112148642A (zh) 针对核中的所有权访问的存储器写入
CN114692176A (zh) 基于已编码指针的数据加密
US20200042500A1 (en) Collaborative compression in a distributed storage system
US20220121447A1 (en) Hardening cpu predictors with cryptographic computing context information
US11995006B2 (en) Algebraic and deterministic memory authentication and correction with coupled cacheline metadata
CN116260606A (zh) 与遗留外围设备的密态计算
US20220100907A1 (en) Cryptographic computing with context information for transient side channel security
US11664999B2 (en) Ensuring the integrity of data stored in a memory by using a watermark
US20240104027A1 (en) Temporal information leakage protection mechanism for cryptographic computing
US20240061792A1 (en) Data identity recognition for semiconductor devices
US20210117341A1 (en) Cache line slot level encryption based on context information
WO2023164167A2 (en) Techniques and devices for configurable memory encryption and authentication
WO2023235613A1 (en) Memory management with implicit identification of cryptographic keys using error correction data
CN117643013A (zh) 云原生部署的客户密钥保护

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