CN107771324A - 有效地存储初始化矢量 - Google Patents
有效地存储初始化矢量 Download PDFInfo
- Publication number
- CN107771324A CN107771324A CN201580079000.8A CN201580079000A CN107771324A CN 107771324 A CN107771324 A CN 107771324A CN 201580079000 A CN201580079000 A CN 201580079000A CN 107771324 A CN107771324 A CN 107771324A
- Authority
- CN
- China
- Prior art keywords
- counter
- packet
- cache line
- initialization vector
- cluster
- 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
-
- 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
- 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
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- 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
Abstract
示例涉及在系统中的初始化矢量的有效存储。一个示例便于确定用于在对存储器的第一页面的第一高速缓存行加密时使用的初始化矢量,其中确定初始化矢量包括:级联页面级计数器与第一组分级计数器。第一组分级计数器包括:与第一高速缓存行相关联的第一计数器;与高速缓存行的第一分组相关联的第一分组计数器,高速缓存行的第一分组包括第一高速缓存行;以及与高速缓存行分组的第一群集相关联的第一群集计数器,第一群集包括高速缓存行的第一分组。
Description
背景技术
在安全处理系统中,数据必须被保护而避开内部和外部对手。存储在安全处理系统中的数据常常被加密。该数据可在数据存储到系统内时由预先生成的加密填充加密。可基于初始化矢量和加密密钥来生成这些预先生成的加密填充。
附图说明
下面的详细描述参考附图,其中:
图1是用于初始化矢量的有效存储的示例系统的方框图;
图3是用于初始化矢量的有效存储的用于存储初始化矢量的高速缓存树的示例描绘;
图3是用于初始化矢量的有效存储的示例系统的方框图;
图4是用于初始化矢量的有效存储的示例方法的流程图;以及
图5是用于初始化矢量的有效存储的示例方法的流程图。
具体实施方式
下面的详细描述引用附图。在可能的情形下,相同的附图标记在附图和下面的描述中用于指代相同或相似的部件。虽然在这个文档中描述了几个示例,但是修改、改编和其它实现是可能的。相应地,下面的详细描述并不限制所公开的示例。替代地,所公开的示例的正确范围可由所附权利要求限定。
如上面提到的,在安全处理系统中,数据必须被保护而避开内部和外部对手。存储在安全处理系统中的数据常常被加密。该数据可在数据存储到系统内时由预先生成的加密填充加密。可基于初始化矢量和加密密钥来生成这些预先生成的加密填充。可在高速缓存行被传送时生成这些预先生成的加密填充。一旦高速缓存行被传送时,可以在加密填充和数据之间(例如,如在AES-Ctr模式加密中的)执行低时延操作(例如XOR)以生成加密数据。如果相同的初始化矢量值与相同的加密密钥一起被使用,则加密方案可能被破坏。因此,相同的初始化矢量值不能再次与相同的加密密钥一起被使用。
为了处理这个问题,安全处理系统将初始化矢量部分地实现为计数器,并且每当数据使用相同的加密密钥被加密时使初始化矢量递增。特别是,初始化矢量常常包括128位值,64位用于高速缓存行地址,而64位用于计数器。因此,如在本文使用的术语“使初始化矢量递增”可以是使初始化矢量的计数器部分递增,且初始化矢量值可以是初始化矢量的计数器的值。类似地,确定初始化矢量可以是确定初始化矢量的计数器的值。
初始化矢量的递增引起它自己的一组技术挑战。因为每当使用相同的加密密钥对数据加密时,不同的初始化矢量被使用,最新的初始化矢量值需要被存储,以便能够对所存储的数据解密。如果每个高速缓存行存储它自己的初始化矢量,则每个64字节高速缓存行将引起12.5%存储开销,导致存储和效率问题。这些存储和效率问题由于在高速缓存行中的初始化矢量上溢的潜在后果而恶化。因此,其中每个高速缓存行存储它自己的初始化矢量的解决方案可能对于大规模地在存储器系统中实现是在技术上有挑战性的。
对这个技术挑战的新技术解决方案涉及初始化矢量的有效存储。特别是,示例安全处理系统通过使用一组分级计数器来有效地存储初始化矢量,以用于将存储器中的数据的高速缓存行加密。在存储器中的每个高速缓存行可与相对应的高速缓存行计数器相关联。每组n个高速缓存行可共享单个分组计数器。每组的m组计时器可共享单个群集计数器,等等,直到高速缓存行的p个级别的树形成为止,其中m、n和p是大于或等于2的正整数。树的根可以是直接分级地连接到计数器的最高级别的页面级计数器。可然后通过级联与那个高速缓存行相关联的这分组计数器(例如第一计数器的数据、第一分组计数器的数据、第一群集计数器的数据等)来确定特定的高速缓存行的初始化矢量。
每当高速缓存行写入出现时,相对应的高速缓存行计时器将递增。如果高速缓存行计数器上溢,则与高速缓存行计数器相关联的分组计数器将递增,且与分组计数器相关联的所有高速缓存行计数器将被初始化。响应于上溢、分组计数器的递增和高速缓存行计时器的初始化,相对应的高速缓存行的数据将被重新加密。类似地,如果分组计数器上溢,则群集计数器将递增,且该组中的所有高速缓存行将再次被加密。这个模式将重复,直到最高级计数器递增到上溢为止。响应于最高级计数器上溢,页面计数器将递增,且在该页面中的所有高速缓存行将再次被加密。
实现初始化矢量的有效存储的示例计算机系统可使用在计数器的分级结构中的3个级别的计数器(例如,高速缓存行计数器、与高速缓存行的第一分组计数器相关联的分组计数器和与一组分组计数器相关联的群集计数器)。在这个示例中,系统可确定用于在对存储器的第一页面的第一高速缓存行加密时使用的初始化矢量。确定初始化矢量可包括将页面级计数器与和第一高速缓存行相关联的第一组分级计数器级联。第一组分级计数器可包括例如与第一高速缓存行相关联的第一计数器、与高速缓存行的第一分组相关联的第一分组计数器(其中高速缓存行的第一分组包括第一高速缓存行)以及与高速缓存行分组的第一群集相关联的第一群集计数器,其中第一群集包括高速缓存行的第一分组。如下面进一步讨论的,在计数器的分级结构中的3个级别的使用仅仅是示例,且不限于可被使用的级别的量。
现在参考附图,图1是用于初始化矢量的有效存储的示例系统100的方框图。在图1中描绘的示例中,系统100包括非暂时性机器可读存储介质120和处理器110。
现在参考附图,图1是用于初始化矢量的有效存储的示例系统100的方框图。系统100可包括服务器、大型计算机、笔记本计算机、桌上型计算机、平板计算机、工作站、移动设备、基于云的设备和/或适合于执行下面所述的功能的任何其它设备。在图1的实施例中,系统100包括非暂时性机器可读存储介质120和处理器110。
处理器110可以是一个或多个中央处理单元(CPU)、微处理器和/或适合于取回和执行存储在机器可读存储介质120中的指令的其它硬件设备。处理器110可取出、解码和执行程序指令121和/或其它指令以使初始化矢量的有效存储成为可能,如下所述。作为可替代的或除了取回和执行指令以外,处理器110可包括一个或多个电子电路,其包括用于执行一个或多个指令121和/或其它指令的功能的多个电子部件。
在一个示例中,程序指令121和/或其它指令可以是可由处理器110执行来实现在本文所述的功能的安装封装的部分。在这种情况下,存储器120可以是由计算设备维持的便携式介质,例如CD、DVD或闪存驱动器或存储器,安装封装可从便携式介质被下载和安装。在另一示例中,程序指令可以是已经安装在系统100上的一个或多个应用的部分。
非暂时性机器可读存储介质120可以是用于维持系统100可访问的数据的任何硬件存储设备。例如,机器可读存储介质120可包括一个或多个硬盘驱动器、固态驱动器、磁带驱动器、存储器结构和/或任何其它存储设备。存储设备可位于系统100中,可越过不同的地理上分布设备和/或在与系统100通信的另一设备中被定位。例如,机器可读存储介质120可以是存储可执行指令的任何电子、磁性、光学或其它物理存储设备。因此,机器可读存储介质120可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘、通用存储器等。如下面更详细描述的,可以使用用于初始化矢量的有效存储的可执行指令来对机器可读存储介质120编码。如下面详述的,存储介质120可维持和/或存储在本文描述的数据和信息。
例如,存储介质120可维持和/或存储与初始化矢量的有效存储有关的数据和信息。存储介质120可例如将存储器的每个页面的一组分级计数器存储在存储介质120中。
初始化矢量确定指令121当由处理器110执行时可便于初始化矢量的有效存储,以用于在对数据的高速缓存行加密时使用。对于存储器的每个页面,初始化矢量确定指令121当由处理器110执行时可确定存储器的那个页面的每个高速缓存行的初始化矢量。每个页面可与页面级计数器和用于存储初始化矢量的高速缓存树相关联。页面级计数器和高速缓存树可被存储为页面的部分,可连同与页面的相关联性(例如指针、链路等)一起存储在存储介质120中,和/或以由处理器可访问的另一方式。在一些示例中,页面级计数器也可以是高速缓存树的部分。
初始化矢量确定指令121当由处理器110执行时可经由高速缓存存储器将数据写到页面并取回数据。对于取回的或存储在高速缓存存储器中的每个高速缓存行,初始化矢量确定指令121当由处理器110执行时可根据需要对数据加密或解密。如上面提到的,初始化矢量确定指令121当由处理器110执行时可使用加密密钥(例如存储数据或从页面取回数据的用户的加密密钥)和初始化矢量对数据加密。也如上面提到的,每个高速缓存行与它自己的初始化矢量相关联。
当数据经由高速缓存存储器被写到页面并从页面取回时,初始化矢量确定指令121当由处理器110执行时可通过使用页面级计数器和高速缓存树来确定被写入的高速缓存树的适当的初始化矢量。高速缓存树可包括至少三个级别的分级计数器,包括页面级计数器。初始化矢量确定指令121当由处理器110执行时可通过将与待加密(或解密)的高速缓存行相关联的每个级别的高速缓存树的计数器进行级联来确定适当的初始化矢量。
在如上面提到的一些示例中,初始化矢量的计数器部分是64位。相应地,高速缓存树的所级联的计数器也具有64位的尺寸。在一些示例中,页面级计数器包括8位值或16位,使得在高速缓存树中的计数器的其余部分具有包括位的剩余数字的总值。所级联的计数器的尺寸应等于或稍微刻板地对应于初始化矢量的计数器部分的尺寸。
在图2中描绘了高速缓存树的示例。如图2所示,每个高速缓存行具有它自己的计数器(例如第一计数器221)。与相对应的高速缓存树相关联的一分组计数器(例如第一计数器221、…、第n计数器222)可在第一分组计数器220A下被分组。分组计数器的每组(例如220A、….、220M)可被分组为第一群集计数器210A。为了确定与第一计数器221相关联的高速缓存行的初始化矢量,初始化矢量确定指令121当由处理器110执行时可级联页面级计数器200、第一群集计数器210A、第一分组计数器220A和第一计数器221。类似地,为了确定与第n计数器234相关联的高速缓存行的初始化矢量,初始化矢量确定指令121当由处理器110执行时可级联页面级计数器200与p级群集计数器210N、第m分组计数器230N和第n计数器234。
高速缓存树中的级别的数量和在每个级别的节点的数量不限于在图2中描绘的示例。多于3个级别的计数器可以在高速缓存树中可用,且在每个级别的节点的数量可在级别当中不同。在一些示例中,初始化矢量的尺寸、页面级计数器的尺寸、高速缓存树的级别的数量和/或在页面的高速缓存树的每个级别的节点的数量可取决于数据的类型、应用、用户和/或与存储在那个页面中的数据相关联的其它特性。
实现初始化矢量的有效存储的示例计算机系统可使用在计数器的分级结构中的3个级别的计数器(例如高速缓存级计数器、与高速缓存行的第一分组计数器相关联的分组计数器和与一组分组的高速缓存行相关联的群集计数器)。在这个示例中,初始化矢量确定指令121当由处理器110执行时可确定用于在对存储器的第一页面的第一高速缓存行加密时使用的初始化矢量。初始化矢量确定指令121当由处理器110执行时可通过级联页面级计数器与和第一高速缓存行相关联的第一组分级计数器来确定初始化矢量。第一组分级计数器可包括例如与第一高速缓存行相关联的第一计数器、与高速缓存行的第一分组相关联的第一分组计数器(其中高速缓存行的第一分组包括第一高速缓存行)以及与高速缓存行分组的第一群集相关联的第一群集计数器,其中第一群集包括高速缓存行的第一分组。在一些示例中,第一组分级计数器可包括与每个级别的分级计数器的第一高速缓存行相关联的计数器。例如,使用图2的高速缓存树,初始化矢量确定指令121当由处理器110执行时可级联页面级计数器200、第一群集计数器210A、第一分组计数器220A和第一计数器221以确定在对第一高速缓存行加密时使用的初始化矢量。
初始化矢量确定指令121当由处理器110执行时也可管理用于对存储在页面中的数据加密和解密的高速缓存树和初始化指令。例如,初始化矢量确定指令121当由处理器110执行时可管理其中高速缓存树中的计数器上溢的过程。
下面是使用图2的高速缓存树的示例。响应于新数据被写到第一高速缓存行(与第一计数器221相关联),初始化矢量确定指令121当由处理器110执行时可以使第一计数器221递增。响应于使第一计数器221递增,初始化矢量确定指令121当由处理器110执行时可更新初始化矢量以包括递增的第一计数器221并使用所更新的初始化矢量来对第一高速缓存行加密。初始化矢量确定指令121当由处理器110执行时可然后使第一高速缓存行的加密数据被写到存储介质120。
在一些示例中,响应于第一计数器221递增,第一计数器221可上溢。响应于第一计数器221上溢,初始化矢量确定指令121当由处理器110执行时可使第一分组计数器220A递增。初始化矢量确定指令121当由处理器110执行时可响应于第一分组计数器220A递增而初始化第一分组计数器221、…、222。初始化矢量确定指令121当由处理器110执行时可通过将第一分组计数器置零来初始化第一分组计数器221、…、222和/或以另外方式初始化第一分组计数器221、…、222。响应于第一分组计数器221、…、222被初始化,初始化矢量确定指令121当由处理器110执行时可将与第一分组计数器221、…、222相关联的高速缓存行的数据重新加密。
在一些示例中,响应于第一分组计数器220A递增,第一分组计数器220A可上溢。响应于第一分组计数器220A上溢,初始化矢量确定指令121当由处理器110执行时可使第一群集计数器210A递增。初始化矢量确定指令121当由处理器110执行时可响应于第一群集计数器210A递增而初始化第一组分组计数器220A、…、220N。初始化矢量确定指令121当由处理器110执行时可通过将第一组分组计数器220A、…、220N置零来初始化第一组分组计数器220A、…、220N和/或以另外方式初始化第一组分组计数器220A、…、220N。响应于第一组分组计数器220A、…、220N被初始化,初始化矢量确定指令121当由处理器110执行时可初始化与在第一组分组计数器220A、…、220N中的每个分组计数器相关联的每分组计数器221、…、222、…223、…224。初始化矢量确定指令121当由处理器110执行时然后可将与初始化的计数器221、…、222、…223、…224相关联的高速缓存行的数据重新加密。
在一些示例中,响应于第一群集计数器210A递增,第一群集计数器210A可上溢。响应于第一群集计数器210A上溢,初始化矢量确定指令121当由处理器110执行时可使页面级计数器递增。响应于页面级计数器递增,初始化矢量确定指令121当由处理器110执行时可初始化每组群集计数器210A、…、210N。初始化矢量确定指令121当由处理器110执行时也可以用与在这个示例中在上面所述的方式相同或类似的方式初始化分组计数器和与每个高速缓存行相关联的计数器,并可对页面中的每个高速缓存行重新加密。
每当数据被请求、存储和/或以另外方式处理时,系统100可执行这个功能。
图3是用于初始化矢量的有效存储的示例系统300的方框图。如图系统100一样,系统300可包括服务器、大型计算机、笔记本计算机、桌上型计算机、平板计算机、工作站、移动设备、基于云的设备和/或适合于执行下面所述的功能的任何其它设备。如图1的系统100一样,处理器310可以是一个或多个CPU、微处理器和/或适合于指令的取回和执行的其它硬件设备。图3的非暂时性机器可读存储装置可与图1的存储介质120相同或类似。图3的非暂时性机器可读存储介质可存储与和在非暂时性机器可读存储介质中的存储器的每个页面相关联的初始化矢量有关的信息。在一些示例中,由非暂时性机器可读存储介质存储的信息可与由非暂时性机器可读存储介质120存储的信息相同或类似。
如下详述的,系统300可包括用于初始化矢量的有效存储的一系列引擎300。每个引擎可通常代表硬件和编程的任何组合。例如,引擎的编程可以是存储在非暂时性机器可读存储介质上的处理器可执行指令,且引擎的硬件可包括系统300的至少一个处理器以执行那些指令。此外或作为可选方案,每个引擎可包括一个或多个硬件设备,其包括用于实现下面所述的功能的电子电路。
初始化矢量确定引擎320可便于系统300的初始化矢量的有效存储。例如,在使用计数器的分级结构中的3个级别的计数器(例如高速缓存级别计数器、与高速缓存行的第一分组相关联的分组计数器和与一组分组的高速缓存行相关联的群集计数器)的系统300中,初始化矢量确定引擎320可确定用于在对存储器的第一页面的第一高速缓存行加密时使用的初始化矢量。初始化矢量确定引擎320可通过级联页面级计数器与和第一高速缓存行相关联的第一组分级计数器来确定初始化矢量。第一组分级计数器可包括例如与第一高速缓存行相关联的第一计数器、与高速缓存行的第一分组相关联的第一分组计数器(其中高速缓存行的第一分组包括第一高速缓存行)以及与高速缓存行分组的第一群集相关联的第一群集计数器,其中第一群集包括高速缓存行的第一分组。在一些示例中,第一组分级计数器可包括与在每个级别的分级计数器的第一高速缓存行相关联的计数器。
在一些示例中,初始化矢量确定引擎320可以用与系统100的初始化矢量确定指令121的方式相同或类似的方式来便于初始化矢量的有效存储。在上面关于图1的初始化矢量确定指令121来提供关于初始化矢量确定引擎320的示例实现的另外的细节。
图4是用于由计算设备执行的用于初始化矢量的有效存储的示例方法的流程图。
虽然下面所述的方法的执行参考图1的系统100和/或图3的系统300,用于执行这种方法的其它适当的设备将对本领域中的技术人员而言是显而易见的。图4和其它附图中描述的方法可以以存储在机器可读存储介质例如存储介质120中的可执行指令的形式由本文所述的一个或多个引擎和/或以电子电路的形式实现。
在操作400中,可将数据写到存储器的第一页面的第一高速缓存行。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可将数据写到第一高速缓存行。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式将数据写到第一高速缓存行。
在操作410中,可确定用于在对第一高速缓存行加密时使用的初始化矢量,其中初始化矢量可通过级联页面级计数器与第一组分级计数器来确定。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可确定初始化矢量。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式确定初始化矢量。
在操作420中,可使用所确定的初始化矢量来对第一高速缓存行加密。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可对第一高速缓存行加密。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式对第一高速缓存行加密。
图5是用于由计算设备执行的用于初始化矢量的有效存储的示例方法的流程图。
在操作500中,第一计数器可响应于新数据被写到第一高速缓存行而递增。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可使第一计数器递增。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式使第一计数器递增。
在操作510中,第一分组计数器可响应于第一计数器上溢而递增。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可使第一分组计数器递增。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式使第一分组计数器递增。
在操作520中,第一群集计数器可响应于第一分组计数器上溢而递增。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可使第一群集计数器递增。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式使第一群集计数器递增。
在操作530中,第一组分组计数器可响应于使第一群集计数器递增而被初始化。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可初始化第一组分组计数器。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式初始化第一组分组计数器。
在操作540中,高速缓存行的第一分组计数器可响应于第一计数器递增或上溢而被初始化。例如,系统100(和/或初始化矢量确定指令121、初始化矢量确定引擎320或系统100的其它资源)可初始化高速缓存行的第一分组计数器。系统100可以用与上面关于初始化矢量确定指令121的执行、初始化矢量确定引擎320或系统100的其它资源所述的方式类似或相同的方式初始化高速缓存行的第一分组计数器。
前述公开描述了用于初始化矢量的有效存储的多个示例实施方式。所公开的示例可包括用于初始化矢量的有效存储的系统、设备、计算机可读存储介质和方法。为了解释的目的,参考图1-5所示的部件描述了某些示例。然而,所示部件的功能可重叠,并可存在于更少或更大数量的元件和部件中。此外,所示元件的全部或部分功能可共同存在或分布在几个地理上分散的位置当中。而且,所公开的示例可在各种环境中实现,且不限于所示示例。
此外,关于图1-5所述的操作的顺序是示例,且不是要进行限制。额外的或更少的操作或操作的组合可以使用或可改变而不偏离所公开的示例的范围。此外,与所公开的示例一致的实现不需要以任何特定的顺序执行操作的序列。因此,本公开仅仅阐述实现的可能示例,且可对所述示例做出很多变化和修改。所有这样的修改和变化被规定为被包括在本公开的范围内并被下面的权利要求保护。
Claims (15)
1.一种用于初始化矢量的有效存储的系统,所述系统包括:实现存储在非暂时性机器可读存储介质上的机器可读指令的物理处理器,所述机器可读指令使所述系统用于:
确定用于在对存储器的第一页面的第一高速缓存行加密时使用的初始化矢量,其中,确定所述初始化矢量包括:
级联页面级计数器与第一组分级计数器,所述第一组分级计数器包括:
与所述第一高速缓存行相关联的第一计数器;
与高速缓存行的第一分组相关联的第一分组计数器,所述高速缓存行的第一分组包括所述第一高速缓存行;以及
与高速缓存行分组的第一群集相关联的第一群集计数器,所述第一群集包括所述高速缓存行的第一分组。
2.如权利要求1所述的系统,其中,所述第一页面的每个高速缓存行与以下相关联:相对应的计数器、与包括所述高速缓存行的相对应的分组相关联的相对应的分组计数器,以及与包括所述相对应的分组的相对应的群集相关联的相对应的群集计数器。
3.如权利要求1所述的系统,其中,所述物理处理器实现机器可读指令,所述机器可读指令使所述系统用于:
响应于新数据被写到所述第一高速缓存行而使所述第一计数器递增;
更新所述初始化矢量以包括递增的第一计数器;以及
使用更新的初始化矢量来对所述第一高速缓存行加密。
4.如权利要求3所述的系统,其中,所述物理处理器实现机器可读指令,所述机器可读指令使所述系统用于:
响应于所述第一计数器上溢而使所述第一分组计数器递增;以及
初始化与所述第一分组计数器相关联的第一组计数器。
5.如权利要求4所述的系统,其中,所述物理处理器实现机器可读指令,所述机器可读指令使所述系统用于:
响应于所述第一分组计数器上溢而使所述第一群集计数器递增;以及
初始化与所述第一群集计数器相关联的所述第一组分组计数器;以及
响应于初始化所述第一分组计数器而初始化与所述第一分组计数器相关联的所述第一组计数器。
6.如权利要求5所述的系统,其中,所述物理处理器实现机器可读指令,所述机器可读指令使所述系统用于:
响应于初始化所述第一分组计数器而初始化与所述第一分组计数器相关联的所述第一组计数器。
7.如权利要求6所述的系统,其中,所述物理处理器实现机器可读指令,所述机器可读指令使所述系统用于:
响应于将第二数据写到所述第一高速缓存行,通过以下来确定用于对所述第一高速缓存行的数据加密的第二初始化矢量:
级联递增的第一群集计数器、递增的第一分组计数器和递增的第一计数器。
8.一种用于将初始化矢量有效地存储在包括实现计算机可读指令的物理处理器的系统中的方法,所述方法包括:
将数据写到存储器的第一页面的第一高速缓存行;
确定用于在对所述第一高速缓存行加密时使用的初始化矢量;
使用确定的初始化矢量来对所述第一高速缓存行加密,其中,确定所述初始化矢量包括:
级联页面级计数器与第一组分级计数器,所述第一组分级计数器包括:
与所述第一高速缓存行相关联的第一计数器;
与高速缓存行的第一分组相关联的第一分组计数器,所述高速缓存行的第一分组包括所述第一高速缓存行;以及
与高速缓存行分组的第一群集相关联的第一群集计数器,所述第一群集包括所述高速缓存行的第一分组。
9.如权利要求8所述的方法,其中,所述第一页面的每个高速缓存行与以下相关联:相对应的计数器、与包括所述高速缓存行的相对应的分组相关联的相对应的分组计数器,以及与包括所述相对应的分组的相对应的群集相关联的相对应的群集计数器。
10.如权利要求8所述的方法,还包括:
响应于新数据被写到所述第一高速缓存行而使所述第一计数器递增;
响应于所述第一计数器上溢而使所述第一分组计数器递增;以及
初始化与所述第一分组计数器相关联的第一组计数器。
11.如权利要求10所述的方法,还包括:
响应于所述第一分组计数器上溢而使所述第一群集计数器递增;以及
初始化与所述第一群集计数器相关联的所述第一组分组计数器;以及
响应于初始化所述第一分组计数器而初始化与所述第一分组计数器相关联的所述第一组计数器。
12.如权利要求11所述的方法,还包括:
响应于初始化所述第一分组计数器而初始化与所述第一分组计数器相关联的所述第一组计数器。
13.如权利要求12所述的方法,还包括:
响应于将第二数据写到所述第一高速缓存行,通过以下来确定用于对所述第一高速缓存行的数据加密的第二初始化矢量:
级联递增的第一群集计数器、递增的第一分组计数器和递增的第一计数器。
14.一种包括用于有效地存储初始化矢量的指令的非暂时性机器可读存储介质,所述指令能够由系统的物理处理器执行以用于:
对于存储器的页面的每个高速缓存行,确定用于在对所述高速缓存行加密时使用的相对应的初始化矢量,其中,确定所述相对应的初始化矢量包括:
级联页面级计数器与相对应的一组分级计数器,所述相对应的一组分级计数器包括:
与相对应的高速缓存行相关联的相对应的计数器;
与高速缓存行的相对应的分组相关联的相对应的分组计数器,高速缓存行的第一分组包括所述相对应的高速缓存行;以及
与高速缓存行分组的相对应的群集相关联的相对应的群集计数器,所述相对应的群集包括所述高速缓存行的相对应的分组。
15.如权利要求14所述的非暂时性机器可读存储介质,还包括指令,所述指令能够由所述系统的物理处理器执行以用于:
响应于新数据被写到相对应的高速缓存行而使计数器递增;
更新所述初始化矢量以包括递增的计数器;以及
使用更新的初始化矢量来对所述相对应的高速缓存行加密。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/050632 WO2017048256A1 (en) | 2015-09-17 | 2015-09-17 | Efficiently storing initialization vectors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107771324A true CN107771324A (zh) | 2018-03-06 |
CN107771324B CN107771324B (zh) | 2021-11-26 |
Family
ID=58289608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079000.8A Active CN107771324B (zh) | 2015-09-17 | 2015-09-17 | 用于有效地存储初始化向量的系统、方法及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10649917B2 (zh) |
EP (1) | EP3262481B1 (zh) |
CN (1) | CN107771324B (zh) |
WO (1) | WO2017048256A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585809B2 (en) | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
US11263328B2 (en) * | 2018-09-13 | 2022-03-01 | Vmware, Inc. | Encrypted log aggregation |
FR3115647B1 (fr) * | 2020-10-28 | 2023-11-24 | Idemia Identity & Security France | Dispositif et procédé de traitement d’un message et d’émission de message LPWAN |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050642A1 (en) * | 2005-08-26 | 2007-03-01 | International Business Machines Corporation | Memory control unit with configurable memory encryption |
US20080044012A1 (en) * | 2006-08-15 | 2008-02-21 | Nokia Corporation | Reducing Security Protocol Overhead In Low Data Rate Applications Over A Wireless Link |
CN103620617A (zh) * | 2011-06-29 | 2014-03-05 | 英特尔公司 | 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 |
US20140270163A1 (en) * | 2013-03-14 | 2014-09-18 | Robert Bosch Gmbh | System And Method For Counter Mode Encrypted Communication With Reduced Bandwidth |
CN104620254A (zh) * | 2012-10-05 | 2015-05-13 | 英特尔公司 | 用于低开销的存储器重播保护的并行化的计数器攀树 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472285B2 (en) * | 2003-06-25 | 2008-12-30 | Intel Corporation | Apparatus and method for memory encryption with reduced decryption latency |
US7657756B2 (en) * | 2004-10-08 | 2010-02-02 | International Business Machines Corporaiton | Secure memory caching structures for data, integrity and version values |
US8473754B2 (en) * | 2006-02-22 | 2013-06-25 | Virginia Tech Intellectual Properties, Inc. | Hardware-facilitated secure software execution environment |
US7797751B1 (en) * | 2006-03-27 | 2010-09-14 | Oracle America, Inc. | Nonce structure for storage devices |
US8560848B2 (en) * | 2009-09-02 | 2013-10-15 | Marvell World Trade Ltd. | Galois/counter mode encryption in a wireless network |
JP5159849B2 (ja) * | 2010-09-24 | 2013-03-13 | 株式会社東芝 | メモリ管理装置及びメモリ管理方法 |
WO2013100964A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Method and system for protecting memory information in a platform |
US9262342B2 (en) * | 2012-12-20 | 2016-02-16 | Rambus Inc. | Process authenticated memory page encryption |
US8873750B2 (en) | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
FR3016064B1 (fr) | 2013-12-30 | 2017-03-31 | Thales Sa | Procede d'acces a des donnees stockees de maniere securisee dans une memoire non securisee, avec protection en integrite temporelle desdites donnees |
CN103746814B (zh) * | 2014-01-27 | 2018-04-20 | 华为技术有限公司 | 一种加密、解密的方法及设备 |
US9798900B2 (en) * | 2015-03-26 | 2017-10-24 | Intel Corporation | Flexible counter system for memory protection |
US20180349280A1 (en) * | 2017-06-02 | 2018-12-06 | Oracle International Corporation | Snoop filtering for multi-processor-core systems |
-
2015
- 2015-09-17 US US15/577,698 patent/US10649917B2/en active Active
- 2015-09-17 EP EP15904249.8A patent/EP3262481B1/en active Active
- 2015-09-17 CN CN201580079000.8A patent/CN107771324B/zh active Active
- 2015-09-17 WO PCT/US2015/050632 patent/WO2017048256A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050642A1 (en) * | 2005-08-26 | 2007-03-01 | International Business Machines Corporation | Memory control unit with configurable memory encryption |
US20080044012A1 (en) * | 2006-08-15 | 2008-02-21 | Nokia Corporation | Reducing Security Protocol Overhead In Low Data Rate Applications Over A Wireless Link |
CN103620617A (zh) * | 2011-06-29 | 2014-03-05 | 英特尔公司 | 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 |
CN104620254A (zh) * | 2012-10-05 | 2015-05-13 | 英特尔公司 | 用于低开销的存储器重播保护的并行化的计数器攀树 |
US20140270163A1 (en) * | 2013-03-14 | 2014-09-18 | Robert Bosch Gmbh | System And Method For Counter Mode Encrypted Communication With Reduced Bandwidth |
Non-Patent Citations (1)
Title |
---|
CHENYU YAN等: "Improving Cost, Performance, and Security of Memory Encryption and Authentication", 《PROCEEDINGS OF THE 33RD INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3262481B1 (en) | 2018-11-07 |
EP3262481A1 (en) | 2018-01-03 |
WO2017048256A1 (en) | 2017-03-23 |
CN107771324B (zh) | 2021-11-26 |
US20180165225A1 (en) | 2018-06-14 |
US10649917B2 (en) | 2020-05-12 |
EP3262481A4 (en) | 2018-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3757851B1 (en) | Management of keys for use in cryptographic computing | |
US20210240638A1 (en) | Mitigating security vulnerabilities with memory allocation markers in cryptographic computing systems | |
CN107851170B (zh) | 支持用于存储器地址范围的可配置安全级别 | |
CN104620254B (zh) | 用于低开销的存储器重播保护的并行化的计数器攀树 | |
US9483664B2 (en) | Address dependent data encryption | |
US9690704B2 (en) | Paging in secure enclaves | |
US10896267B2 (en) | Input/output data encryption | |
US7577851B2 (en) | Multitask execution apparatus and multitask execution method | |
EP4020298A1 (en) | Encoded pointer based data encryption | |
CN108351833B (zh) | 用来压缩密码元数据以用于存储器加密的技术 | |
US20160283405A1 (en) | Cache-less split tracker architecture for replay protection trees | |
US11270227B2 (en) | Method for managing a machine learning model | |
US20160335201A1 (en) | Data and instruction set encryption | |
CN103973431A (zh) | 一种基于OpenCL的AES并行化实现方法 | |
CN107771324A (zh) | 有效地存储初始化矢量 | |
CN109643283A (zh) | 管理飞地存储器页 | |
US10841090B2 (en) | Plaintexts encrypted with pluralities of keys | |
US9037624B1 (en) | Using memory access times for random number generation | |
US20200110891A1 (en) | Entropy data based on error correction data | |
JP7060115B2 (ja) | 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム | |
US20180307626A1 (en) | Hardware-assisted memory encryption circuit | |
CN108027866B (zh) | 具有轮常数生成的sms4加速处理器 | |
CN111279307B (zh) | 随机数生成器 | |
Stewart et al. | Improving High–Bandwidth TLS in the FreeBSD kernel | |
US10785031B2 (en) | Data encryption of a storage area |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |