【技术实现步骤摘要】
一种内存数据完整性保护方法、装置及电子设备
[0001]本专利技术涉及内存数据保护
,尤其涉及一种内存数据完整性保护方法、装置及电子设备。
技术介绍
[0002]研究表明,攻击者可以读取或修改内存中的数据。为了保护内存中数据的机密性、完整性,并防御重放攻击,提出了内存加密引擎(MEE,Memory Encryption Engine),并给出了相应的扩展指令集SGX。通常情况下,CPU需要的数据是由内存控制器(MC,Memory Controller)来操作,但涉及到被保护数据时,就需要由MEE来控制。
[0003]当数据写入内存前,MEE中的加密模块会把数据加密;当加密数据从内存中读出时,MEE中的解密模块会把数据解密,然后送到缓存,供CPU核使用。即便内存中的数据是密文存储,但有可能被修改或替换,为此需要对内存数据进行完整性保护。
技术实现思路
[0004]有鉴于此,本专利技术实施例提供一种内存数据完整性保护方法、装置及电子设备,能够有效地对内存中的数据进行完整性保护。
[0005] ...
【技术保护点】
【技术特征摘要】
1.一种内存数据完整性保护方法,其特征在于,包括:把待写入数据分割成数据块;根据一数据块的写入地址,确定所述写入地址所对应的存储单元;其中,所述数据块为所述待写入数据分割后形成的两个以上的数据块中的其中一个数据块,所述存储单元位于内存中的数据保护存储区,所述数据保护存储区中的每个存储单元分配有一局部计数器,每N个局部计数器分配有一全局计数器;N为大于等于2的自然数;根据所述存储单元以及预先建立的校验树,确定校验路径;其中,所述校验树的每个节点具有一全局计数器和N个局部计数器,每个节点与上一层节点中的一局部计数器相对应,每个末节点的N个局部计数器与所述数据保护存储区中的N个存储单元一一对应;从所述校验树的根节点开始,沿所述校验路径,依次对各节点进行校验;在依次对所述校验路径上的各节点校验通过后,对所述数据块进行数据校验,若校验通过,则将所述数据块写入所述存储单元;基于所述数据块在所述存储单元中的写入,更新所述校验树。2.根据权利要求1所述的内存数据完整性保护方法,其特征在于,所述从所述校验树的根节点开始,沿所述校验路径,依次对各节点进行校验,包括:从所述校验树的根节点开始,沿一条校验路径,依次对各节点进行校验;所述从所述校验树的根节点开始,沿一条校验路径,依次对各节点进行校验,包括:获取第i个节点的全局计数器和第j个局部计数器的值,结合第i
‑
1个节点的全局计数器和各局部计数器的值,计算一节点校验值,将计算的节点校验值与第i
‑
1个节点中存储的节点校验值进行比较,若二者一致,则对第i
‑
1个节点校验成功;其中,所述第i个节点和第i
‑
1个节点为所述校验路径上两个相邻的节点,所述第i
‑
1个节点与所述第i个节点的第j个局部计数器相对应;其中,2≤i≤M,1≤j≤N,M为校验树的最大层数。3.根据权利要求1所述的内存数据完整性保护方法,其特征在于,所述对所述数据块进行数据校验,包括:获取至少两个存储单元所存储的数据块,结合该至少两个存储单元所对应的局部计数器和全局计数器的值,计算出一数据校验值;其中,所述至少两个存储单元包括所述写入地址所对应的存储单元;将计算出的所述数据校验值,与预先存储的数据校验值进行比较;其中,所述预先存储的数据校验值,预先根据所述至少两个存储单元所存储的数据块,结合所述至少两个存储单元所对应的局部计数器和全局计数器的值计算得出;若计算出的所述数据校验值与所述预先存储的数据校验值一致,则对所述数据块的数据校验通过。4.根据权利要求3所述的内存数据完整性保护方法,其特征在于,在将所述数据块写入所述存储单元之后,所述方法还包括:获取所述至少两个存储单元所存储的数据块,结合所述至少两个存储单元所对应的局部计数器和全局计数器的值,计算出一新的数据校验值;利用所述新的数据校验值,更新所述预先存储的数据校验值。5.根据权利要求1所述的内存数据完整性保护方法,其特征在于,所述基于所述数据块在所述存储单元中的写入,更新所述校验树,包括:
将第i个节点的第j个局部计数器的值加上第一预定值,并将第i+1个节点中的第k个局部计数器的值加上第二预定值;其中,所述第i个节点与所述第i+1个节点中的第k个局部计数器相对应;其中,1≤i≤M
‑
1,1≤j≤N,1≤k≤N,M为校验树的最大层数;将所述第i+1个节点的全局计数器及所述第k个局部计数器的值,结合所述第i个节点的全局计数器和各局部计数器的值,计算一新的节点校验值,利用计算的所述新的节点校验值更新所述第i个节点的节点校验值。6.根据权利要求1所述的内存数据完整性保护方法,其特征在于,所述基于所述数据块在所述存储单元中的写入,更新所述校验树,包括:判断所述校验路径上的第i个节点中,非零局部计数器的个数是否小于或等于预定阈值;其中,所述第i个节点为当前要更新的节点;其中,1≤i≤M,M为校验树的最大层数;若所述第i个节点中,非零局部计数器的个数小于或等于预定阈值,则确定以第一存储模式存储第i...
【专利技术属性】
技术研发人员:顾海华,应志伟,
申请(专利权)人:海光信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。