System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 抗侧信道存储器操作制造技术_技高网

抗侧信道存储器操作制造技术

技术编号:42958814 阅读:81 留言:0更新日期:2024-10-11 16:17
用于对数字组件提供者进行隐私保护的方法、系统和设备,包括编码在计算机存储介质上的计算机程序。在一些实现方式中,方法包括访问包括一个或多个位集合的缓冲区;生成随机值序列;从该随机值序列生成表示访问该缓冲区的特定位集合的顺序的索引序列;响应于确定该索引序列中的索引对应于该缓冲区中的位置,按照该索引序列的该顺序在该索引处访问缓冲区的特定位集合中的集合;以及在访问一个或多个位集合中的集合之后对该集合执行一个或多个存储器操作。

【技术实现步骤摘要】
【国外来华专利技术】

本说明书总体涉及存储器操作,例如,实现与memcpy、memcmp和memset类似目的的存储器操作,这些存储器操作抵抗例如故障和功率攻击,并且通常与平台无关。


技术介绍

1、编译器和c程序员利用以下三个基本存储器操作:memcpy (用于移动字节)、memset (通常用于清除存储器)和memcmp (主要用于比较和评估存储器区域的相等性)。然而,这些操作的实现方式(如在大多数编译器中提供的)对于功率分析以及其他黑客攻击或篡改方法来说可是脆弱的。通常,功率分析可包括用于研究装置在它执行操作或计算诸如密码算法等时的功耗的技术。执行这些执行需要一定量的计算力,这可导致独特的功耗模式。通过测量装置在它执行时的功耗,攻击者可推断在执行中涉及的信息,例如在密码算法的情况下的密钥。攻击者可使用该信息来破解加密或获得对受保护数据的访问。可通过基于提供给装置的输入来监视计算的时间而执行类似的分析。定时或功率可被泄露,从而让攻击者了解底层信息。

2、例如,memcpy和memcmp在字节级别按顺序操纵存储器,使得它们容易受到汉明权重(hw)模型功率攻击。函数memcmp可泄漏两个缓冲区共享的最大前缀的大小。函数memset通常不会泄露太多数据,但是由于它写入一长串零,因此它可具有可由攻击者用作定时源的独特的功率签名。

3、尽管memcmp泄漏是恒定时间加密代码试图解决的众所周知的问题,但它可能仍然泄漏存储器信息,并且可能仍然容易受到功率分析以及本领域已知的其他攻击方法的攻击,如所讨论的。尽管存在各种解决方案,但是它们通常依赖于硬件的行为和关于特定编译器如何工作的假设。没有缓解措施被广泛地设计为独立于平台——即,能够跨平台重用。现有的解决方案还经常利用易失性存储器操作,这些易失性存储器操作是显著的优化障碍,比实际需要的要强得多,但效率可能更低。


技术实现思路

1、本说明书中描述的主题的一个创新方面体现在一种方法中,该方法包括:访问包括一个或多个位集合的缓冲区;生成随机值序列;从随机值序列生成表示访问缓冲区的特定位集合的顺序的索引序列;响应于确定索引序列中的索引对应于缓冲区中的位置,按照索引序列的顺序在索引处访问缓冲区的特定位集合中的集合;以及在访问一个或多个位集合中的集合之后对该集合执行一个或多个存储器操作。

2、该方面和其他方面的其他实现方式包括对应的系统、设备和计算机程序,这些计算机程序被配置为执行这些方法的动作、编码在计算机存储装置上。一种这样的实现方式是存储能够由计算机系统执行以执行这些方法的动作的一个或多个指令的非暂时性计算机可读介质。另一种这样的实现方式体现在包括一个或多个处理器和与一个或多个处理器可互操作地耦合并存储一个或多个指令的机器可读介质的系统中,该一个或多个指令在由该一个或多个处理器执行时执行这些方法的动作。一个或多个计算机的系统可由于在系统上安装的在操作中使该系统执行动作的软件、固件、硬件或它们的组合而如此配置。一个或多个计算机程序可通过具有在由数据处理设备执行时使该设备执行动作的指令而如此配置。

3、前述和其他实施例可各自可选地单独或组合包括以下特征中的一者或多者。例如,在一些实现方式中,生成随机值序列包括:从熵传递硬件获得值;以及使用来自熵传递硬件的值作为起始密钥来从数字生成器生成值。

4、在一些实现方式中,动作包括向数字生成器提供一个或多个要求,其中一个或多个要求包括表示缓冲区的各部分的一个或多个值。

5、在一些实现方式中,从随机值序列生成表示访问缓冲区的一个或多个位集合中的特定集合的顺序的索引序列包括:将随机值序列中的值加上与缓冲区的起始存储器位置相对应的存储器偏移值。

6、在一些实现方式中,执行一个或多个存储器操作包括:将位拷贝到缓冲区或从缓冲区拷贝位。在一些实现方式中,执行一个或多个存储器操作包括:将缓冲区中的位重置为随机位或0位。在一些实现方式中,执行一个或多个存储器操作包括:将缓冲区的位与第二缓冲区的位进行比较。

7、在一些实现方式中,动作包括:访问包括一个或多个位集合的第二缓冲区;以及按照索引序列的顺序访问第二缓冲区的第二位集合。

8、在一些实现方式中,按照索引序列的顺序在索引处访问缓冲区的特定位集合中的集合包括:访问缓冲区的与该索引相对应的部分,其中该部分包括特定位集合中的集合。

9、在一些实现方式中,确定索引序列中的索引对应于缓冲区中的位置包括:确定索引序列中的索引对应于缓冲区的特定位集合中的集合。

10、在一些实现方式中,动作包括:确定索引序列中的第二索引不对应于缓冲区的一个或多个位;以及基于确定索引序列中的第二索引不对应于缓冲区的一个或多个位,访问一个或多个位并对该一个或多个位执行诱骗(decoy)操作。

11、有利的实现方式可包括以下特征中的一个或多个。所描述的技术可使得存储器操作能够在处理装置上发生而不泄漏足以供黑客或其他用户获得敏感信息的信息。所描述的技术可确保相对于输入位乱序地处理给定的输入数据,使得相同的输入数据在被处理一次以上时可产生不同的功率轨迹——例如,以阻止如本文档中所讨论的功率分析攻击。所描述的技术可包括生成要处理的位集合的索引的随机数引擎。随机数引擎可生成足够的索引,使得输入数据的所有位都被处理,但是输入数据的一些部分可被处理一次以上,并且可针对由随机数引擎生成的不包括在输入数据中的索引来处理没有被包括在输入数据中的一些数据(例如诱骗数据)。这种形式的混淆可有效地阻止黑客攻击,同时保持处理效率,例如,与涉及易失性存储器操作的更密集的安全措施不同。

12、在附图和以下描述中阐述本专利技术的一个或多个实施例的细节。根据所述描述、附图和权利要求书,本专利技术的其他特征和优点将变得显而易见。

本文档来自技高网...

【技术保护点】

1.一种方法,包括:

2.如权利要求1所述的方法,其中生成所述随机值序列包括:

3.如权利要求2所述的方法,进一步包括:

4.如任一项前述权利要求所述的方法,其中从所述随机值序列生成表示访问所述缓冲区的所述一个或多个位集合中的特定集合的所述顺序的所述索引序列包括:

5.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

6.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

7.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

8.如权利要求7所述的方法,进一步包括:

9.如任一项前述权利要求所述的方法,其中按照所述索引序列的所述顺序在所述索引处访问所述缓冲区的所述特定位集合中的所述集合包括:

10.如任一项前述权利要求所述的方法,其中确定所述索引序列中的所述索引对应于所述缓冲区中的位置包括:

11.如任一项前述权利要求所述的方法,进一步包括:

12.如权利要求11所述的方法,其中所述诱骗操作包括以下中的一个或多个:将现有存储器值拷贝到同一存储器位置或将未使用的存储器位在存储器中移动一个或多个位。

13.一种非暂时性计算机可读介质,存储能够由计算机系统执行以执行操作的一个或多个指令,所述操作包括:

14.如权利要求13所述的介质,其中生成所述随机值序列包括:

15.如权利要求14所述的介质,其中所述操作包括:

16.如权利要求13至15中任一项所述的介质,其中从所述随机值序列生成表示访问所述缓冲区的所述一个或多个位集合中的特定集合的所述顺序的所述索引序列包括:

17.如权利要求13至16中任一项所述的介质,其中执行一个或多个存储器操作包括:

18.如权利要求13至17中任一项所述的介质,其中执行一个或多个存储器操作包括:

19.如权利要求13至18中任一项所述的介质,其中执行一个或多个存储器操作包括:

20.一种系统,包括:

21.一种方法,包括:

22.如权利要求21所述的方法,其中掩蔽所述索引以掩盖所述序列算法的内部结构包括:配置要由编译器执行的代码以防止所述编译器不执行所述代码的一个或多个部分。

23.如权利要求21至22中任一项所述的方法,其中对所述索引执行所述屏障函数包括配置要由编译器执行的代码以确保迭代步骤按照确定的顺序发生。

24.如权利要求21至23中任一项所述的方法,其中要执行的所述存储器操作包括拷贝、重置或比较位中的一个或多个。

25.如权利要求21至24中任一项所述的方法,其中选择要执行的所述存储器操作包括:

26.如权利要求21至25中任一项所述的方法,进一步包括:

...

【技术特征摘要】
【国外来华专利技术】

1.一种方法,包括:

2.如权利要求1所述的方法,其中生成所述随机值序列包括:

3.如权利要求2所述的方法,进一步包括:

4.如任一项前述权利要求所述的方法,其中从所述随机值序列生成表示访问所述缓冲区的所述一个或多个位集合中的特定集合的所述顺序的所述索引序列包括:

5.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

6.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

7.如任一项前述权利要求所述的方法,其中执行一个或多个存储器操作包括:

8.如权利要求7所述的方法,进一步包括:

9.如任一项前述权利要求所述的方法,其中按照所述索引序列的所述顺序在所述索引处访问所述缓冲区的所述特定位集合中的所述集合包括:

10.如任一项前述权利要求所述的方法,其中确定所述索引序列中的所述索引对应于所述缓冲区中的位置包括:

11.如任一项前述权利要求所述的方法,进一步包括:

12.如权利要求11所述的方法,其中所述诱骗操作包括以下中的一个或多个:将现有存储器值拷贝到同一存储器位置或将未使用的存储器位在存储器中移动一个或多个位。

13.一种非暂时性计算机可读介质,存储能够由计算机系统执行以执行操作的一个或多个指令,所述操作包括:

14.如权利要求1...

【专利技术属性】
技术研发人员:米格尔·克里斯蒂安·扬德拉索塔
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1