用于执行完整性校验的方法及设备技术

技术编号:16672986 阅读:36 留言:0更新日期:2017-11-30 17:20
本发明专利技术揭示一种用于执行消息完整性校验的方法。在所述方法中,处理器从存储装置读取消息。所述消息包括多个第一层部分。所述处理器从所述多个第一层部分确定一或多个第二层部分。每个第二层部分包括固定数目的第一层部分。密码引擎计算每个第二层部分的散列值以产生相应计算出的散列值,及不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值。所述处理器将所述相应计算出的散列值中的每一者与对应所存储散列值相比较。如果每个相应计算出的散列值等于所述对应所存储散列值,那么所述处理器提供完整性校验指示。

【技术实现步骤摘要】
【国外来华专利技术】用于执行完整性校验的方法及设备相关申请案的交叉参考本申请案要求2015年4月2日向美国专利商标局提交的第14/677,602号非临时申请案的优先权及权益,所述申请案的全部内容以引用的方式并入本文中。
本专利技术大体上涉及在小扇区的文件系统中执行消息完整性校验。
技术介绍
随着存储装置的存储能力增加,基于计算整个存储装置的散列值的用于完整性校验的执行时间也增加。因此,当获取目标文件时,完整性校验优选地仅应用于目标文件处以避免从获取其相邻区域产生的不必要延迟。对文件的典型完整性校验可基于散列链使用直线式完整性校验。在直线式完整性校验中,最初可针对存储装置的每个扇区或块(通常4KB)计算散列值并且这些散列值可存储在链(或树状结构)中。散列值的整个链(或树)随后进行散列以计算总体散列值。在对文件执行直线式完整性校验之前,首先通过将总体散列值匹配到先前存储的散列值来验证所有扇区的散列。在后续获取文件之后,仅需要对受影响扇区,即,存储所获取文件的扇区执行完整性校验。这引起小扇区(例如,4KB扇区)的效率问题,因为例如SHA-1及SHA-256的大部分散列算法对于长消息快速,但是用于初始化及完成的开销成本高。举例来说,用于基于硬件的SHA-256密码引擎的驱动器通常具有三个函数供调用:init()、update()及final()。对于短消息,驱动器与密码引擎之间的通信开销比硬件散列操作花费更长时间。因此,当散列小扇区时,可产生由于算法设定及最终处理而引起的主要延迟。因此,使用小扇区的文件系统,基于散列链的完整性校验对于存储装置可能无效。因此,需要一种用于使用小扇区在文件系统中有效地执行消息完整性校验的技术。
技术实现思路
本专利技术的方面可驻存在用于执行消息完整性校验的方法中。在所述方法中,处理器从存储装置读取消息。所述消息包括多个第一层部分。处理器从多个第一层部分确定一或多个第二层部分。每个第二层部分包括固定数目的第一层部分。密码引擎计算每个第二层部分的散列值以产生相应计算出的散列值,及不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值。处理器将相应计算出的散列值中的每一者与对应所存储散列值相比较。如果每个相应计算出的散列值等于对应所存储散列值,那么处理器提供完整性校验指示。在本专利技术的更详细方面中,密码引擎可为硬件密码引擎。每个第二层部分可包括八个第一层部分。消息可包括文件。本专利技术的另一方面可驻存在设备中,所述设备包括:用于从存储装置读取消息的装置,其中所述消息包括多个第一层部分;用于从所述多个第一层部分确定一或多个第二层部分的装置,其中每个第二层部分包括固定数目的第一层部分;用于计算每个第二层部分的散列值以产生相应计算出的散列值的装置;用于计算不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值的装置;用于将所述相应计算出的散列值中的每一者与对应所存储散列值相比较的装置;及用于在每个相应计算出的散列值等于所述对应所存储散列值的情况下提供完整性校验指示的装置。本专利技术的另一方面可驻存在设备中,所述设备包括:存储器,其经配置以存储包括多个第一层部分的消息;密码引擎,其经配置以计算层部分的散列值;及处理器,其经配置以:从所述多个第一层部分确定一或多个第三层部分,其中每个第三层部分包括第一固定数目的第一层部分;确定一或多个第二层部分是否可由不包含在第三层部分中的第一层部分形成,其中每个第二层部分包括第二固定数目的第一层部分,并且第一固定数目是第二固定数目的整数倍;将针对每个第三层部分计算出的每个相应计算出的散列值与对应所存储散列值相比较;将针对每个第二层部分计算出的每个相应计算出的散列值与对应所存储散列值相比较;将针对不包含在第二层部分或第三层部分中的每个第一层部分计算出的每个相应计算出的散列值与对应所存储散列值相比较;及在每个相应计算出的散列值等于所述对应所存储散列值的情况下提供完整性校验指示。在本专利技术的更详细方面中,每个第三层部分可包括256个第一层部分,并且每个第二层部分可包括8个第一层部分。本专利技术的另一方面可驻存在计算机可读媒体中,所述计算机可读媒体包括:用于使计算机从存储装置读取消息的代码,其中所述消息包括多个第一层部分;用于使计算机从所述多个第一层部分确定一或多个第二层部分的代码,其中每个第二层部分包括固定数目的第一层部分;用于使所述计算机计算每个第二层部分的散列值以产生相应计算出的散列值的代码;用于使所述计算机计算不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值的代码;用于使所述计算机将所述相应计算出的散列值中的每一者与对应所存储散列值相比较的代码;及用于使所述计算机在每个相应计算出的散列值等于所述对应所存储散列值的情况下提供完整性校验指示的代码。附图说明图1是根据本专利技术的用于执行消息完整性校验的方法的流程图。图2是展示用于实施本专利技术的各方面的计算机的实例的框图。图3是存储装置的部分及在第一及第二层上计算出的散列值的示意图。图4是存储文件的存储装置的部分的示意图。图5是存储文件的存储装置的部分及用于与所存储散列值比较的在第一及第二层上计算出的散列值的示意图。图6是相对于第一、第二及第三层的存储装置的部分的示意图。图7是无线通信系统的实例的框图。具体实施方式词语“示例性”在本文中用于意指“充当实例、例子或说明”。本文中被描述为“示例性的”任何实施例不必须被理解为比其它实施例优选或有利。参考图1-5,本专利技术的方面可驻存在用于执行消息完整性校验的方法100中。在所述方法中,处理器220从存储装置230读取消息(例如,文件)(步骤110)。所述消息包括多个第一层部分(S(M)至S(M+i)),其中M是第一层部分的索引并且i是消息长度的索引。处理器从多个第一层部分确定一或多个第二层部分(2ndL(N)至2ndL(N+j))(步骤120),其中N是第二层部分的索引并且j是长度的索引。每个第二层部分包括固定数目的第一层部分。密码引擎240计算每个第二层部分的散列值HL2以产生相应计算出的散列值(步骤130),及不包含在第二层部分中的每个第一层部分的散列值HL1以产生相应计算出的散列值(步骤140)。处理器将相应计算出的散列值中的每一者与对应所存储散列值相比较(步骤150)。如果每个相应计算出的散列值等于对应所存储散列值,那么处理器提供完整性校验指示(步骤160)。或者,完整性校验可通过仅校验最终散列链的完整性而跳过每散列验证。在验证散列链之后,对给定层部分的后续随机接入可仅在最初已得到验证的对应散列值上执行完整性校验。在本专利技术的更详细方面中,存储装置230可包括闪存存储器或磁盘驱动器。密码引擎240可为硬件密码引擎或具有密码API的软件实施方案。每个第二层部分2ndL(N)可包括八个第一层部分S(M)。消息可包括文件。本专利技术的优点可包含对于相同存储装置230使用具有不同部分长度的散列链的多个层。如图3中所展示,第一层可涉及散列每个部分以产生对应第一层散列值HL1(K),其中K是对应于相应部分索引的索引。每个第一层部分可为磁盘扇区或数据块。第二层可涉及散列多个连续的第一层部分。出于说明性目的,图3展示与4个第一层部分对齐的每个第二层部分。然而,每个第二层部分可与8个本文档来自技高网
...
用于执行完整性校验的方法及设备

【技术保护点】
一种用于执行消息完整性校验的方法,其包括:通过处理器从存储装置读取消息,其中所述消息包括多个第一层部分;通过所述处理器从所述多个第一层部分确定一或多个第二层部分,其中每个第二层部分包括固定数目的第一层部分;通过密码引擎计算每个第二层部分的散列值以产生相应计算出的散列值;通过所述密码引擎计算不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值;通过所述处理器将所述相应计算出的散列值中的每一者与对应所存储散列值相比较;及如果每个相应计算出的散列值等于所述对应所存储散列值,那么通过所述处理器提供完整性校验指示。

【技术特征摘要】
【国外来华专利技术】2015.04.02 US 14/677,6021.一种用于执行消息完整性校验的方法,其包括:通过处理器从存储装置读取消息,其中所述消息包括多个第一层部分;通过所述处理器从所述多个第一层部分确定一或多个第二层部分,其中每个第二层部分包括固定数目的第一层部分;通过密码引擎计算每个第二层部分的散列值以产生相应计算出的散列值;通过所述密码引擎计算不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值;通过所述处理器将所述相应计算出的散列值中的每一者与对应所存储散列值相比较;及如果每个相应计算出的散列值等于所述对应所存储散列值,那么通过所述处理器提供完整性校验指示。2.根据权利要求1所述的方法,其中所述密码引擎是硬件密码引擎。3.根据权利要求1所述的方法,其中每个第二层部分包括八个第一层部分。4.根据权利要求1所述的方法,其中所述消息包括文件。5.一种设备,其包括:用于从存储装置读取消息的装置,其中所述消息包括多个第一层部分;用于从所述多个第一层部分确定一或多个第二层部分的装置,其中每个第二层部分包括固定数目的第一层部分;用于计算每个第二层部分的散列值以产生相应计算出的散列值的装置;用于计算不包含在第二层部分中的每个第一层部分的散列值以产生相应计算出的散列值的装置;用于将所述相应计算出的散列值中的每一者与对应所存储散列值相比较的装置;及用于在每个相应计算出的散列值等于所述对应所存储散列值的情况下提供完整性校验指示的装置。6.根据权利要求5所述的设备,其中用于计算散列值的装置包括硬件密码引擎。7.根据权利要求5所述的设备,其中每个第二层部分包括八个第一层部分。8.根据权利要求5所述的设备,其中所述消息包括文件。9.一种设备,其包括:存储器,其经配置以存储包括多个第一层部分的消息;密码引擎,其经配置以计算层...

【专利技术属性】
技术研发人员:肖露S·博拉普拉高达
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1