配置有表格网络的计算设备的制造方法

文档序号:9204528阅读:435来源:国知局
配置有表格网络的计算设备的制造方法
【技术领域】
[0001] 本发明设及被配置成计算关于函数-输入值的数据函数的计算设备,该设备包括 存储被配置用于数据函数的第一表格网络的电子存储装置,该计算设备包括禪合至所述存 储装置并且被配置成获取用于第一表格网络的多个第一表格输入的电子处理器,多个第一 表格输入包括函数-输入值,并且该计算设备被配置成通过向多个第一表格输入应用第 一表格网络W产生多个第一表格输出来计算数据函数,多个第一表格输出包括函数-输出 值,函数-输出值对应于向函数-输入值应用数据函数的结果。
【背景技术】
[0002] 在传统的密码学中,通常假定攻击者仅能访问安全系统的输入和输出值。例如,攻 击者将能够观察进入系统中的普通文本W及从系统出来的加密文本。尽管攻击者可能通过 分析该样的输入/输出对、甚至可能使用在计算上强烈的方法来尝试得到优势,但是没有 想到他直接访问实施输入/输出行为的系统。
[0003] 最近,将其中假定攻击者对实施有一些了解的威胁模型考虑进去已经成为必要。 例如,人们可考虑边-信道分析W及逆向工程的威胁。此外,之前大多与安全性问题关联的 关注已经延伸至其它的领域,诸如私密(privacy)。尽管处理诸如密钥的安全性信息的密码 系统仍然是主要的关注点,但是其它程序(例如,处理私密相关的信息的那些程序)的保护 也已经变得重要。
[0004] 很久已经知道计算机系统通过所谓的边-信道泄露一些信息。观察计算机系统的 输入-输出行为可能不会提供关于敏感信息(例如由计算机系统使用的密钥)的任何有用的 信息。但是,计算机系统具有可W被观察的其它的信道,例如,其功耗或者电磁福射,该些信 道被称为边-信道。例如,可W测量由不同的指令所消耗的功率方面的变化W及在执行指 令时所消耗的功率方面的变化。所测量到的变化可与敏感信息(例如密钥)有关。该种超越 可观察和意图的输入-输出行为的关于秘密信息的附加信息被叫做边-信道。通过边-信 道,计算机系统在其使用期间可能"泄露"秘密信息。观察和分析边-信道可能让攻击者访 问比仅从输入-输出行为的密码分析获取的信息更佳的信息。一种已知的类型的边-信道 攻击是所谓的差分功率分析(DPA)。
[0005] 当前针对边-信道问题的方法在计算中引入了随机性。例如,在执行程序的真正 的操作之间,虚拟指令可能被插入W模糊功耗和程序正在对其起作用的数据之间的关系。
[0006] 计算机上的甚至更强的攻击是所谓的逆向工程。在许多安全性情境中,攻击者可 完全地访问计算机。该给予它们分解程序并且获取关于计算机和程序的任何信息的机会。 给予足够的努力,攻击者可能发现比如隐藏在程序中的任何钥匙。
[0007] 保护对抗该攻击情境已经证明是非常困难的。一种类型的对策是所谓的白盒 密码学。在白盒密码学中,钥匙和算法被组合。所得到的算法只针对一个特定的钥匙起 作用。接下来,算法可W被实施为所谓的查找表网络。计算被变换成依赖于钥匙的表 格中的一系列查找。例如,对于该方法的示例,参见S.化OW,P.Eisen,H.化hnson, P.C.vanOorschot的"白盒密码学和AES实施(White-BoxCryptographyandanAES Implementation)"。

【发明内容】

[0008] 对抗针对计算机系统的边-信道攻击的已知的对策不是完全地令人满意的。例 如,通过统计分析可反击随机性的引入。通过对程序的操作的更加高级的分析,可W反击软 件的混淆。因而,存在针对更多且更佳的对策的需要。
[0009] 例如,一种混淆计算机程序的方式是对输入值进行编码并且在被编码的值上尽可 能多地进行操作。人们甚至可使用所谓的表格网络来实行计算。该样的表格网络可W手工 制作或者通过专口的程序制作(例如,在白盒密码学的情形中),或者通过通用的编译器来 制作。一般而言,相信表格会混淆被实行的操作的类型。然而,发明人已经发现后者一般不 是真实的。
[0010] 即使函数的(多个)输入和(多个)输出被编码,输入/输出关系的统计属性可揭示 哪个函数正在被编码。该现象的示例如下。
[0011] 考虑W= {0, 1,. . .,N-U,编码E,和其对应的解码D=E-1。让和 G分别表示被编码的模数N加法W及被编码的模数N乘法。也就是说,将 WXWW定义为FC;c,3,)二£(0(x) 0(>?)),其中感;V-表示模数N加法,W及将 G;抹'XW一IV定义为G(x,>')二£(0(x) *扣£}(>')),其中表示模数N乘法。
[0012] 对于每个固定的X,我们具有{巧x,_r)|yGW} =w.而且,对于每个非零的 X巨WW及N素数,我们具有{G托_、,)lye睐-}=眠W及{G化y)Iye协'} =E(巧. 对于非素数的N,发生类似的模式。
[0013] 结果,人们可W独立于编码E确定F不可能是被编码的模数N乘法,W及G不可能 是被编码的模数N加法。攻击者至少具有两种方式来该样做。他可固定W中的两个不同的 元素和毛,并且对于HeCF,邱针对所有的y将好Csv.v)和听卸内进行比较。如果对 于所有的_7,该些量是不同的,则H不可能代表模数N乘法;如果对于一些_7,该些量一致, 则H不可能代表模数N加法。不能选取哪个表格入口要读取、但是可W观察运行软件程序 的表格访问的结果的攻击者可W使用W下事实;W中的每个元素经常同等地作为具有G的 期间(while)的输出而发生,元素E(0)更加频繁地作为输出发生。因此,如果W中的元素 比W中的其它元素更加经常地作为H的输出而发生,则H更加可能是被混淆的模数N乘法, 而不是被混淆的模数N加法。
[0014] 换言之,即使人们使用可用的最佳的软件混淆方法中的一种方法,即,如果人们使 用针对计算的输入和输出值W及表格网络的全编码,则通过程序的检验仍可获取一些信 息。该情况是非常不期望的。
[0015] 已经发现该问题通过同时在多个输入值上操作的表格网络的引入而被解决。表 格网络可向不同的输入或者输入组应用不同的函数。使用向单个值加密的编码,多个输 入中的两个或者更多个一起被加密到单个的值中,攻击者确定表格网络意图针对什么函 数变为不可能,因为,实际上其实行两个函数。参见于2012年12月21日提交的、具有号 码US61/740691、W及标题"包括表格网络的计算设备(Computingdevicecomprisinga t油lenetwork)"的美国临时申请和/或同一标题"包括表格网络的计算设备(Computing devicecomprisingat油lenetwork)"的欧洲专利申请,欧洲专利申请具有申请日2012 年12月27日W及申请号EP12199387。
[0016] 尽管该系统相当地增加了安全性,但是仍有攻击向量,尤其是如果攻击模型被进 一步拓宽。我们假定攻击者不仅具有全访问使得他可观察在系统中发生的每件事,我们还 准备了能够修改程序的攻击者。我们考虑两种该样的修改,对表格入口的修改W及对变量 的修改。第一种类型的修改在攻击者上较少地假定,因为可W在程序执行已经开始之前就 做出修改,后一类型的修改是在程序正在运行是完成,并且因此被考虑为更难。例如,攻击 者可能尝试下面的攻击(主要可能W自动的方式)。他修改表格中的入口,并且针对各种输 入运行修改的程序。如果该些运行中没有运行示出原始的程序和经修改的程序的输出中 的任何差异,则他断定经修改的表格入口和未经修改的表格入口就相关的数据而言是同等 的,并且只是在混淆计算方面(即,所谓的状态变量和状态函数)不同。给予足够的时间,可 W构建就正确的计算而言是同等的值的类别的图。因而,状态变量被有效地消除。要清楚, 由于编码的原因,攻击者将不能够直接观察数据值是否是相同的,而状态值是不同的,但是 他可能能够从分析表格修改的效果来推断该一点。
[0017] 将有利的是,具有被配置成计算关于函数-输入值的数据函数的计算设备,该计 算设备具有对抗程序修改的增强的恢复力。
[0018] 提供了被配置成计算关于函数-输入值的数据函数的计算设备,该计算设备至少 处理该关注。
[0019] 计算设备包括电子存储装置W及禪合至存储装置的电子处理器。电子存储装置被 配置成存储被配置用于数据函数f的第一表格网络W及第二表格网络,第二表格网络被配 置成与第一表格网络合作W反击对第一表格网络做出的修改。
[0020] 处理器(例如,通过合适的计算机处理器代码)被配置成获取用于第一表格网络的 多个第一表格输入,多个第一表格输入包括函数-输入值,并且处理器被配置成通过向多 个第一表格输入应用第一表格网络W产生多个第一表格输出来计算数据函数,多个第一表 格输出包括函数-输出值,函数-输出值对应于向函数-输入值应用数据函数的结果。
[0021] 处理器还被配置成获取用于第二表格网络的多个第二表格输入,第二表格输入包 括多个第一表格输出并且第二表格输入与多个第一表格输入共享至少一个输入,并且处理 器被配置成向多个第二表格输入应用第二表格网络,第二表格网络被配置成针对多个第一 表格输出中的至少具体的一个验证未修改的第一表格网络是否能够从给定的多个第一表 格输入中的至少一个获取多个第一表格输出中的该具体的一个。
[0022] 第二表格网络产生包括被保护的函数输出的第二表格输出,在验证是成功的情形 中,被保护的函数输出等于函数输出,W及在验证是不成功的情形中,被保护的函数输出不 等于函数输出。例如,人们可W配置第二表格网络,使得在验证是不成功的情形中,被保护 的函数输出总是不相等的。然而,在有利的实施方式中,输出被随机化,例如,在不成功的验 证的情形中,在构造表格时随机地选择输出。在后一情形中,人们可能偶尔具有相等的输 出。采取状态变量和随机输出作为参考,人们可能要求在不成功的验证的情形中,输出在至 少90%的情形(即,所有的表格入口,即所有的可能的第一表格输入)中应当是不相等的。
[0023] 因而,该计算设备W深奥的方式被混淆并且保护对抗早前概述的修改攻击。实际 上,第一表格网络在多个输入上操作并产生多个输出。多个输入当中是到数据函数的输入 中的至少一个输入,W及多个输出当中是至少函数输出。在W上提到的专利申请中,已经描 述了可各种方式来构造该样的表格网络。作为该样的构造的一部分,数据函数可能已 经针对所有可能的输入值被评估。
[0024] 第二表格网络验证第一表格网络的计算的一部分。为此,第二表格网络接收第一 表格网络的输出并且共享到第一表格网络的多个输入中的至少部分。由于第二表格网络不 一定具有所有的多个输入值,所W第二表格网络完成全计算也许是不可能的。然而,选取第 二表格网络使得其能够针对多个第一表格输出中的至少一个验证未修改的第一表格网络 是否将具有给定的不同值。换言之,第二表格网络验证包括输入的多个第一表格输入中的 至少一个的多个第一表格输入的存在,未修改的第一表格网络从其中获取多个第一表格输 出中的具体的一个。实现该一点的一种实际的方式是实行第一表格网络完成的相同的计算 中的部分或全部,但是该不是严格地必要的,例如,给定函数输入的部分,也许可能的是,断 定一些函数输出已经成为不可能。而且,在后一示例中,通过在编译期间枚举,该兼容性将 被建立并且在执行期间被查找。
[00巧]第二表格网络可与多个第一表格输入分享输入至少存在两种方式,第一选项是第 一表格网络的输入中的一个被拷贝到第二表格网络。该方法的结果是如果输入与其它的输 入一起被编码,则它们也将是到第二表格网络的输入。该可能导致比期望的更大的表格。在 某种程度上,使用提取表格(例如,状态提取表格)W从被一起编码的输入中获取一个或多 个输入(例如,状态),该一点可被补救。第二选项是使用影子变量,也就是说,第一网络的多 个输入中的一个或多个可能在不同的编码中至少被维持至少两次。例如,第一表格网络可 具有函数和状态输入,而第二表格网络仅共享状态输入。在该情形中,不需要直接地从第一 表格网络的输入拷贝第二表格网络的输入。该两个网络具有一个或多个共用的输入,但是 共用的输入不需要必然直接地来自于同一源。该可导致第二表格网络中的较小的表格。另 一方面,其要求至少在程序的一部分中变量中的一些被维持两次,即所谓的影子变量。
[0026] 在第二表格网络检测到对第一表格网络的修改的情形中,其修改函数输出,即,输 出不等于函数输出的被保护的函数输出。该具有W下效果:攻击者将看见由于攻击者的并 非偶然的修改导致的改变。例如,即使攻击者已经修改了不相关的数据(例如,状态),该也 可能由第二表格网络检测到,而第二表格网络又引起改变扩散至数据变量。总而言之,如果 可能话的,W上概述的攻击变得更难。
[0027] 在实施例中,多个第一表格输入进一步包括状态-输入值,并且多个第一表格输 出进一步包括状态-输出值,其中状态-输出值等于向状态-输入值应用状态函数的结果, 并且第二表格网络被配置成采取状态-输入值作为输入,第二表格网络被配置成使得在向 状态-输入值应用状态函数的结果等于包括在被输入至第二表格网络的多个第一表格输 出中的状态值的情形中,被保护的函数输出等于函数输出。
[0028] 通过计算彼此独立的两个函数(同一表格网络中的数据函数和状态函数),验证它 们中的一个成为可能。因而,需要在第二表格网络中完成的工作量被减少。结果,人们可W 设计具有较少的输入的第二表格网络,该具有显著地更小的表格的结果。
[0029] 在实施例中,第一表格网络被配置成采取被编码的输入值作为输入,被编码的输 入值将函数-输入值与被一起编码的状态-输入值一起组合成单个的值,并且第一表格网 络被配置成产生第一被编码的输出值作为输出,第一被编码的输出值将函数-输出值与被 一起编码的状态-输出值一起组合成单个的值,其中状态-输出值等于向状态-输入值应 用状态函数的结果,第二表格网络被配置成采取第一表格网络的第一被编码的输出值W及 状态-输入值和函数-输入值中的至少一个作为输入,第二表格网络被配置成产生第二被 编码的输出值、包含被保护的函数输出的被编码的输出值作为输出。
[0030] 对多个输入中的一些或全部和/或多个输出中的一些或全部进行一起编码使得 对设备的逆向工程更难。攻击者不直接地知晓值代表什么或者该值实际上是什么。
[0031] 编码(经常被称为"E")至少部分是可逆的,也就是说,对于一些被编码的函数输入 值和
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1