用于采用消息验证码标签的系统的防止回退攻击的数据完整性保护的制作方法

文档序号:10694087阅读:261来源:国知局
用于采用消息验证码标签的系统的防止回退攻击的数据完整性保护的制作方法
【专利摘要】一个特征涉及用于将数据单元存储在存储装置中的高效过程,所述过程允许验证数据单元以防止回退攻击和其它攻击,例如剪切粘贴攻击。在一个方面中,基于初级密钥、待存储的数据单元、所述数据单元的对应的索引(例如页面索引)以及所述对应的数据单元的次级密钥而生成或以其它方式获得消息验证码MAC,所述次级密钥针对每一新写入操作而生成。所述MAC和所述对应的数据单元存储在大容量存储装置中,例如相对较不安全的芯片外存储装置。次级密钥存储在单独的存储装置中,例如更加安全的芯片上存储装置。在一些实例中,新次级密钥在每一数据写入后基于非零随机或伪随机值生成。
【专利说明】用于采用消息验证码标签的系统的防止回退攻击的数据完整 性保护
[0001 ] 相关申请案的交叉参考
[0002] 本申请案主张2014年3月11日在美国专利商标局提交的第14/205,226号美国非临 时专利申请案的优先权和权益,所述申请案的全部内容通过引用结合在此。
技术领域
[0003] 各种特征涉及数据验证,且尤其涉及用于存储在移动计算装置中的数据的消息验 证码(MAC)标签。
【背景技术】
[0004] 数据完整性/验证可以通过将标签或哈希(例如MAC标签)与数据存储在一起而提 供于数据存储系统中。例如,通过对秘密密钥和数据应用消息验证算法(MA),可以生成MAC 标签以用于待存储的数据单元。数据单元和MAC标签随后存储在存储装置中,例如存储器装 置。当随后从存储装置读取数据单元时,基于所检索的数据和原始秘密密钥而生成新MC标 签。如果新MAC标签与所存储的MAC标签不同,那么将数据单元拒绝为损坏的。如果新MAC标 签与所存储的MAC标签相同,那么数据由此得到验证且被认为是可信的。然而,如果数据随 时间推移合理地更新,那么攻击者可能用旧(数据单元,标签)对来替换存储装置中的有效 (数据单元,标签)对。这是回退攻击的实例。确切地说,当数据存储在用于例如移动无线装 置中的类型的更加安全的芯片上系统(SoC)处理电路的外部的相对较不安全的存储装置 (例如芯片外存储装置)中时,可能出现问题。此类存储装置系统容易受到的另一形式的攻 击是剪切粘贴攻击,其中攻击者用来自另一位置的经加密数据段来替换某一经加密数据 段,由此希望当处于新位置时,所得经解密数据将与旧位置相同。减轻这些形式的攻击可能 是昂贵的,因为有效的减轻可能需要将状态数据存储在安全的存储装置中,例如存储在芯 片上存储装置内。例如,在极端情况下,可以将所有标签存储在安全的芯片上存储装置内以 完全防止芯片外存储装置中的数据的回退攻击。由于存储和性能要求,此实施方案是不实 用的。
[0005] 因此,需要保护数据完整性以防止各种类型的攻击。

【发明内容】

[0006] -种用于存储数据以准许验证数据的方法包含:基于初级密钥、待存储的数据单 元、数据单元的对应的索引以及数据单元的次级密钥而获得消息验证码;将消息验证码和 数据单元存储在第一存储装置中;以及将数据单元的次级密钥存储在第二存储装置中。
[0007] 在另一方面中,一种装置包含:第一存储装置,其用于存储数据单元和消息验证 码;第二存储装置,其用于存储用于验证第一存储装置的数据单元的验证密钥;以及处理电 路,其耦合到第一和第二存储装置,其中所述处理电路经配置以:基于初级密钥、待存储的 数据单元、数据单元的对应的索引以及数据单元的次级密钥而获得MAC;将MAC和数据单元 存储在第一存储装置中;以及将数据单元的次级密钥存储在第二存储装置中。
[0008] 在又一方面中,一种装置包含:用于基于初级密钥、待存储的数据单元、数据单元 的对应的索引以及数据单元的次级密钥而获得MAC的装置;用于将MAC和数据单元存储在第 一存储装置中的装置;以及用于将数据单元的次级密钥存储在第二存储装置中的装置。
[0009] 在又另一个方面,一种机器可读存储媒体包含一或多个指令,所述一或多个指令 在由至少一个处理电路执行时使得至少一个处理电路:基于初级密钥、待存储的数据单元、 数据单元的对应的索引以及数据单元的次级密钥而获得MAC;将MAC和数据单元存储在第一 存储装置中;以及将数据单元的次级密钥存储在第二存储装置中。
【附图说明】
[0010] 图1说明根据说明性实例的移动通信装置的芯片上系统(SoC)处理电路的方块图。
[0011] 图2提供利用次级密钥来存储在安全存储装置中的回退减轻过程的概述。
[0012] 图3说明用于图2的一般过程的示例性数据存储组件。
[0013] 图4说明用于利用次级密钥的到芯片外存储装置的写入操作的用于图2的一般过 程的示例性方法。
[0014] 图5说明用于利用次级密钥的从芯片外存储装置进行的读取操作的用于图2的一 般过程的示例性方法。
[0015] 图6说明用于利用次级密钥的从芯片外存储装置进行的写入操作的用于图2的一 般过程的示例性系统。
[0016] 图7说明用于利用次级密钥的从芯片外存储装置进行的读取操作的用于图2的一 般过程的示例性系统。
[0017] 图8是说明用于采用处理系统的设备的硬件实施方案的实例的方块图,所述处理 系统可以利用图1到7的系统、方法和设备。
[0018] 图9是说明图8的处理电路的组件的方块图。
[0019] 图10是说明图8的机器可读媒体的指令组件的方块图。
[0020] 图11概述用于存储数据以准许验证数据的示例性方法。
[0021 ]图12概述用于验证所存储的数据的示例性方法。
【具体实施方式】
[0022] 在以下描述中,给出具体细节以提供对本发明的各种方面的彻底理解。然而,所属 领域的技术人员应理解,所述方面可在没有这些具体细节的情况下实践。例如,可以用方块 图示出电路以便避免以不必要的细节混淆所述方面。在其它状况下,可不详细示出众所周 知的电路、结构及技术以便不混淆本发明的方面。
[0023] 词语"示例性"在本文中用以意指"充当实例、例子或说明"。本文中描述为"示例 性"的任何实施方案或方面未必解释为比本发明的其它方面优选或有利。同样,术语"方面" 并不要求本发明的所有方面包含所论述的特征、优点或操作模式。
[0024] 概述
[0025]若干新颖特征涉及将数据存储在存储装置(例如存储器装置)中以准许在检索后 验证数据。所述新颖特征可以用于具有相对较小但安全的芯片上存储装置(例如SRAM)以结 合较大但较不安全的芯片外存储装置(例如DDR RAM)使用的系统中。然而,本文中所描述的 特征可适用于广泛范围的系统且可适用于实现多种目标。
[0026]在一个方面中,SoC处理电路的数据验证组件获得用于存储在芯片外存储装置中 的数据的MC标签,其中所述MC标签是基于初级密钥、待存储的特定数据单元或消息、数据 单元的对应的索引(例如页面索引)以及数据单元的次级密钥(N)。例如,MAC可以是通过基 于全局初级密钥(K)、每数据单元次级密钥(N 1)以及待存储的数据单元(M1)而将消息验证算 法(MAA)应用到对应的数据单元索引(i)来获得的标签。MAC和对应的数据单元存储在芯片 外存储装置中。然而,次级密钥存储在形成SoC的部分的更加安全的芯片上存储装置中。在 本文中所描述的各种实例中,在每一新数据写入操作后获得新次级密钥。也就是说,每当数 据改变且将新值写入到芯片外存储装置时,次级密钥加载有新随机或伪随机值,所述值存 储在更加安全的芯片上存储装置中。由此,次级密钥是潜在攻击者不可预测的且未知的。攻 击者不能直接地存取次级密钥,因为次级密钥存储在隐含地安全的芯片上存储装置中。 [0027]就此而言,考虑将数据存储在数据单元(或页面)中的系统。我们可以简单方式使 用消息验证算法(MAA)来将完整性/验证与日期单元添加在一起。指示Mi为数据单元i。每一 Mi具有对应的标签Ti,所述标签例如使用MAA(或大体上任何伪随机函数(PRF)或密钥派生 函数(KDF))来获得,所述MAA表示为接受用于数据单元M的秘密密钥K的函数F,即,T = F(K, Μ)。举例来说,其中数据将被存储在DDR RAM中,且数据单元可以表示信息块、片段或DDR RAM的其它合适的部分。然而,Ti = F(K,Mi)的使用并不防止数据的回退。例如,如果Mi在某一 点处合理地变成具有对应的标签fi的汾,,那么潜在的敌对者或恶意的实体可以M i覆写 且以T1覆写$。系统随后将会将这些先前有效值接受为仍有效的,因为系统将基于所检索的 数据生成新标签以用于与所保存的标签比较。这两个标签将匹配,且系统将不能检测到在M 处的数据已经连同其标签一起回退。此问题的一个可能的解决方案是在内部存储每一 T1, 例如,将每一Ti存储在芯片上SRAM或隐含地安全的等效存储装置内。然而,就存储开销和性 能要求而言,此解决方案的成本可能太高。替代地,本文中所描述的示例性过程用以基于次 级密钥N和其数据单元索引i而将另外的输入值应用到MAA,使得每数据单元标签T 1获得为T1 = F(K,Ni,i,M)〇
[0028]在其中每一次级密钥具有b位的实例中,回退攻击的成功概率可为仅24。因此,在 其中执行一次攻击的时间为约200毫秒的实例中,成功的攻击将花费十四年左右来上升到 任何相当大概率的成功(假设b的合适的值为例如32位)。因此,次级密钥提供回退保护。索 引i的值(作为MAA的单独输入)有助于防止"剪切粘贴"攻击。为适应引导程序(所述引导程 序不应与系统引导混淆),所有次级密钥值初始地设定为零,且随后的次级密钥值设定为非 零值。以此方式,系统可以通过检查所述值来检测页面是否已经被写入。因此,这些技术允 许:(a)用于实施回退保护的减小的内部存储装置,因为次级密钥可以相对于标签较小,以 及(b)在时间零处引导系统而基本上无额外开销。
[0029] 示例性芯片上系统硬件环境
[0030]图1说明根据其中可以利用各种新颖特征的一个实例的移动通信装置的芯片上系 统(SoC)处理电路100AoC处理电路可以是由高通有限公司(Qualcomm Incorporated)制造 的Snapdragon?处理电路。SoC处理电路100包含应用程序处理电路110,所述应用程序处理 电路包含多核CPU 112。应用程序处理电路110通常控制移动通信装置的所有组件的操作。 在一个方面中,应用程序处理电路110包含数据验证组件150,所述数据验证组件经配备以 采用动态地生成或以其它方式获得的次级密钥来执行基于MAC的验证。应用程序处理电路 110可以包含引导ROM 118,所述引导ROM存储用于SoC处理电路100的各种组件的引导顺序 指令。SoC处理电路100进一步包含通过应用程序处理电路110控制的一或多个外围子系统 120。外围子系统120可以包含但不限于存储子系统(例如,只读存储器(R0M)、随机存取存储 器(RAM))、视频/图形子系统(例如,数字信号处理电路(DSP)、图形处理电路单元(GPU))、音 频子系统(例如,DSP、模数转换器(ADC)、数模转换器(DAC))、电源管理子系统、安全性子系 统(例如,加密、数字权限管理(DRM))、输入/输出(I/0)子系统(例如,键盘、触摸屏),以及有 线和无线连接性子系统(例如,通用串行总线(USB )、全球定位系统(GPS )、Wi -F i、全球移动 通信系统(GSM)、码分多址(CDMA)、4G长期演进(LTE)调制解调器)。示例性外围子系统120 (其为调制解调器子系统)包含DSP 122、各种硬件(Hff)和软件(SW)组件124,以及各种射频 (RF)组件126。在一个方面中,每一外围子系统120还包含引导ROM 128,其存储相关联的外 围子系统120的主引导映像(未示出)。
[0031] SoC处理电路100进一步包含各种内部共享HW资源130,例如内部共享存储装置132 (例如,静态RAM(SRAM)、双倍数据速率(DDR)同步动态(SD)RAM、DRAM、快闪存储器等),所述 内部共享HW资源由应用程序处理电路110和各种外围子系统120共享以存储各种运行时数 据。在一个方面中,SoC处理电路100的组件110、118、120、128和130集成在单芯片衬底上。 SoC处理电路100进一步包含各种外部共享HW资源140,所述外部共享HW资源可以位于不同 芯片衬底上且经由系统总线(未示出)与SoC处理电路100通信。外部共享HW资源140可以包 含例如外部共享存储装置142(例如,DDR RAM、DRAM、快闪存储器)和/或永久数据存储装置 144(例如,安全数字(SD)卡或硬盘驱动(HDD)等),这些存储装置由应用程序处理电路110和 各种外围子系统120共享以存储各种类型数据,例如操作系统(OS)信息、系统文件、程序、应 用程序、用户数据、音频/视频文件等。当激活并入有SoC的移动通信装置时,安全SoC处理电 路100开始系统启动过程。确切地说,应用程序处理电路110访问引导ROM 118以检索用于 SoC处理电路100的引导指令,包含用于各种外围子系统120的引导顺序指令。外围子系统 120还可以具有另外的外围引导RAM 128。
[0032]示例性数据存储和验证过程
[0033]图2提供可以由图1的SoC处理电路或其它合适配备的装置、系统或处理电路通过 利用次级密钥而用于提供回退保护(以及剪切粘贴保护)的示例性过程200的概述。在步骤 202处,对于数据写入操作,处理电路基于初级密钥、待存储的数据单元、数据单元的对应的 索引以及数据单元的次级密钥而生成或以其它方式获得MAC,所述次级密钥优选地设定为 非零随机或伪随机值。本文中,"获得"广泛地覆盖例如生成、获取、接收、检索或执行任何其 它合适的对应的动作。在步骤204处,处理电路将MAC和对应的数据单元存储在第一存储装 置中,例如芯片外DDR RAM。在步骤206处,处理电路将数据单元的次级密钥存储在与第一存 储装置不同的第二存储装置中,例如芯片上SRAM或快闪存储器。之后,对于数据读取操作, 在步骤208处,处理电路基于初级密钥、从第一存储装置获得的数据单元、对应的数据单元 索引以及从第二存储装置获得的对应的次级密钥而生成或以其它方式获得新MAC。在步骤 210处,处理电路比较新MAC与连同消息一起从第一存储装置获得的MAC以检测其间的任何 差异,使得处理电路可以且由此检测可能的验证问题。
[0034] 图3相应地说明示例性芯片上和芯片外存储装置300和302。芯片上存储装置300存 储初级密钥(K)303以及分别地由参考数字304!. . .304n指示的各种次级密钥N1. . .Nn,其中 每一次级密钥可以为仅四个字节。如所提出,次级密钥初始地设定为零,且随后动态地生成 为非零随机或伪随机值,每当芯片外存储装置中的对应的数据单元被写入或改变时,设定 或重新设定所述值。次级密钥存储在分别地由参考数字306:. . .306"指示的数据的对应的页 面索引INDEX1. .. INDEXi。芯片外存储装置302存储分别地由参考数字308!. . .308n指示的 对应的数据单元施...Mn的最新版本,其中每一数据单元可以表示在芯片外存储装置的地址 空间内的数据页。数据单元在所述地址空间内存储在对应的页面索引INDEX 1... INDEXn处, 其中所述索引分别地由参考数字31(h. . .310n指示。芯片外存储装置302还存储相对较长的 MAC标签TAG1. . .TAGn,所述MAC标签分别地由参考数字312i. . .312n指示且示出为全局密钥 (K)和对应的次级密钥(Ni)、索引(INDEXi)和数据单元(Mi)的函数F,即,TAGi = F(K,Ni,i, Mi) 〇
[0035] 可以大大减轻系统内的回退攻击,因为,如果恶意实体试图在相同数据单元索引 处将旧数据单元/标签对插入到芯片外存储装置中,那么所述旧标签(部分基于随机生成的 但现在作废的次级密钥而生成)将不匹配基于保持在芯片上存储装置中的当前存储的次级 密钥而生成的比较标签。也就是说,芯片上存储装置将具有更新的次级标签(当在所述特定 索引处的数据最近一次更新时生成)。因此,当从芯片外存储装置检索数据的处理电路执行 MAC验证过程时,所述处理电路将基于所检索的数据、页面索引、全局密钥以及存储在芯片 上存储装置中的次级密钥的最新版本而生成比较标签。比较标签将不匹配存储在芯片外存 储装置中的标签的回退版本(除非新次级标签和旧次级标签碰巧刚好相同,在给定四字节 次级密钥的情况下,这是低概率事件),且将生成适当的差错指示符。
[0036] 可以大大减轻剪切粘贴攻击,因为索引i还用于产生存储在芯片外存储装置中的 MAC标签。如上文所提到,在剪切粘贴攻击中,攻击者或其它恶意实体用来自另一位置的经 加密数据段(例如,具有不同MAC标签的密文)替换某一经加密数据段(例如,密文和其对应 的MAC标签),由此希望当处于新位置时,所得经解密数据将与旧位置相同。然而,在数据单 元索引i用于生成MAC标签以用于存储在芯片外存储装置302中的情况下,来自具有不同索 弓丨的不同数据单元的MAC标签将由此几乎确定地彼此不同。在剪切粘贴攻击中,标签可能碰 巧相同的几率将极小,至少在具有相对较大数目的可能的数据单元索引(例如,大量可用页 面)的典型的存储空间内是如此。
[0037]图4更详细地说明示例性写入操作或过程400,其可以通过图1的SoC处理电路或其 它合适配备的处理电路执行。在步骤402处,处理电路在系统第一次被使用时将所有次级密 钥值设定为零,或设定为其合适的十六进制的等效值。也就是说,在写入到存储装置的任何 部分之前,次级密钥值都设定为零。次级密钥初始地设定为零值,使得处理电路可以容易地 识别尚未被写入的页面。当各种写入操作随后发生时,用最新生成的非零次级密钥值替换 零值。例如,在步骤404处,对于针对索引i的数据单元写入操作,处理电路生成新随机或伪 随机非零次级密钥(N i),其中Ni的大小相对于较长MAC标签较小(例如,四个字节)。因此,针 对每一新数据单元写入,生成、重新生成或更新新次级密钥。N 1的大小相对于MAC标签较小 以便不消耗大量芯片上存储装置,而又足够长(例如,四个字节)以有效地减轻回退攻击和 其它攻击。
[0038]在步骤406处,处理电路组合待存储在存储装置中的特定数据单元或消息(M1)(例 如具有索引(i)的页面)与最新生成的每数据单元次级密钥(N1)以及索引(i)。例如,每一数 据单元可以串连为=N 1后跟着i,再后面是数据单元M1,从而产生串连的次级密钥/索引/数据 单元以用于应用到MAA。也就是说,在此实例中,次级密钥、索引和数据单元串连为: 其中M i是待存储的消息,以由此产生数据单元的经修改版本以用于应用到MAA, 所述MAA方便地并入有索引和次级密钥。以此方式,MAA不需要经修改以接受四个输入值而 非两个。实际上,可以采用其它标准MAA。
[0039] 在步骤406处,处理电路通过将MAA应用到串连次级密钥/索引/数据单元连同全局 初级密钥(K)来生成MAC标签(Ti),所述MA可以由函数F表示。因此,在此实例中,Ti生成为T i = F(K,Ni//i//Mi)。在步骤408处,处理电路将MAC标签(Ti)和对应的数据单元(Mi)存储在芯 片外存储装置中,例如DDR RAM。在步骤412处,处理电路将次级密钥(Ni)和对应的索引(i) 存储在相对更加安全的芯片上存储装置中,例如SRAM。
[0040]图5更详细地说明示例性读取操作或过程500,其可以通过图1的SoC处理电路或其 它合适配备的处理电路执行。在步骤502处,处理电路从芯片外存储装置中的对应的数据单 元索引(i)检索数据单元(Mi)、对应的MAC标签(T i)。在步骤504处,处理电路从芯片上存储装 置检索对应于数据单元索引(i)的次级密钥(N1) 13在步骤506处,处理电路还从芯片上存储 装置检索初级密钥(K)。在步骤508处,处理电路基于初级密钥(K)、从芯片外存储装置检索 的数据单元(M 1)、对应的数据单元索引(i)以及从芯片上存储装置检索的对应的次级密钥 (Ni)而生成新MAC标签(T i)。在步骤510处,处理电路比较新MAC标签与连同数据单元一起从 芯片外装置检索到的MAC标签以检测其间的任何差异,且在于新MAC标签与所检索的MAC标 签之间检测到任何差异时生成差错指示符。
[0041 ]图6参考示例性SoC 600和芯片外存储装置602的各种组件来进一步说明示例性写 入操作,其中示意性地表示各组件。将待存储的数据604路由到芯片外大容量数据存储组件 606以用于在其中存储在一或多个块608内,且还将其路由到SoC的MAA组件610以用于生成 对应的MAC标签以用于存储在芯片外存储装置的授权数据组件612内。在此实例中,一组块0 XO至0X7示出在数据组件606中,所述块各自存储十六个字节且共同地提供指示为614的 128字节页。在实例中,授权数据组件612的个别标签0 X 0 616消耗八个字节,如通过618指 示。为生成MAC,从SoC的存储装置的密钥数据组件622检索全局授权密钥(K)620。在此实例 中,全局密钥是十六字节,如通过624指示。伪随机数生成器(PRNG)组件626在范围[1, OxFFFFFFFF]内生成用于写入操作的次级密钥(Κ0)。由此,排除将零作为次级密钥(出于上 文关于引导程序所描述的原因)。次级密钥存储在页密钥存储组件628内作为密钥630,所述 密钥在此实例中对应于密钥0X0且消耗四个字节,如通过632指示。还将次级密钥路由到 MAA组件610中,所述MAA组件在应用MAA函数之前串连所述密钥与待写入的页面的地址634 以及数据604,以生成MAC标签。如所提到,所得MAC标签存储在芯片外存储装置的授权数据 组件612中以用于在读取操作期间的随后检索。
[0042]图7参考SoC 600和芯片外存储装置602进一步说明示例性读取操作,其中同样示 意性地表示各组件。从芯片外大容量数据存储组件606检索数据608且将其路由到MAA组件 610以用于生成对应的比较MAC标签,以用于与存储在芯片外存储装置的授权数据组件612 内的标签616比较。为从所检索的数据生成比较标签,再次从密钥数据组件622检索全局授 权密钥(K)620。从页密钥存储组件628检索数据的次级密钥(KO)以作为密钥630,且将其路 由到MAA组件610中,所述MAA组件在应用MA函数之前串连所述密钥与被读取的页面的页面 地址634以及数据608,以生成比较MAC标签。在决策框735处将所得比较MAC标签与基于被读 取的页面而从芯片外存储装置的授权数据组件612检索的MAC标签616进行比较,以确定两 个MAC标签是否相同。如果比较MC标签和所检索的MAC标签相同,那么所检索的数据由此被 认为是有效的且通过SoC处理(使用未在此图中示出的各种处理组件)。如果比较MAC标签和 所检索的MAC标签不相同,那么所检索的数据被认为是无效的且被SoC拒绝,且启动读取故 障程序以解决问题(使用未在此图中示出的处理组件)。图7还示出:从次级页密钥存储器或 存储组件628检索的次级密钥(KO)还应用到零比较函数737,所述零比较函数确定所检索的 次级密钥是否为零,在页面尚未被写入(且因此不含待读取数据)时会出现此情况。如果为 零,那么所检索的数据被SoC拒绝为无效的,且启动程序以解决问题(使用未在此图中示出 的处理组件)。
[0043]示例性系统或设备
[0044]图8说明其中可以实施图1到7的组件和方法的整个系统或设备800。根据本发明的 各种方面,元件、或元件的任何部分、或元件的任何组合可以用处理系统814实施,所述处理 系统包含一或多个处理电路804,例如图1的SoC处理电路。例如,设备800可以是移动通信系 统的用户设备(UE)。设备800可与无线网络控制器(RNC) -起使用。除了 SoC之外,处理电路 804的实例还包含微处理电路、微控制器、数字信号处理电路(DSP)、现场可编程门阵列 (FPGA)、可编程逻辑装置(PLD)、状态机、门控逻辑、离散硬件电路以及经配置以执行贯穿本 发明所描述的各种功能性的其它合适的硬件。也就是说,如设备800中使用的处理电路804 可以用于实施上文所描述的且在图1到7中所说明的过程(以及下文论述的在图11和12中所 说明的那些过程)中的任何一或多者,例如用以执行在存储装置805内的数据的验证的过 程。
[0045]在此实例中,处理系统814可以用大体上由总线802表示的总线架构实施。取决于 处理系统814的具体应用和总设计约束,总线802可以包含任何数目的互连总线和网桥。总 线802将各种电路连接在一起,所述电路包含一或多个处理电路(大体上由处理电路804表 示)、存储装置805以及机器可读、处理电路可读或计算机可读媒体(大体上由非暂时性机器 可读媒体806表示)。总线802还可以连接各种其它电路,例如定时源、外设、电压调节器以及 电源管理电路,这些电路是所属领域中众所周知的且因此将不再做任何进一步描述。总线 接口 808提供总线802和收发器810之间的接口。收发器810提供用于经由传输媒体与各种其 它设备通信的装置。取决于设备的性质,还可以提供用户接口812(例如,小键盘、显示器、扬 声器、麦克风操纵杆)。
[0046] 处理电路804负责管理总线802和一般处理,包含存储在机器可读媒体806上的软 件的执行。所述软件在由处理电路804执行时使得处理系统814执行本文中所描述的各种功 能以用于任何特定设备。机器可读媒体806还可以用于存储由处理电路804在执行软件时操 纵的数据。
[0047]处理系统中的一或多个处理电路804可以执行软件。软件应广泛地解释为意指指 令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软 件包、例程、子例程、对象、可执行代码、执行线程、步骤、功能等,而不管其是被称作软件、固 件、中间件、微码、硬件描述语言还是其它。处理电路可以执行必需的任务。代码段可以表示 步骤、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的 任何组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器或存储装置内容 而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息 传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。
[0048] 软件可以驻留在机器可读媒体806上。机器可读媒体806可以是非暂时性机器可读 媒体。举例来说,非暂时性处理电路可读媒体、处理器可读媒体、机器可读媒体或计算机可 读媒体包含:磁性存储装置(例如,硬盘、软盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功 能光盘(DVD))、智能卡、快闪存储器装置(例如,卡、棒或钥匙形驱动器)、RAM、R0M、可编程 ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可移动磁盘、硬盘、CD-ROM以及用于存储可以通过计算机存取和读取的软件和/或指令的任何其它合适的媒体。术 语"机器可读媒体"、"计算机可读媒体"、"处理电路可读媒体"和/或"处理器可读媒体"可以 包含但不限于:非暂时性媒体,例如便携式或固定存储装置;光学存储装置;以及能够存储、 包含或载送指令和/或数据的各种其它媒体。因此,本文中所描述的各种方法可以完全或部 分通过可以存储在"机器可读媒体"、"计算机可读媒体"、"处理电路可读媒体"和/或"处理 器可读媒体"中且通过一或多个处理电路、机器和/或装置执行的指令和/或数据来实施。举 例来说,机器可读媒体还可包含载波、传输线,及用于传输可由计算机存取及读取的软件 和/或指令的任何其它合适的媒体。机器可读媒体806可以驻留在处理系统814中、在处理系 统814外部或跨越包含处理系统814的多个实体分布。机器可读媒体806可以实施于计算机 程序产品中。举例来说,计算机程序产品可以包含封装材料中的处理电路可读媒体。取决于 特定应用及强加于整个系统上的总设计约束,所属领域的技术人员将认识到如何最好地实 施贯穿本发明呈现的所描述功能性。
[0049] 确切地说,机器可读存储媒体806可以具有一或多个指令,所述一或多个指令在由 处理电路804执行时使得处理电路:基于初级密钥、待存储的数据单元、数据单元的对应的 索引以及数据单元的次级密钥而获得消息验证码;将消息验证码和数据单元存储在第一存 储装置中;以及将数据单元的次级密钥存储在第二存储装置中。
[0050] 图式中所说明的组件、步骤、特征和/或功能中的一或多者可重新布置和/或组合 成单个组件、步骤、特征或功能或实施于若干组件、步骤或功能中。在不脱离所描述的特征 和方面的情况下,还可添加另外的元件、组件、步骤和/或功能。图式中所说明的设备、装置 和/或组件可以经配置以执行图式中描述的方法、特征或步骤中的一或多者。本文中所描述 的算法还可以有效地实施于软件中和/或嵌入于硬件中。
[0051] 可用通用处理电路、数字信号处理电路(DSP)、专用集成电路(ASIC)、现场可编程 门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以 执行本文中描述的功能的任何组合来实施或执行结合本文中揭示的实例而描述的各种说 明性逻辑块、模块、电路、元件和/或组件。通用处理电路可以是微处理电路,但在替代实施 例中,处理电路可以是任何常规处理电路、控制器、微控制器或状态机。处理电路还可以实 施为计算组件的组合,例如,DSP和微处理电路的组合、多个微处理电路的组合、结合DSP核 心的一或多个微处理电路的组合或任何其它此类配置。
[0052]因此,在本发明的一个方面中,图1和8中所说明的处理电路100和/或804可以是专 用处理电路(例如,ASIC)),其专门地经设计和/或硬连线以执行在图2、3、5、6和/或7(和/或 下文论述的图11和12)中描述的算法、方法和/或步骤。因此,此专用处理电路(例如,ASIC) 可以是用于执行在图2、3、5、6和/或7(和/或下文论述的图11和12)中描述的算法、方法和/ 或步骤的装置的一个实例。机器可读存储媒体可以存储指令,所述指令在由专用处理电路 (例如,ASIC)执行时,使得专用处理电路执行本文中所描述的算法、方法和/或步骤。
[0053] 图9说明处理电路804的选定和示例性组件。确切地说,图9的处理电路804包含MAC 生成器组件900,其用以基于初级密钥、待存储的数据单元、数据单元的对应的索引以及对 应的数据单元的次级密钥而生成、获取、接收或以其它方式获得MAC。处理电路804还包含第 一 MAC标签/数据单元存储控制器902,其用以将MAC标签和对应的数据单元存储在第一存储 装置906中;以及单独的次级密钥存储控制器904,其用以将数据单元的次级密钥存储在第 二存储装置908中(其中第一和第二存储装置是广义存储装置805的单独组件)。所述处理可 以包含用以执行或控制各种功能的另外组件,例如MAC比较器模块/电路910,其用以比较新 MAC与从第一存储装置获得的MAC以检测其间的任何差异。可以提供差错指示符模块/电路 912,其用以在于新MAC与从第一存储装置获得的MAC之间检测到任何差异时生成或产生差 错指示符。可以提供PRNG模块/电路914以生成或以其它方式获得随机或伪随机数以用于生 成密钥。还可以提供其它组件且图9的说明绝不是穷尽性的。
[0054]图10说明机器可读或计算机可读媒体806的选定和示例性指令组件。确切地说,图 10的机器可读媒体806包含MAC产生器指令1000,所述指令在由图9的处理电路执行时,使得 处理电路基于初级密钥、待存储的数据单元、数据单元的对应的索引以及数据单元的次级 密钥而生成、获取、接收或以其它方式获得MAC。机器可读媒体806还包含第一 MC标签/数据 单元存储指令1002,其用以将MAC标签和对应的数据单元存储在第一存储装置906中;以及 次级密钥存储指令1004,其用以将对应的数据单元的次级密钥存储在第二存储装置908中 (其中第一和第二存储装置是存储装置805的组件)。机器可读媒体806可以包含用以执行或 控制各种功能的另外指令,例如MAC比较器指令1010,其用以比较新MAC与从第一存储装置 获得的MAC以检测其间的任何差异。可以提供差错指示符指令1012以在于新MAC与从第一存 储装置获得的MAC之间检测到任何差异时生成或产生差错指示符。可以提供PRNG指令1014 以生成或以其它方式获得随机或伪随机数以用于生成密钥。还可以提供其它指令且图10的 说明绝不是穷尽性的。
[0055]图11广泛地说明且概述可以通过图8和9的处理电路804或其它适当配备的装置执 行以用于存储数据以准许验证数据的方法或过程1100。在步骤1102处,处理电路基于初级 密钥、待存储的数据单元、数据单元的对应的索引以及数据单元的次级密钥而获得消息验 证码。在步骤1104处,处理电路将消息验证码和数据单元存储在第一存储装置中。在步骤 1106处,处理电路将数据单元的次级密钥存储在第二存储装置中。
[0056]图12广泛地说明且概述可以通过图8和9的处理电路804或其它适当配备的装置执 行以用于验证所存储的数据的方法或过程1200。在步骤1202处,处理电路从第一存储装置 获得数据单元和在对应的数据单元索引处的对应的消息验证码。在步骤1204处,处理电路 基于数据单元索引从第二存储装置获得对应的次级密钥。在步骤1206处,处理电路从第二 存储装置获得初级密钥。在步骤1208处,处理电路基于初级密钥、从第一存储装置获得的数 据单元、对应的数据单元索引以及对应的次级密钥而获得新消息验证码。在步骤1210处,处 理电路比较新消息验证码与从第一存储装置获得的消息验证码以检测其间的任何差异。在 步骤1212处,处理电路在于新消息验证码与从第一存储装置获得的消息验证码之间检测到 任何差异时产生差错指示符。
[0057] 并且,应注意,本发明的各方面可以在本文中描述为某一过程,所述过程描绘为流 程图表、流程图、结构图或框图。尽管流程图表可将操作描述为顺序过程,但是许多操作可 以并行或同时执行。另外,操作的次序可以重新布置。过程在其操作完成时终止。过程可以 对应于方法、函数、步骤、子例程、子程序等。当过程对应于函数时,其终止对应于所述函数 返回到调用函数或主函数。
[0058] 所属领域的技术人员将进一步了解,结合本文中所揭示的方面描述的各种说明性 逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明 硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模 块、电路和步骤。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的 设计约束。
[0059] 预期本文中所描述的各种特征可以在不同系统中实施。应注意,本发明的前述方 面仅为实例,且不应解释为限制性的。本发明的方面的描述意图为说明性的,且不限制权利 要求书的范围。因此,当前教示可以容易应用于其它类型的设备,且所属领域的技术人员将 明白许多替代方案、修改及变化。
【主权项】
1. 一种用于存储数据以准许验证所述数据的方法,其包括: 基于初级密钥、待存储的数据单元、所述数据单元的对应的索引以及所述数据单元的 次级密钥而获得消息验证码; 将所述消息验证码和所述数据单元存储在第一存储装置中;以及 将所述数据单元的所述次级密钥存储在第二存储装置中。2. 根据权利要求1所述的方法,其进一步包括: 在到所述第一存储装置的每一新数据写入操作后获得待存储在所述第一存储装置中 的对应的数据单元的新次级密钥。3. 根据权利要求1所述的方法,其进一步包括通过以下操作来验证存储在所述第一存 储装置中的数据单元: 从所述第一存储装置获得数据单元和在所述对应的数据单元索引处的对应的消息验 证码; 基于所述数据单元索引从所述第二存储装置获得对应的次级密钥; 从所述第二存储装置获得所述初级密钥; 基于所述初级密钥、从所述第一存储装置获得的所述数据单元、所述对应的数据单元 索引以及所述对应的次级密钥而获得新消息验证码;以及 比较所述新消息验证码与从所述第一存储装置获得的所述消息验证码以检测其间的 任何差异。4. 根据权利要求3所述的方法,其进一步包括在于所述新消息验证码与从所述第一存 储装置获得的所述消息验证码之间检测到任何差异时产生差错指示符。5. 根据权利要求1所述的方法,其中所述次级密钥基本上小于所述消息验证码和所述 初级密钥。6. 根据权利要求1所述的方法,其中所述消息验证码MAC是针对对应的数据单元索引 (i)基于全局初级密钥(K)、每数据单元次级密钥(N〇、所述数据单元(MD以及所述数据单元 索弓l(i)而获得的标签(T〇。7. 根据权利要求6所述的方法,其中所述标签(?\)是通过基于所述全局初级密钥(K)、所 述次级密钥(K)以及所述数据单元(MD而将消息验证算法MAA应用到所述对应的数据单元 索引(i)来获得。8. 根据权利要求7所述的方法,其进一步包括在应用所述MAA之前,串连特定的次级密 钥(化)、对应的索引(i)以及所述数据单元(M〇与所述全局初级密钥(K)以获得所述消息验 证码MAC。9. 根据权利要求1所述的方法,其中所述次级密钥是随机或伪随机值中的一者。10. 根据权利要求1所述的方法,其中所有次级密钥值初始地设定为零,且所有随后的 次级密钥值设定为非零值。11. 根据权利要求1所述的方法,其中所述方法在耦合到芯片外存储装置的芯片上系统 装置内操作,且所述第一存储装置包含所述芯片外存储装置。12. 根据权利要求1所述的方法,其中所述方法在具有芯片上存储装置的芯片上系统装 置内操作,且所述第二存储装置包含所述芯片上存储装置。13. -种装置,其包括: 第一存储装置,其用于存储数据单元和消息验证码; 第二存储装置,其用于存储用于验证所述第一存储装置的所述数据单元的验证密钥; 处理电路,其耦合到所述第一和第二存储装置,所述处理电路经配置以 基于初级密钥、待存储的数据单元、数据单元的对应的索引以及所述数据单元的次级 密钥而获得消息验证码; 将所述消息验证码和所述数据单元存储在所述第一存储装置中;以及 将所述数据单元的所述次级密钥存储在所述第二存储装置中。14. 根据权利要求13所述的装置,其中所述处理电路进一步经配置以在到所述第一存 储装置的每一新数据写入操作后获得待存储在所述第一存储装置中的对应的数据单元的 新次级密钥。15. 根据权利要求13所述的装置,其中所述处理电路进一步经配置以通过以下操作来 验证存储在所述第一存储装置中的数据单元: 从所述第一存储装置获得数据单元和在所述对应的数据单元索引处的对应的消息验 证码; 基于所述数据单元索引从所述第二存储装置获得对应的次级密钥; 从所述第二存储装置获得所述初级密钥; 基于所述初级密钥、从所述第一存储装置获得的所述数据单元、所述对应的数据单元 索引以及所述对应的次级密钥而获得新消息验证码;以及 比较所述新消息验证码与从所述第一存储装置获得的所述消息验证码以检测其间的 任何差异。16. 根据权利要求15所述的装置,其中所述处理电路进一步经配置以在于所述新消息 验证码与从所述第一存储装置获得的所述消息验证码之间检测到任何差异时产生差错指 示符。17. 根据权利要求13所述的装置,其中所述处理电路进一步经配置以将所有次级密钥 值初始地设定为零,且进一步经配置以将所有随后的次级密钥值设定为非零值。18. 根据权利要求13所述的装置,其中所述装置集成在芯片上系统装置内,且所述第一 存储装置包含芯片外存储装置。19. 根据权利要求13所述的装置,其中所述装置集成在芯片上系统装置内,且所述第二 存储装置包含芯片上存储装置。20. -种装置,其包括: 用于基于初级密钥、待存储的数据单元、数据单元的对应的索引以及所述数据单元的 次级密钥而获得消息验证码的装置; 用于将所述消息验证码和所述数据单元存储在第一存储装置中的装置;以及 用于将所述数据单元的所述次级密钥存储在第二存储装置中的装置。21. 根据权利要求20所述的装置,其进一步包括用于在到所述第一存储装置的每一新 数据写入操作后获得待存储的对应的数据单元的新次级密钥的装置。22. 根据权利要求20所述的装置,其进一步包括: 用于从所述第一存储装置获得数据单元和在所述对应的数据单元索引处的对应的消 息验证码的装置; 用于基于所述数据单元索引从所述第二存储装置获得对应的次级密钥的装置; 用于从所述第一存储装置获得所述初级密钥的装置; 用于基于所述初级密钥、从所述第一第二存储装置获得的所述数据单元、所述对应的 数据单元索引以及所述对应的次级密钥而获得新消息验证码的装置;以及 用于比较所述新消息验证码与从所述第一存储装置获得的所述消息验证码以检测其 间的任何差异的装置。23. 根据权利要求22所述的装置,其进一步包括用于在于所述新消息验证码与从所述 第一存储装置获得的所述消息验证码之间检测到任何差异时产生差错指示符的装置。24. 根据权利要求20所述的装置,其中所述用于获得所述消息验证码MAC的装置包含用 于针对对应的数据单元索引(i)基于全局初级密钥(K)、每数据单元次级密钥(化)、所述待 存储的数据单元(MO以及所述数据单元索引(i)而获得所述MAC以作为标签(?\)的装置。25. 根据权利要求24所述的装置,其中所述用于获得所述消息验证码MAC的装置包含用 于基于所述全局初级密钥(K)、所述次级密钥(N〇以及所述待存储的数据单元(M〇而将消息 验证算法MAA应用到所述对应的数据单元索引(i)的装置。26. 根据权利要求20所述的装置,其进一步包括用于将新次级密钥值设定为零且用于 将随后的次级密钥值设定为非零值的装置。27. -种具有一或多个指令的媒体可读存储媒体,所述一或多个指令在由至少一个处 理电路执行时使得所述至少一个处理电路: 基于初级密钥、待存储的数据单元、所述数据单元的对应的索引以及所述数据单元的 次级密钥而获得消息验证码; 将所述消息验证码和所述数据单元存储在第一存储装置中;以及 将所述数据单元的所述次级密钥存储在第二存储装置中。28. 根据权利要求27所述的机器可读存储媒体,其进一步具有一或多个指令,所述一或 多个指令在由至少一个处理电路执行时使得所述至少一个处理电路在到所述第一存储装 置的每一新数据写入操作后获得待存储的对应的数据单元的新次级密钥。29. 根据权利要求27所述的机器可读存储媒体,其进一步具有一或多个指令,所述一或 多个指令在由至少一个处理电路执行时使得所述至少一个处理电路: 从所述第一存储装置获得数据单元和在所述对应的数据单元索引处的对应的消息验 证码; 基于所述数据单元索引从所述第二存储装置获得对应的次级密钥; 从所述第二存储装置获得所述初级密钥; 基于所述初级密钥、从所述第一第二存储装置获得的所述数据单元、所述对应的数据 单元索引以及所述对应的次级密钥而获得新消息验证码;以及 比较所述新消息验证码与从所述第一存储装置获得的所述消息验证码以检测其间的 任何差异。30. 根据权利要求29所述的机器可读存储媒体,其进一步具有一或多个指令,所述一或 多个指令在由至少一个处理电路执行时使得所述至少一个处理电路在于所述新消息验证 码与从所述第一存储装置获得的所述消息验证码之间检测到任何差异时产生差错指示符。
【文档编号】G06F21/64GK106062770SQ201580010793
【公开日】2016年10月26日
【申请日】2015年3月2日
【发明人】B·B·布伦利, V·K·代瓦西加马尼, S·N·阿南德
【申请人】高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1