CN105431862B - 针对存储器控制器的密钥旋转 - Google Patents

针对存储器控制器的密钥旋转 Download PDF

Info

Publication number
CN105431862B
CN105431862B CN201480041644.3A CN201480041644A CN105431862B CN 105431862 B CN105431862 B CN 105431862B CN 201480041644 A CN201480041644 A CN 201480041644A CN 105431862 B CN105431862 B CN 105431862B
Authority
CN
China
Prior art keywords
key
memory
data
key updating
address
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.)
Expired - Fee Related
Application number
CN201480041644.3A
Other languages
English (en)
Other versions
CN105431862A (zh
Inventor
P·林德曼
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.)
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN105431862A publication Critical patent/CN105431862A/zh
Application granted granted Critical
Publication of CN105431862B publication Critical patent/CN105431862B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

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

Abstract

描述了与针对存储器旋转密钥相关联的系统、方法和其他实施方式。在一个实施方式中,存储器系统包括存储器控制器,被配置为控制对存储器的访问并且处理存储器访问请求。密钥更新逻辑被配置为旋转曾用于扰乱存储器中数据的第一密钥并且通过以下操作来用第二密钥重新扰乱数据:确定存储器控制器何时处于空闲周期,并且在空闲周期期间对存储器的一部分执行密钥更新操作,以及当存储器控制器没有处于空闲周期时暂停密钥更新操作以允许存储器访问请求将被执行,并且在下一空闲周期期间恢复密钥更新操作。

Description

针对存储器控制器的密钥旋转
背景技术
这里为了总体上给出本公开内容的背景的目的而提供了背景技术描述。至于在此背景技术部分中所描述的工作以及在提交时可能无法被视为现有技术的描述方面,当前署名的发明人的工作既未明确也未隐含地被认可作为相对于本公开内容的现有技术。
黑客利用计算机系统或网络中的弱点从存储器获得数据。为了减少黑客能够读取不正当得到的数据的可能性,根据数学扰乱函数将数据扰乱(即,加密)。黑客继而需要发现曾用于扰乱数据的扰乱函数以便整理(即,解密)被扰乱的数据。为了发现扰乱函数,黑客可以攻击计算机系统的部件(诸如片上系统(SOC)),并且请求向存储器写入输入值。通过分析存储器的输出值与输入值,黑客可以试图反向工程扰乱函数的操作。黑客分析输出的时间越长,黑客将能够确定扰乱函数并使用该函数从存储器中整理被扰乱的数据的可能性越大。
在某些加密技术中,扰乱函数基于密钥。密钥是只有已经被授权读取被扰乱的数据的个体知道的信息片(例如,值、参数)。为了增加数据的安全性,密钥被定期改变以便改变扰乱函数,因此改变数据被扰乱和整理的方式。因为扰乱函数取决于密钥,因此定期改变密钥增加了存储器的安全性,这是由于黑客在扰乱函数改变之前具有更少的时间来发现扰乱函数。通常,当计算机系统在掉电之后被开启时,密钥在该计算机系统的最初启动顺序期间被改变。然而,在计算机系统被掉电并重新开启之前可能消逝了数周甚至数月,这使得数据更容易被整理。因此,撤销密钥并用新的密钥代替被撤销的密钥(被称为密钥旋转)减少了此易损性。然而,通常密钥旋转需要处理时间和大量资源,因此尽管减少了易损性但还是不常被进行。
发明内容
通常,在一个方面,本说明书公开了一种存储器系统,包括:存储器控制器,被配置为控制对存储器的访问并且处理存储器访问请求。密钥更新逻辑,被配置为旋转曾用于扰乱存储器中数据的第一密钥并且通过以下操作来用第二密钥重新扰乱数据:确定存储器控制器何时处于空闲周期,并且在空闲周期期间对存储器的一部分执行密钥更新操作;以及当存储器控制器没有处于空闲周期时暂停密钥更新操作以允许存储器访问请求将被执行,并且在下一空闲周期期间恢复密钥更新操作。
在另一方面,存储器系统进一步包括边界地址寄存器,其中密钥更新逻辑被配置为在边界地址寄存器中存储标识下一密钥更新操作的位置的边界地址。
在另一方面,存储器控制器被配置为向密钥更新逻辑发送指示存储器控制器处于空闲周期的密钥更新通知。
在另一方面,存储器系统进一步包括选择器逻辑,被配置为至少部分基于边界地址选择第一密钥还是第二密钥将用于处理存储器访问请求,边界地址指示哪个密钥曾被用于在存储器访问请求中指定的位置扰乱存储器。
在存储器系统的另一方面,密钥更新逻辑被配置为在存储器访问请求之间间歇地执行密钥更新操作。
在另一方面,存储器控制器被配置为通过以下操作执行针对所请求地址的读取访问请求:基于指示密钥更新操作的位置的边界地址确定所请求的地址在存储器的第一部分还是第二部分中,其中第一部分已经使用第一密钥扰乱并且第二部分已经由第二密钥扰乱;基于确定选择第一密钥或者第二密钥;以及使用所选定的密钥从所请求的地址解扰乱数据并且将所解扰乱的数据返回。
在存储器系统的另一方面,存储器控制器被配置为通过以下操作执行指示数据将在所请求的地址被写入的写入访问请求:基于指示密钥更新操作的位置的边界地址确定所请求的地址在存储器的第一部分还是第二部分中,其中第一部分已经使用第一密钥扰乱并且第二部分已经由第二密钥扰乱;基于确定选择第一密钥或者第二密钥;以及使用所选定的密钥从写入访问请求解扰乱数据并且将所解扰乱的数据写入存储器中所请求的地址。
在另一方面,存储器系统进一步包括扰乱寄存器,用于在边界地址处的数据由密钥更新逻辑密钥更新之前、在接收对访问存储器的访问请求时存储来自边界地址的数据。
在另一方面,存储器系统进一步包括功能逻辑,用于生成用以对边界地址处的数据进行密钥更新的功能,功能包括第一功能和第二功能,其中第一功能用于用第一密钥解扰乱数据并且第二功能用于用第二密钥重新扰乱数据。
在另一方面,存储器系统进一步包括密钥存储,用于存储并控制对第一密钥和所第二密钥的访问。
通常,在另一方面,本说明书公开了一种方法,包括:在存储器中设置针对密钥更新操作的边界地址,密钥更新操作针对存储器中的数据旋转密钥。响应于接收存储器访问请求,由存储器控制器处理对存储器的存储器访问请求。方法确定存储器控制器何时处于空闲周期并且响应于处于空闲周期,方法包括:在空闲周期期间对存储器中在边界地址处的一部分执行密钥更新操作;增加边界地址并且重复密钥更新操作;以及当存储器控制器没有处于空闲周期时暂停密钥更新操作以允许存储器访问请求将被执行,并且在下一空闲周期期间恢复密钥更新操作。
在方法的另一方面,执行密钥更新操作包括使用曾被用于扰乱在边界地址存储的数据的第一密钥解扰乱数据,用第二密钥重新扰乱数据,以及将所重新扰乱的数据存储在存储器中的边界地址。
在另一方面,确定存储器控制器何时处于空闲周期包括接收指示存储器控制处于空闲周期的密钥更新通知。
在另一方面,方法进一步包括至少部分基于边界地址选择第一密钥还是第二密钥将用于处理存储器访问请求。
在方法的另一方面,密钥更新操作在存储器访问请求的处理之间被间歇地执行。
在方法的另一方面,针对作为对所请求地址的读取访问请求的存储器访问请求,方法进一步包括:基于边界地址确定所请求的地址在存储器的第一部分还是第二部分中,其中第一部分已经使用第一密钥扰乱并且第二部分已经由第二密钥扰乱;基于确定选择第一密钥或者第二密钥;以及使用所选定的密钥从所请求的地址解扰乱数据并且将所解扰乱的数据返回。
通常,在另一方面,本说明书公开了一种方法,包括:在存储器中设置针对密钥更新操作的边界地址,密钥更新操作针对存储器中的数据旋转加密密钥,其中边界地址是存储器中用第一密钥加密的第一部分与存储器中用第二密钥加密的第二部分之间的边界;响应于接收针对存储器中所请求地址的访问请求:暂停密钥更新操作;将所请求的地址与边界地址比较以确定所请求的地址在存储器的第一部分还是第二部分中;基于比较选择第一密钥或者第二密钥;以及使用所选定的密钥处理访问请求。
在另一方面,方法进一步包括:确定当不存在有待完成的访问请求时的空闲周期;以及响应于空闲周期,恢复密钥更新操作以旋转加密密钥。
在另一方面,方法进一步包括在访问请求的处理之间间歇地执行密钥更新操作。
在另一方面,密钥更新操作至少部分基于密钥旋转间隔发起,并且密钥更新操作在存储器的空闲周期期间执行存储器中数据的密钥更新。
附图说明
结合于其中并且构成说明书一部分的附图图示了本公开内容的各种系统、方法和其它实施方式。图中所图示的元件界限(例如,框、框的群组或其它形状)表示边界的一个示例。在一些示例中,一个元件可以被设计为多个元件,或者多个元件可以被设计为一个元件。在一些示例中,被示为另一元件的内部组件的元件可以被实施为外部组件,并且反之亦然。
图1图示了与针对存储器控制器的密钥旋转相关联的系统的一个实施方式。
图2图示了与针对存储器控制器和密钥生成器的密钥旋转相关联的系统的一个实施方式。
图3图示了与针对存储器控制器和扰乱寄存器的密钥旋转相关联的系统的一个实施方式。
图4图示了与针对存储器控制器和功能逻辑的密钥旋转相关联的系统的一个实施方式。
图5图示了与针对存储器控制器和密钥存储的密钥旋转相关联的系统的一个实施方式。
图6图示了与用于对数据进行密钥更新的密钥旋转相关联的方法的一个实施方式。
图7图示了与处理在数据密钥更新没有完成时接收的存储器请求相关联的方法的一个实施方式。
具体实施方式
在数据加密中,密钥旋转是撤销曾用于扰乱数据集的第一加密密钥并且用不同的第二密钥代替第一密钥的过程。密钥旋转进一步包括根据第二密钥来对数据进行密钥更新。为了对数据进行密钥更新,数据用第一密钥解扰乱并且根据第二密钥重新扰乱。例如,为了密钥更新动态随机访问存储器(DRAM)的内容,DRAM的全部内容用第一密钥解扰乱并且根据第二密钥重新扰乱。旋转密钥并因此对数据进行密钥更新的过程可能漫长,需要大量资源,并且中断和/或延迟存储器的正常操作。
本文所述是与针对存储器控制器的密钥旋转相关联的系统、方法和其他实施方式的示例。在一个实施方式中,数据在存储器控制器的空闲周期期间被密钥更新以减少对数据进行密钥更新对存储器的正常操作的影响。例如,假设存储器控制器控制存储被扰乱的数据的存储器。在空闲周期,存储器控制器不处理对存储器的访问请求。相反地,在活动周期,存储器控制器处理访问请求以从存储器读取数据和/或向存储器写入数据。为了避免在活动周期期间中断对存储器的访问请求,数据在存储器控制器的空闲周期期间被解扰乱并重新扰乱。因此,密钥更新操作在存储器操作之间进行以允许正常存储器访问以及密钥更新。在一个实施方式中,密钥更新过程可以作为存储器控制器中的后台处理运行而不延迟或中断访问请求。
所公开的系统和方法提供了能够更频繁地重新扰乱数据的能力,其不依赖于计算机的系统重置或掉电。重新扰乱和密钥更新可以在存储器中允许存储器的继续操作的部分中执行。
图1图示了存储器系统的一个实施方式,该存储器系统包括用于旋转与存储器120和存储器控制器130相关联的加密密钥的密钥更新逻辑100。密钥更新逻辑100可以在计算系统或计算机可读介质中实现,并且可以作为存储器控制器130的一部分或者与存储器控制器130一起操作的单独部件实现。出于解释的目的,设备110a、110b、110c至110n被配置为经由存储器控制器130访问存储器120。存储器控制器130被配置为控制对存储器120的访问并且处理从设备110a-110n接收的存储器访问请求(例如,读取请求或写入请求)。
例如,当数据被写入存储器120时完成写入访问请求,以及当请求的数据从存储器120读取并返回至请求设备时完成读取访问请求。在一个实施方式中,存储器控制器130被实现为具有被配置为执行所公开功能的集成电路的硬件部件,可以是被配置为执行存储器请求的处理器和/或可以包括用于执行所公开功能的固件或可执行指令。
因此,存储器控制器130管理设备110a-110n与存储器120之间的数据流。示例设备110a-110n可以是计算机处理单元CPU、硬件设备、片上系统(SOC)设备或作为计算系统的一部分的其他部件,其中存储器控制器130也是其一部分(例如,在单个计算设备中)。存储器120是用于在计算设备中或为计算设备存储数据的设备,包括但不限于非易失性存储器(例如,闪存、只读存储器、可编程只读存储器)和易失性存储器(例如,随机访问存储器、动态随机访问存储器、静态随机访问存储器)。存储器控制器130可以被集成至具有存储器120的芯片(诸如SOC),配置为与存储器120分离的芯片,以及可以包括用于执行某些功能的固件。
当存储器控制器130不管理设备110a-110n与存储器120之间的数据流时,存储器控制器130空闲。当空闲时,存储器控制器130可用于密钥更新存储器120中存储的数据。在一个实施方式中,密钥更新逻辑100被配置为标识存储器控制器130的空闲时间段并且在空闲时间段期间控制存储器120中数据的密钥更新过程。
例如,密钥更新逻辑100被配置为以一个或多个方式确定存储器控制器130空闲。在一个实施方式中,密钥更新逻辑100监测存储器控制器130的活动以确定存储器控制器何时不处理存储器请求并因此空闲。监测可以包括检验持有存储器请求的队列,如果该队列为空,则密钥更新逻辑100确定控制器130空闲。在另一实施方式中,存储器控制器130被配置为发送由密钥更新逻辑100接收的密钥更新通知。该密钥更新通知指示存储器控制器130空闲并且可用于对数据进行密钥更新。在此实施方式中,密钥更新逻辑100在接收密钥更新通知之后发起密钥更新过程(或重启未完成的密钥更新过程)。
密钥更新过程可以处于两个不同的状态。一个状态是其中存储器中的所有数据先前已经被密钥更新(用旧的密钥)并且新的密钥更新过程开始(用新的密钥)。另一状态是其中密钥更新过程已经开始但还没有完成。因此,存储器120中的一部分数据已经用新的密钥进行了密钥更新而另一部分数据还没有被密钥更新(意味着该数据当前用旧的密钥设置密钥)。在一个实施方式中,由于密钥更新过程在控制器130的空闲时间段期间执行,因此密钥更新过程通常在存储器120中的所有数据被完全密钥更新之前开始和停止多次。
为了对数据进行密钥更新,存储器控制器130使用关于存储器120中开始密钥更新的位置以及哪个密钥用于对数据进行密钥更新的信息。最初,密钥更新在存储器120的开始地址(诸如地址0)开始并且从该位置开始对数据进行密钥更新连续地继续到结束地址。当然,也可以使用其他开始位置和/或顺序可以不是连续的。在密钥更新过程开始之后,密钥更新逻辑100通过最后被密钥更新的存储器地址来跟踪密钥更新过程的进度,并且在寄存器中记录将被密钥更新的下一地址。
例如,密钥更新逻辑100在边界寄存器140中设置并存储边界地址B以指示存储器120中将被密钥更新的下一地址。随着存储器120中的数据被密钥更新,边界地址B被移动以反映将被密钥更新的下一位置。当密钥更新过程由于存储器控制器130不再处于空闲状态而暂停/停止时,密钥更新逻辑100使用边界地址B作为重启点以在控制器130的下一空闲状态期间继续密钥更新过程。
边界地址B还被用于从存储器120中还没有被密钥更新的剩余部分中区分存储器120中已经被密钥更新的一部分。边界B一边上的地址将使用第一密钥而边界B另一边上的地址将使用第二密钥。例如,如图1所示,出于解释的目的假设存储器部分121中的数据已经用新的密钥进行了密钥更新并且存储器部分122中的数据用旧的密钥设置密钥并因此仍然需要被密钥更新。区分存储器中的不同部分允许存储器控制器130在密钥更新过程完全地密钥更新整个存储器之前继续处理存储器请求。存储器操作由未完成的密钥更新过程影响,这是因为某些数据用新的密钥扰乱(部分121)而其他数据用旧的密钥扰乱(部分122)。
因此,当处理存储器请求时,存储器控制器130将存储器请求中的地址与边界寄存器中的边界地址B进行比较。该比较结果指示存储器请求是请求存储器部分121还是122中的地址。取决于地址所处的部分,存储器控制器130选择并使用与存储器部分相关联的适当密钥(例如,新的密钥或旧的密钥)。存储器请求继而用适当密钥处理以扰乱/解扰乱存储器120的相关联部分中的数据。
例如,假设存储器120中没有数据被密钥更新;边界地址B被密钥更新逻辑100设置为存储器120的第一地址(例如,存储器地址0)。存储器控制器130在边界寄存器140中存储边界地址B以指示密钥更新应当从存储器120的第一地址中存储的数据开始。在存储器控制器130的空闲周期期间,密钥更新逻辑100从边界寄存器140获取边界地址B并且向存储器控制器130提供该边界地址。存储器控制器130继而可以获取边界地址B的数据或者等待获取边界地址B的数据直到存储器控制器130接收用于密钥更新的密钥。
在另一示例中,考虑到存储器120的第一部分121已经被密钥更新并且第二部分122还没有被密钥更新。边界地址B被设置为第二部分122中的第一地址以指示第二部分122中的第一地址应当在存储器控制器130的下一空闲周期期间被密钥更新。当存储器控制器130处于空闲时,存储器控制器130将从存储器120中边界地址B处存储的数据开始增加地密钥更新存储器120中存储的数据。
在一个实施方式中,选择器逻辑150被配置为存储与存储器120一起使用的多个密钥,选择要使用的密钥以便对数据进行密钥更新,以及向存储器控制器130提供选定的密钥。在一个实施方式中,选择器逻辑150被实现为密钥更新逻辑100的功能。存储器控制器130使用由选择器逻辑150选择的密钥和边界地址B来对数据进行密钥更新。
例如,如上所述,为了对边界地址B的数据进行密钥更新,选择器逻辑150提供第一密钥151(例如,旧的密钥)以解扰乱存储器120中该地址处的数据。第一密钥151是曾用于最初扰乱数据的密钥。存储器控制器130继而接收第二密钥152(例如,新的密钥)以重新扰乱边界地址B的数据。在一个实施方式中,存储器控制器130可以请求第二密钥152以在存储器控制器130确定该地址的数据已经被解扰乱时重新扰乱来自选择器逻辑150的数据。因此,边界地址的数据被密钥更新并且边界地址B被增加到存储器中的下一地址。
存储器控制器130继而将新的边界地址B存储在边界寄存器140中。密钥更新过程针对新的边界地址处存储的数据重复,并且该过程迭代地继续通过存储器120中的数据直到所有数据被密钥更新。但是,如先前所述,密钥更新过程在存储器控制器130的空闲时间段期间执行。当存储器控制器130接收存储器请求并因此不再空闲时,密钥更新过程被暂停/停止。因此,密钥更新过程可以在完成之前开始和暂停多次。
本技术允许存储器请求在暂停的密钥更新过程期间处理而不延迟或中断存储器请求。该技术还允许存储器120中的数据被密钥更新同时存储器系统处于操作状态。因此,系统(密钥更新逻辑100和存储器控制器130)被配置为基于系统的状态或条件在处理存储器操作与执行密钥更新操作之间循环或者交替。
因此,密钥旋转(包括数据的密钥更新)不需要附加资源。反而,密钥旋转可以作为后台处理出现,由此减少对存储器控制器130和存储器120的正常操作的延迟和中断。同样,与当计算机系统掉电并重新开启以影响密钥旋转时的情况相反,这里,存储器120中存储的数据在密钥更新过程期间仍然可访问。此外,在所述的实施方式中,存储器120的内容不需要一次全部密钥更新。反而,访问请求可以通过选择与存储器120中正被访问的部分相关联的密钥来处理。
图2图示了与针对存储器控制器130的密钥旋转相关联的密钥更新逻辑100的另一实施方式,其中密钥更新逻辑100包括密钥生成器逻辑210用于生成新的密钥。密钥更新逻辑100以与针对图1所述的相似方式操作,但具有附加的功能。为了解释的简单,图1中描述了两个密钥(第一密钥151和第二密钥152)。然而,更多密钥可以被使用。在图2的实施方式中,示出了三个密钥:第一密钥151、第二密钥152和第三密钥153,其可以用于通过三种不同的方式来扰乱存储器120中的数据。因此,密钥更新逻辑100被配置为将多个边界地址(例如,B1和B2)存储在边界寄存器140中以标识存储器120的哪部分对应于哪个密钥。
在一个实施方式中,密钥生成器逻辑210被配置为生成新的密钥,使得旧的密钥可以被撤销。例如,在某一时刻,存储器120的密钥更新将取得进步,使得不再有存储器120中存储的数据根据第一密钥151设置密钥。密钥更新逻辑100可以决定撤销(例如,丢弃)第一密钥151并使用密钥生成器逻辑210生成新的密钥来代替第一密钥151。密钥生成器逻辑210可以包括随机数生成器或算法生成器以生成密钥。密钥可以按照需要基于预先定义的时间表或其他条件被撤销并代替。
如上文所述,密钥更新逻辑100基于系统的状态或条件控制密钥更新过程。例如,密钥更新逻辑100可以使用存储器控制器130的空闲周期来对数据进行密钥更新,使用时间表来发起密钥更新,或者一旦存储器120中预定百分比的数据已经被密钥更新就对数据进行自动密钥更新。在另一实施方式中,密钥更新逻辑100可以在距上次密钥更新过程消逝预定时间量时旋转密钥。
例如,密钥更新逻辑100可以被配置为基于密钥旋转间隔旋转密钥并且可以针对存储器的不同部分使用不同密钥。例如,如果间隔是十五(15)秒,则数据在第一15秒间隔中根据第一密钥151密钥更新,数据的下一部分在第二15秒间隔中根据第二密钥152密钥更新,以及接下来部分中的数据在第三15秒间隔中根据第三密钥153密钥更新。在一个实施方式中,密钥旋转间隔可以由从存储器控制器130观察到的空闲周期量以及存储器120中被密钥更新的总大小确定。为了增加安全性级别,密钥旋转间隔可以被缩短。
假设15秒没有足够时间用于密钥更新存储器120的全部内容。为了标定存储器120中已经用特定密钥密钥更新的各部分,密钥更新逻辑100通过在边界寄存器140中设置多个边界地址来跟踪针对每个密钥的密钥更新进度。例如,存储器120的第一部分221被定义为在边界地址B1之前(例如,从地址0到B1)。在上文给定的示例中,第一部分221根据第一密钥151设置密钥。同样地,第二部分222被定义为在边界地址B2之前(例如,从地址B1+1到B2)并且根据第二密钥152设置密钥。第三部分223被定义为在边界地址B2之后(例如,从地址B2+1到最后的地址)并且根据第三密钥153设置密钥。因此,多个边界地址可以用于在使用三个或更多个密钥时定义存储器120中的边界。
在另一实施方式中,密钥更新逻辑100可以被配置为响应于对存储器120的预定数目的存储器访问请求被执行(例如,设置阈值)旋转密钥。例如,一旦存储器控制器130接收到100个存储器请求,密钥更新逻辑100就可以旋转密钥。密钥旋转还可以基于与计算机系统相关联的部件及其使用方式而发起。在一个实施方式中,密钥更新逻辑100基于针对存储器控制器130消逝的空闲周期的数目和/或存储器120的大小旋转密钥。备选地,密钥更新逻辑100可以至少部分基于可用的密钥数目旋转密钥。例如,可用的密钥越多,密钥更新逻辑100可以越频繁地旋转密钥并且重新扰乱存储器120。
在另一实施方式中,密钥更新逻辑100可以响应于密钥更新过程完成连续地旋转可用密钥。例如,当存储器120的所有数据已经根据第一密钥151密钥更新时,新的密钥更新过程被发起并且数据继而根据第二密钥152密钥更新。一旦所有数据已经根据第二密钥152密钥更新,数据继而根据第三密钥153密钥更新,然后数据再次用第一密钥151密钥更新。因此,如果存在三个可用的密钥,该过程循环通过三个密钥并且重复。因此,可用密钥可以被重复使用。
图3图示了类似于图1包括密钥更新逻辑100并且还包括扰乱寄存器360的存储器系统的另一实施方式。密钥更新逻辑100和存储器控制器130以上文针对图1所述的相似方式操作。扰乱寄存器360用于在密钥更新过程期间持有并处理数据。例如,扰乱寄存器360由存储器控制器130用于存储已经从存储器120读取但还没有根据将应用于存储器120的新的密钥扰乱的数据。当密钥更新过程在完成之前被中断或暂停时,数据可以被持有在扰乱寄存器360中。
此情况可以在存储器控制器130的空闲周期不足够长以解扰乱并且重新扰乱在存储器120中的地址处存储的当前正被密钥更新的数据时出现。如先前所述,在密钥更新过程期间的某些点,存储器控制器130可以接收存储器请求并因此从空闲周期改变到活动周期。此事件使得密钥更新操作在数据被解扰乱和/或重新扰乱之前被暂停。因此,从存储器120读取并且等待将被密钥更新的数据被存储在扰乱寄存器360中。如果密钥更新的过程被中断,则一旦密钥更新过程被重新启动,扰乱寄存器360中存储的数据就可以在随后的空闲周期中被密钥更新。一旦数据被密钥更新,存储器控制器130就将重新扰乱的数据以从其读取的地址重新存储在存储器120中。备选地,响应于存储器控制器130接收存储器访问请求,存储器控制器130可以从扰乱寄存器360中的边界地址B存储数据。
图4图示了包括实现扰乱/解扰乱功能的功能逻辑400的存储器控制器130的另一实施方式。存储器控制器130以针对图1所述的相似方式操作。如先前所述,密钥更新逻辑100向存储器控制器130提供从其开始密钥更新的边界地址B,并且选择器逻辑150向存储器控制器130提供密钥更新边界地址B的数据所需的密钥。
在一个实施方式中,存储器控制器130的功能逻辑400被配置为使用密钥更新逻辑100向存储器控制器130提供的边界地址B和密钥来生成可以扰乱和/或整理数据的扰乱函数。考虑到其中存储器120的数据正根据第二密钥152密钥更新但先前用第一密钥151扰乱的示例。存储器120的数据因此正根据第一密钥解扰乱继而根据第二密钥152重新扰乱。
在一个实施方式中,功能A 410被配置为将密钥与边界地址组合并且使用该组合生成功能B 420。功能B 420根据第二密钥152扰乱边界地址B的数据。功能A 410还用于生成功能C 430。在一个实施方式中,功能C 430是功能B 420的逆功能。功能C 430用于基于功能A 410中提供的密钥解扰乱边界地址B的数据。当然,还可以实现其他类型的扰乱/解扰乱函数。
图5图示了包括密钥更新逻辑100、存储器控制器130和密钥存储510的密钥更新系统的一个实施方式。密钥更新逻辑100以上文针对图1和/或其他附图描述的相似方式操作。然而,与图1中所述的实施方式不同,扰乱密钥(例如,第一密钥151和第二密钥152)不与选择器逻辑150一起存储。反而,密钥存储510存储并控制对密钥的访问。在一个实施方式中,密钥存储510可以是安全处理器或存储器负责在请求时存储并加载密钥。
如上文所述,选择器逻辑150选择适当的密钥将用于解扰乱和/或重新扰乱边界地址B的数据。通过密钥存储510中存储的密钥,选择器逻辑150被配置为代表存储器控制器130从密钥存储510请求选定的密钥。如果请求被批准,则密钥存储510向存储器控制器130加载密钥。当存储器控制器130从密钥存储510接收密钥(例如,第一密钥151)时,存储器控制器130解扰乱从边界地址B读取的数据并且继续密钥更新过程。同样地,其他可用密钥可以被请求并从密钥存储510加载到存储器控制器。通过此方式,密钥存储510提供了附加的安全层。
图6图示了与先前所述密钥旋转和对数据进行密钥更新相关联的方法600的一个实施方式。方法600是在存储器操作的空闲周期期间执行数据的密钥更新使得密钥更新过程被中断和暂停以允许存储器操作被执行的计算机实现的过程。密钥更新过程继而在下一空闲周期期间恢复。换言之,正常存储器访问在计算机中执行并且密钥更新操作在空闲周期期间被嵌入或插入在存储器操作之间。因此,密钥更新过程不限于在其中密钥更新针对整个存储器执行并且存储器操作不执行的系统重置或上电期间执行。
最初,在610,设置密钥更新将从其开始的边界地址。例如,密钥更新从最低存储器地址(例如,0)开始并且向最高存储器地址前进。在密钥更新开始并且随后被暂停之后,边界地址指示密钥更新将恢复的位置。
在620,方法确定存储器控制器是否空闲。如先前所解释,当不存在存储器访问请求未决时,存储器控制器是空闲的。在一个实施方式中,可以从存储器控制器接收指示空闲周期的通知,或者存储器请求队列可以被检验以查看该队列是否为空。如果控制器空闲,则方法去往框630,其中密钥更新过程开始或恢复,并且存储器中边界地址处的数据被读取。
在640,适当密钥(第一密钥)从可用密钥集中选择以解扰乱数据。第一密钥是最初曾用于扰乱数据并且现在用于将数据解扰乱到其原始形式的密钥。在650,新的扰乱密钥(第二密钥)被选择并且数据使用第二密钥重新扰乱。通常,扰乱和解扰乱使用与密钥组合的一个或多个函数加密或解密数据。重新扰乱的数据继而被存储回到存储器中它的地址。
在660,边界地址被增加到下一存储器地址。密钥更新过程确定整个存储器是否已经被重新扰乱。这可以通过将当前边界地址与最后的存储器地址进行比较来确定。如果整个存储器已经被重新扰乱,则旧的密钥(第一密钥)不再需要并且被丢弃。新的密钥(第二密钥)被设置为针对存储器的新的主密钥直到其被新的密钥代替。密钥更新过程结束并等待直到下一密钥更新间隔或条件出现以再次密钥更新存储器。
如果在660密钥更新过程未完成,则方法返回620并且如果存储器控制器仍然空闲则重复。如果控制没有空闲,则方法去往670,其中密钥更新过程被暂停,并且在680,一个或多个存储器访问操作被执行。过程返回到620并重复。
在一个实施方式中,存储器访问操作被给予比密钥更新操作更高的优先权,使得密钥更新被中断和/或暂停以便处理访问请求。在另一实施方式中,阈值可以被设置以允许处理一定数目的访问请求继而处理一定数目的密钥更新操作。在任何一种情况下,由于存储器没有完整地一次全部被密钥更新,因此存储器将具有用不同密钥扰乱的两个数据区域。区域由边界地址定义。如此,存储器访问操作取决于正被访问的区域和对应的密钥。这已经先前针对系统图进行了描述,并且现在将针对图7中所示的流程图进行描述。
图7图示了与处理实现先前所述密钥旋转技术(例如,作为图6的框680的一部分)的存储器系统中的存储器请求相关联的方法700的一个实施方式。由于如先前所述数据的密钥更新可以被中断和未完成,因此存储器的不同部分可以用不同的密钥扰乱。方法700将针对存储器描述,该存储器具有由于密钥更新过程没有被全部完成而用两个不同密钥扰乱的两个存储器部分。因此,存储器访问请求基于存储器中地址的位置以及对应的密钥处理。访问请求的地址中的数据需要用曾用于扰乱数据的密钥解扰乱以便正确地获取原始数据。
在710,方法通过接收针对存储器中地址处数据的存储器访问请求(例如,读取请求)发起。为了提供准确的数据,该地址处的数据需要在返回作为访问请求的结果之前被解扰乱。针对存储器的各部分确定适当的密钥。在720,边界地址例如从边界寄存器获取。如先前示例,边界地址指示密钥更新过程的当前位置并且因此指示存储器的第一部分(用新的密钥进行密钥更新的部分)与第二部分(需要密钥更新的部分,数据用旧的密钥扰乱)之间的边界。因此,边界地址可以用于确定访问请求中的地址是在存储器的第一部分还是存储器的第二部分。因此,边界地址用于标识哪个密钥用于解扰乱存储器中的数据。
在730,确定地址是否在存储器的第一部分中。如果请求的地址在存储器的第一部分中(例如,在边界地址以下),则方法去往其中第一密钥被选择用于解扰乱数据的框740。在750,第一密钥被提供给存储器控制器以解扰乱所请求地址中存储的数据。在760,所请求地址处的数据用提供的密钥解扰乱并且数据返回到请求者。
备选地,如果在730确定地址在存储器的第二部分中(例如,等于或高于边界地址),则方法去往其中第二密钥被选择用于解扰乱数据的770。在780,第二密钥被提供给存储器控制器。继而在760,数据用第二密钥解扰乱,并且数据被返回到请求者。针对下一存储器请求重复该过程。
如果存储器访问请求是写入请求,则该过程略微不同,这是由于待写入的数据首先用取决于数据将被写入的存储器的哪个部分的适当密钥扰乱。例如,方法基于边界地址(例如,将所请求的写入地址与边界地址比较)确定存储器中所请求的写入地址所处的部分。如果所请求的写入地址处于第一部分,则待写入的数据用第一密钥扰乱,否则数据用第二密钥扰乱。继而,所扰乱的数据被写入所请求的写入地址处的存储器位置。在一个实施方式中,存储器控制器被配置为执行这些功能。
如果存储器的密钥更新过程在方法700的过程期间仍然未决,则当存储器控制器变成空闲并且没有访问请求要处理时,方法600被调用并且密钥更新过程恢复用于在边界地址的下一数据。
通过所述技术,存储器中存储的数据不需要在可以访问存储器的数据之前被完全密钥更新。反而,存储器中存储的数据间歇地在各部分中被密钥更新,同时存储器操作被允许在密钥更新过程期间继续。因此,密钥旋转不关闭存储器或者要求仅在系统重启/重置时执行。
下文包括本文采用的所选择术语的定义。该定义包括落入术语范围之内并且可以用于实施方式的组件的各种示例和/或形式。示例并非意在进行限制。单数和复数形式的术语都可以处于定义之内。
对“一个实施方式”、“实施方式”、“一个示例”、“示例”等的引用指示这样描述的实施方式(多个)或示例(多个)可以包括特定的特征、结构、特性、属性、要素或限制,但是并非每个实施方式或示例都必然包括该特定的特征、结构、特性、属性、要素或限制。此外,短语“在一个实施方式中”的重复使用并非必然是指代相同的实施方式,虽然其可以如此。
如本文所使用的“计算机存储介质”是存储被配置为执行任意所公开功能的指令和/或与其组合的数据的非瞬态介质。计算机存储介质可以采取各种形式,包括但不限于:非易失性介质和易失性介质、非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存储器、动态存储器等。计算机存储介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其他磁介质、ASIC、紧致盘、其他光介质、RAM、ROM、存储器片或卡、存储器棒以及可以存储计算机指令和/或数据的其他电子介质。
如本文所使用的“逻辑”包括计算机或电硬件、部件、固件、存储指令的非瞬态计算机存储介质,和/或被配置为执行任意所公开的功能或动作和/或使得来自另一逻辑、方法和/或系统的功能或动作的这些部件的组合。逻辑可以包括由被配置为执行任意所公开的功能的算法控制的微处理器、离散逻辑(例如,ASIC)、模拟电路、数字电路、编程逻辑设备、包含在被执行时执行算法的指令的存储器设备,等等。逻辑可以包括一个或多个门电路、门电路的组合或者其他电路部件。在描述多个逻辑的情况下,可能将多个逻辑整合到一个物理逻辑部件中。类似地,在描述单个逻辑单元的情况下,可以将单个逻辑单元分布在多个物理逻辑部件之间。
虽然出于解释的简明的目的,但是所图示的方法作为一系列的框被示出并描述。该方法并不被框的顺序所限制,因为一些框可以以与所示出并描述的不同顺序进行和/或与其它框同时进行。此外,可以使用比所有所图示的更少的框来实施示例方法。框可以被合并或者被划分为多个组成部分。此外,附加和/或备选的方法可以采用框中未图示的附加动作。
就在具体实施方式或权利要求书中采用术语“包括”或“包括了”而言,以与术语“包含”相类似的方式,如果该术语在权利要求中被用作变过渡词时所解释的,其意在是包含性的。
虽然已经通过描述示例而对示例系统、方法等进行了阐述,并且已经对示例进行了相当详细地解释,但是申请人并非意在将所附权利要求的范围局限于或以任何方式限制为这样的细节。显然,不可能出于描述本文所描述的系统、方法等的目的而对组件或方法的每种可想到的组合进行描述。因此,本公开内容并不限于所示出并描述的具体细节、代表性装置和说明性示例。因此,本公开意在包括落入所附权利要求书范围之内的变化、修改和改变。

Claims (19)

1.一种存储器系统,包括:
存储器控制器,被配置为控制对存储器的访问并且处理存储器访问请求;以及
密钥更新逻辑,被配置为旋转曾用于扰乱所述存储器中数据的第一密钥并且通过以下操作来用第二密钥重新扰乱所述数据:
确定所述存储器控制器何时处于空闲周期,并且在所述空闲周期期间对所述存储器的一部分执行密钥更新操作;以及
当所述存储器控制器没有处于空闲周期时暂停所述密钥更新操作以允许存储器访问请求将被执行,并且在下一空闲周期期间恢复所述密钥更新操作;
其中所述密钥更新逻辑还被配置为至少部分基于密钥旋转间隔来发起所述密钥更新操作,所述密钥旋转间隔由从所述存储器控制器确定的空闲周期量以及被密钥更新的所述存储器的总大小确定。
2.根据权利要求1所述的存储器系统,进一步包括边界地址寄存器,其中所述密钥更新逻辑被配置为在所述边界地址寄存器中存储标识下一密钥更新操作的位置的边界地址。
3.根据权利要求1所述的存储器系统,其中所述存储器控制器被配置为向所述密钥更新逻辑发送指示所述存储器控制器处于所述空闲周期的密钥更新通知。
4.根据权利要求1所述的存储器系统,进一步包括选择器逻辑,被配置为至少部分基于边界地址选择所述第一密钥还是所述第二密钥将用于处理存储器访问请求,所述边界地址指示哪个密钥曾被用于在所述存储器访问请求中指定的位置扰乱所述存储器。
5.根据权利要求1所述的存储器系统,其中所述密钥更新逻辑被配置为在存储器访问请求之间间歇地执行所述密钥更新操作。
6.根据权利要求1所述的存储器系统,其中所述存储器控制器被配置为通过以下操作执行针对所请求地址的读取访问请求:
基于指示所述密钥更新操作的位置的边界地址确定所请求的地址在所述存储器的第一部分还是第二部分中,其中所述第一部分已经使用所述第一密钥扰乱并且所述第二部分已经由所述第二密钥扰乱;
基于所述确定选择所述第一密钥或者所述第二密钥;以及
使用所选定的密钥从所请求的地址解扰乱数据并且将所解扰乱的数据返回。
7.根据权利要求1所述的存储器系统,其中所述存储器控制器被配置为通过以下操作执行指示数据将在所请求的地址被写入的写入访问请求:
基于指示所述密钥更新操作的位置的边界地址确定所请求的地址在所述存储器的第一部分还是第二部分中,其中所述第一部分已经使用所述第一密钥扰乱并且所述第二部分已经由所述第二密钥扰乱;
基于所述确定选择所述第一密钥或者所述第二密钥;以及
使用所选定的密钥从所述写入访问请求扰乱所述数据并且将所扰乱的数据写入所述存储器中所请求的地址。
8.根据权利要求1所述的存储器系统,进一步包括扰乱寄存器,用于在边界地址处的所述数据由所述密钥更新逻辑密钥更新之前、在接收对访问所述存储器的访问请求时存储来自所述边界地址的所述数据。
9.根据权利要求1所述的存储器系统,进一步包括功能逻辑,用于生成用以对边界地址处的所述数据进行密钥更新的功能,所述功能包括第一功能和第二功能,其中所述第一功能用于用所述第一密钥解扰乱所述数据并且所述第二功能用于用所述第二密钥重新扰乱所述数据。
10.根据权利要求1所述的存储器系统,进一步包括密钥存储,用于存储并控制对所述第一密钥和所第二密钥的访问。
11.一种方法,包括:
在存储器中设置针对密钥更新操作的边界地址,所述密钥更新操作针对所述存储器中的数据旋转密钥;
响应于接收存储器访问请求,由存储器控制器处理对所述存储器的所述存储器访问请求;
确定所述存储器控制器何时处于空闲周期并且响应于处于所述空闲周期,所述方法包括:
在所述空闲周期期间对所述存储器中在所述边界地址处的一部分执行所述密钥更新操作;
增加所述边界地址并且重复所述密钥更新操作;以及
当所述存储器控制器没有处于空闲周期时暂停所述密钥更新操作以允许所述存储器访问请求将被执行,并且在下一空闲周期期间恢复所述密钥更新操作;
其中所述密钥更新操作至少部分基于密钥旋转间隔而被发起,所述密钥旋转间隔由从所述存储器控制器确定的空闲周期量以及被密钥更新的所述存储器的总大小确定。
12.根据权利要求11所述的方法,其中执行所述密钥更新操作包括使用曾被用于扰乱在所述边界地址存储的数据的第一密钥解扰乱所述数据,用第二密钥重新扰乱所述数据,以及将所重新扰乱的数据存储在所述存储器中的所述边界地址。
13.根据权利要求11所述的方法,其中确定所述存储器控制器何时处于空闲周期包括接收指示所述存储器控制处于所述空闲周期的密钥更新通知。
14.根据权利要求11所述的方法,进一步包括至少部分基于所述边界地址选择第一密钥还是第二密钥将用于处理存储器访问请求。
15.根据权利要求11所述的方法,其中所述密钥更新操作在所述存储器访问请求的所述处理之间被间歇地执行。
16.根据权利要求11所述的方法,其中针对作为对所请求地址的读取访问请求的存储器访问请求,所述方法进一步包括:
基于所述边界地址确定所请求的地址在所述存储器的第一部分还是第二部分中,其中所述第一部分已经使用第一密钥扰乱并且所述第二部分已经由第二密钥扰乱;
基于所述确定选择所述第一密钥或者所述第二密钥;以及
使用所选定的密钥从所请求的地址解扰乱数据并且将所解扰乱的数据返回。
17.一种方法,包括:
在存储器中设置针对密钥更新操作的边界地址,所述密钥更新操作针对所述存储器中的数据旋转加密密钥,其中所述边界地址是所述存储器中用第一密钥加密的第一部分与所述存储器中用第二密钥加密的第二部分之间的边界;
确定存储器控制器的空闲周期,其中空闲周期是所述存储器控制器不处理对所述存储器的访问请求的时间,以及确定所述存储器控制器的空闲周期量;
基于从所述存储器控制器确定的所述空闲周期量和用于所述密钥更新操作的所述存储器的总大小来确定密钥旋转间隔;
基于所述密钥旋转间隔来发起所述密钥更新操作;以及
响应于在所述密钥更新操作期间接收针对所述存储器中所请求地址的访问请求:
暂停所述密钥更新操作;
将所请求的地址与所述边界地址比较以确定所请求的地址在所述存储器的所述第一部分还是所述第二部分中;
基于所述比较选择所述第一密钥或者所述第二密钥;以及
使用所选定的密钥处理所述访问请求以及在所述存储器控制器的下一空闲周期期间恢复所述密钥更新操作。
18.根据权利要求17所述的方法,进一步包括:
确定当不存在有待完成的访问请求时的空闲周期;以及
响应于所述空闲周期,恢复所述密钥更新操作以旋转所述加密密钥。
19.根据权利要求17所述的方法,进一步包括在所述访问请求的所述处理之间间歇地执行所述密钥更新操作。
CN201480041644.3A 2013-07-24 2014-07-18 针对存储器控制器的密钥旋转 Expired - Fee Related CN105431862B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361858007P 2013-07-24 2013-07-24
US61/858,007 2013-07-24
PCT/US2014/047215 WO2015013133A1 (en) 2013-07-24 2014-07-18 Key rotation for a memory controller

Publications (2)

Publication Number Publication Date
CN105431862A CN105431862A (zh) 2016-03-23
CN105431862B true CN105431862B (zh) 2019-04-26

Family

ID=51299005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480041644.3A Expired - Fee Related CN105431862B (zh) 2013-07-24 2014-07-18 针对存储器控制器的密钥旋转

Country Status (6)

Country Link
US (1) US9529732B2 (zh)
EP (1) EP3025271B1 (zh)
JP (1) JP6452135B2 (zh)
KR (1) KR102164425B1 (zh)
CN (1) CN105431862B (zh)
WO (1) WO2015013133A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148430B1 (en) * 2013-04-17 2018-12-04 Amazon Technologies, Inc Revocable stream ciphers for upgrading encryption in a shared resource environment
GB2514428B (en) * 2013-08-19 2016-01-13 Visa Europe Ltd Enabling access to data
US9710675B2 (en) * 2015-03-26 2017-07-18 Intel Corporation Providing enhanced replay protection for a memory
US10372948B2 (en) * 2015-12-15 2019-08-06 Taiwan Semiconductor Manufacturing Company Ltd. Scrambling apparatus and method thereof
US10891083B2 (en) * 2017-04-18 2021-01-12 Microsemi Solutions (Us), Inc. System and method for randomizing data
CN108229215A (zh) * 2017-12-06 2018-06-29 杭州中天微系统有限公司 一种地址加扰的存储装置及方法
CN108182371A (zh) * 2017-12-22 2018-06-19 杭州中天微系统有限公司 一种片上系统的片外存储器地址加扰装置及方法
WO2020149913A2 (en) 2018-10-26 2020-07-23 Visa International Service Association Computing key rotation period for block cipher-based encryption schemes system and method
US11113409B2 (en) * 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11863670B2 (en) * 2019-04-22 2024-01-02 Cryptography Research, Inc. Efficient side-channel-attack-resistant memory encryptor based on key update
US11595204B2 (en) * 2019-06-04 2023-02-28 EMC IP Holding Company LLC Adaptive re-keying in a storage system
US12095909B1 (en) * 2019-09-30 2024-09-17 Amazon Technologies, Inc. Data integrity checks for reencryptions
CN112243000B (zh) * 2020-10-09 2023-04-25 北京达佳互联信息技术有限公司 应用数据的处理方法,装置、计算机设备及存储介质
US11972034B1 (en) * 2020-10-29 2024-04-30 Amazon Technologies, Inc. Hardware-assisted obscuring of cache access patterns
US11398291B2 (en) 2020-11-20 2022-07-26 Microchip Technology Inc. Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device
US11514992B2 (en) 2021-02-25 2022-11-29 Microchip Technology Inc. Method and apparatus for reading a flash memory device
US11620238B1 (en) 2021-02-25 2023-04-04 Amazon Technologies, Inc. Hardware blinding of memory access with epoch transitions
US11567676B2 (en) 2021-04-30 2023-01-31 Nxp B.V. Inline encryption/decryption for a memory controller
US11934696B2 (en) 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
US11699493B2 (en) 2021-05-24 2023-07-11 Microchip Technology Inc. Method and apparatus for performing a read of a flash memory using predicted retention-and-read-disturb-compensated threshold voltage shift offset values
US11514994B1 (en) 2021-05-28 2022-11-29 Microchip Technology Inc. Method and apparatus for outlier management
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987572A (en) * 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412722A (en) * 1993-08-31 1995-05-02 Motorola, Inc. Encryption key management
US7945914B2 (en) * 2003-12-10 2011-05-17 X1 Technologies, Inc. Methods and systems for performing operations in response to detecting a computer idle condition
US7162647B2 (en) * 2004-03-11 2007-01-09 Hitachi, Ltd. Method and apparatus for cryptographic conversion in a data storage system
US7602911B2 (en) * 2005-03-14 2009-10-13 Microsoft Corporation Method and system for enhancing cryptography-based security
JP4762752B2 (ja) * 2006-02-16 2011-08-31 富士通セミコンダクター株式会社 半導体メモリ
JP2007310601A (ja) * 2006-05-18 2007-11-29 Renesas Technology Corp マイクロコンピュータおよびそのソフトウェア保護方法
JP2008269173A (ja) 2007-04-18 2008-11-06 Hitachi Ltd 計算機システム、ストレージシステムおよびデータ管理方法
US9324361B2 (en) 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
US8489893B2 (en) * 2010-01-29 2013-07-16 Hewlett-Packard Development Company, L.P. Encryption key rotation messages written and observed by storage controllers via storage media
WO2013012436A1 (en) * 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Reset vectors for boot instructions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987572A (en) * 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory

Also Published As

Publication number Publication date
JP2016525839A (ja) 2016-08-25
KR20160035009A (ko) 2016-03-30
US20150033037A1 (en) 2015-01-29
EP3025271B1 (en) 2020-04-01
US9529732B2 (en) 2016-12-27
KR102164425B1 (ko) 2020-10-13
CN105431862A (zh) 2016-03-23
WO2015013133A1 (en) 2015-01-29
JP6452135B2 (ja) 2019-01-16
EP3025271A1 (en) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105431862B (zh) 针对存储器控制器的密钥旋转
US9921758B2 (en) Avoiding long access latencies in redundant storage systems
JP5594664B2 (ja) サービス品質に基づくストレージ階層化及び移動技法のためのシステム及び方法
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
CN108924124A (zh) 一种文件访问方法、装置、设备及可读存储介质
CN104252386B (zh) 数据更新的加锁方法和设备
CN109388485A (zh) 一种任务执行线程的处理方法、装置、设备及存储介质
US8930318B1 (en) Systems and methods for handling interruptions while updating of an electronic device
CN107644173B (zh) 用于控制应用程序访问存储器的方法和装置
US9529536B2 (en) Semiconductor memory device, memory system including the same, and operating method thereof
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
US11687381B2 (en) Multi-phase distributed task coordination
TW201530555A (zh) 記憶體陣列中呈現資料無效之技術
JP2010097432A (ja) Ram診断装置、そのプログラム
US9430338B2 (en) Method and computing device for recording log entries
US20240004563A1 (en) Performance Efficient and Resilient Creation of Network Attached Storage Obects
KR20190126992A (ko) 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법
US9519597B2 (en) Communication apparatus and method based on shared memory
CN111258501B (zh) 一种逻辑卷删除的控制方法、装置及设备
JP4333749B2 (ja) 演算システム,演算装置およびプログラム
CN109101192B (zh) 数据存储方法和装置
JP2021009554A (ja) コンピュータ装置、データ共有システム、データアクセス方法、及びプログラム
CN109211239A (zh) 一种关联产品定位系统及其使用方法
CN117633841A (zh) 加密模块控制器、加密模块、加密系统和加密处理方法
JP2007310919A (ja) 階層型ストレージ装置のデータリード方法及びシステム

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
TR01 Transfer of patent right

Effective date of registration: 20200513

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200513

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200513

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190426

Termination date: 20210718

CF01 Termination of patent right due to non-payment of annual fee