[发明专利]一种适用于嵌入式处理器的数据完整性验证方法有效
申请号: | 201010191552.7 | 申请日: | 2010-06-04 |
公开(公告)号: | CN101853190A | 公开(公告)日: | 2010-10-06 |
发明(设计)人: | 刘政林;霍文捷;陈天山;郭超 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种适用于嵌入式处理器的数据完整性验证方法,它包括多粒度散列计算方法,地址转换方法以及散列节点访问控制方法。多粒度散列计算方法用于产生多粒度Merkle树,该树缓存在散列cache中,同时在树的节点缺失时,此算法负责计算内存中数据块的散列值。地址转换方法为每个节点提供了一个唯一对应的地址。散列节点访问控制方法主要负责访问各个散列树的节点,特别是在读缺失和写操作时采取不同的对策。由于采用多粒度散列算法,本发明产生的散列树节点少,层数少,因而减少了存储空间,硬件面积开销和初始化时间,提高了性能。 | ||
搜索关键词: | 一种 适用于 嵌入式 处理器 数据 完整性 验证 方法 | ||
【主权项】:
一种适用于嵌入式处理器的数据完整性验证方法,包括初始化操作过程中的数据完整性验证及读、写操作过程中的数据完整性验证;其特征在于,初始化操作过程中的数据完整性验证包括下述步骤:(A1)计算待建立的多粒度散列树的层数;(A2)对物理内存中数据块进行散列计算,按照步骤(A1)中计算的层数建立多粒度散列树,并将多粒度散列树存储在散列缓存中;(A3)从可信存储区读取安全信息,并与多粒度散列树的根节点的值进行比较,如果两者相等,说明内存中的数据未遭篡改,则将验证标志位置为1;两者不等,则置标志位为0,表示内存中的数据已遭篡改;读操作过程的数据完整性验证过程为:(B1)计算物理内存中两个相邻数据块的散列值;(B2)在散列缓存中查找是否有与步骤(B1)所述的两个相邻数据块的相应叶节点的值,如果有,进入步骤(B3),否则,该相应叶节点缺失,称之为当前缺失节点,用步骤(B1)中计算出的散列值代替当前缺失节点值,然后转入步骤(B4);(B3)读散列缓存中相应叶节点的值,并与步骤(B1)中计算出的散列值进行比较,若两值相等,说明数据块是完整的,则将验证标志位置为1,否则,将验证标志位置为0,表示数据块不是完整的;最后均进入步骤(B9);(B4)对当前缺失节点按照下面过程进行处理:(B41)在散列缓存中查找当前缺失节点的兄弟节点,如果兄弟节点的值缺失,称该兄弟节点为当前缺失节点,进入步骤(B42),否则,进入步骤(B5);(B42)处理步骤如下:(B421)判断当前缺失节点是否为叶节点,如果是,则由缺失节点对应的物理内存中数据块计算出散列值,用计算出的散列值代替当前缺失节点值,然后进入步骤(B422);如果不是,直接转入步骤(B422);(B422)计算当前缺失节点的子节点的地址;(B423)在散列缓存中查找是否有当前缺失节点的子节点的值,若所有子节点都不缺失,则由子节点的值计算出散列值,并用该散列值代替缺失节点的值,然后进入步骤(B5);若有子节点缺失,则称缺失的子节点为当前缺失节点,然后转入步骤(B42);(B5)判断是否所有的兄弟节点都被查找到了,如果是,则进入步骤(B6),否则跳到步骤(B41);(B6)读出步骤(B4)中当前缺失节点的兄弟节点的散列值并计算父节点的散列值;(B7)在散列缓存中查找是否有父节点的值;如果父节点的值缺失,则称该父节点为当前缺失节点,转入步骤(B8);否则,读出父节点的值,并跳到(B9);(B8)判断步骤(B6)中的当前缺失节点是否为根节点;如果不是,用步骤(B6)中计算出的散列值代替当前缺失节点值,然后转入步骤(B4);如果是,则从可信存储区中读出根节点的值,用之代替父节点的值,然后进入步骤(B9);(B9)比较读出的父节点值和步骤(B6)中计算出的父节点值;若两值相等,说明数据块是完整的,则将验证标志位置为1;否则,将验证标志位置为0,表示数据块不是完整的;(B10)读操作验证过程结束;写操作过程的数据完整性验证过程为:(C1)计算待改写数据块对应的散列节点的地址,该散列节点称之为当前缺失节点;(C2)在散列缓存中查找是否有当前缺失节点的值;如果有,则转入步骤(C3);如果没有,则计算待改写的数据块的散列值,并用该散列值代替当前节点值,然后进入步骤(C3);(C3)查找该当前缺失节点兄弟节点;如果兄弟节点缺失,则称缺失的兄弟节点为当前缺失节点,进入步骤(C4);如果不缺失,则进入步骤(C5);(C4)处理步骤如下:(C41)判断当前缺失节点是否为叶节点,如果不是,转入步骤(C42);如果是,则由缺失节点对应的物理内存中数据块计算出散列值,并用计算出的散列值代替当前缺失节点值,然后进入步骤(C5);(C42)计算当前缺失节点的子节点的地址;(C43)在散列缓存中查找是否有当前缺失节点的子节点的值,若所有子节点都不缺失,则由子节点的值计算出散列值,并用该散列值代替缺失节点的值,然后进入步骤(C5);若有子节点缺失,则称缺失的子节点为当前缺失节点,然后转入步骤(C4);(C5)判断是否步骤(C3)所有的兄弟节点都被查找到了,如果是,则进入步骤(C6),否则跳到步骤(C3);(C6)读步骤(C3)中第一个当前缺失节点及其兄弟节点的散列值并计算它们的父节点的散列值;(C7)在散列缓存中查找是否有父节点的值;如果父节点的值缺失,则称该节点为当前缺失节点,转入步骤(C8);否则,读出父节点的值,并跳到(C9);(C8)判断步骤(C7)中的当前缺失节点是否为根节点;如果不是,用步骤(C6)中计算出的散列值代替当前缺失节点的值,然后转入步骤(C3);如果是,则从可信存储区中读出根节点的值,用之代替父节点的值,然后进入步骤(C9);(C9)比较读出的父节点值和步骤(C6)中计算出的父节点值;若两值相等,说明数据块是完整的,则将验证标志位置为1,然后转入步骤(C10);否则,将验证标志位置为0,表示数据块不是完整的,跳到(C11);(C10)更新当前节点和它的父节点值;(C11)写操作验证过程结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010191552.7/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置