用于表格网络的迭代应用的计算设备的制作方法

文档序号:14685595发布日期:2018-06-14 17:58阅读:153来源:国知局
本发明涉及包括电子存储装置和耦合到存储装置的电子处理器的计算设备,存储装置存储表格网络,处理器配置成通过应用表格网络计算函数。本发明还涉及计算方法、编译器和对应的计算机程序。
背景技术
::在传统加密术中,典型地假定攻击者仅获得对安全系统的输入和输出值的访问。例如,攻击者将能够观察到去往系统中的纯文本并且观察到从系统出来的经加密文本。尽管攻击者可能尝试通过分析这样的输入/输出对来获得优势,可能地甚至使用计算密集型方法,但是并不认为他具有对实现输入/输出行为的系统的直接访问。最近,已经变得必要的是考虑到威胁模型,其中假定攻击者具有对实现的一些认识。例如,可以考虑侧信道分析以及反向工程的威胁。此外,之前大多与安全问题相关联的顾虑已经扩展到其它领域,诸如隐私。尽管处理安全信息(诸如加密密钥)的加密系统保持为主要顾虑,但是例如那些处理隐私相关信息的其它程序的保护也已经变得重要。长久已知的是,计算机系统通过所谓的侧信道而泄露一些信息。观察计算机系统的输入-输出行为可能不提供关于敏感信息的任何有用信息,诸如由计算机系统使用的保密密钥。但是,计算机系统具有可以观察到的其它信道,例如其功耗或者电磁辐射;这些信道被称为侧信道。例如,可以测量由不同指令消耗的功率中的小变化和执行指令时所消耗的功率中的小变化。所测量的变化可以与诸如加密密钥之类的敏感信息相关。超出可观察和意图的输入-输出行为的关于保密信息的这种附加信息被称为侧信道。通过侧信道,计算机系统可能在其使用期间“泄露”保密信息。观察和分析侧信道可能给予攻击者对于比可以仅从输入-输出行为的加密分析所获得的更好信息的访问。一种已知类型的侧信道攻击是所谓的微分功率分析(DPA)。针对侧信道问题的当前方案在计算方面引入随机性。例如,在执行程序的真正操作之间,可以插入哑元指令以使功耗与程序所工作于的数据之间的关系模糊。对计算机甚至更强烈的攻击是所谓的反向工程。在许多安全情景中,攻击者可能具有对计算机的完全访问。这给予它们分解程序并且获得关于计算机和程序的任何信息的机会。在给定足够努力的情况下,比方说隐藏在程序中的任何密钥可能由攻击者找到。抵抗该攻击场景进行保护已经证实非常困难。一种类型的应对措施是所谓的白箱加密。在白箱加密中,密钥和算法组合。所得算法仅针对一个特定密钥工作。接下来,算法可以实现为所谓的查找表网络。计算变换成依赖于密钥的表格中的查找序列。参见例如S.Chow,P.Eisen,H.Johnson,P.C.vanOorschot的例如这种方案的“White-BoxCryptographyandanAESImplementation”。技术实现要素:抵抗针对计算机系统的侧信道攻击的已知应对措施不是完全令人满意的。例如,随机性的引入可能由统计分析应对。软件的模糊化可能由程序的操作的更高级分析应对。因而存在针对更多以及更好的应对措施的需要。已经发现,该问题通过同时对多个输入值操作的表格网络的引入而解决。表格网络可以将不同函数应用到不同输入或输入群组。通过使用将多个输入中的两个或更多一起加密到单个值中的向单个值的编码,攻击者确定表格网络意图用于什么函数变得不可能,因为实际上其执行两个函数。参见2012年12月21日提交的编号为US61/740,691且题为“Computingdevicecomprisingatablenetwork”的美国临时申请和/或2012年12月27日提交且提交编号为EP12199387的相同题目“Computingdevicecomprisingatablenetwork”的欧洲专利申请。尽管该系统显著增加安全性,但是保留有攻击矢量,尤其是攻击模型进一步加宽的情况下。我们不仅假定攻击者具有完全访问使得他可以观察到系统中发生的每一件事情,我们还针对能够修改程序的攻击者做准备。我们考虑两个这样的修改,对表格条目的修改和对变量的修改。第一种类型的修改对攻击者做出较少假定,因为修改可以在程序执行已经开始之前做出;后一种类型的修改在程序运行时完成并且因此被视为更困难。例如,攻击者可能尝试以下攻击(最为可能地以自动化方式)。他修改表格中的条目并且针对各种输入运行经修改的程序。如果没有运行示出原始程序和经修改的程序的输出方面的任何差异,则他推断出经修改的表格条目和未经修改的表格条目在涉及相关数据的范围内相等并且仅在模糊化计算方面不同,即所谓的状态变量和状态函数。在给定足够时间的情况下,可以建立起在涉及正确计算的范围内相等的值的分类的图。有效地,因而消除状态变量。为了清楚起见,由于编码,攻击者将不能够直接地观察,如果数据值相同而状态值不同的话,但是他可能能够通过分析表格修改的效果而导出这一点。将有利的是具有一种计算设备,其配置成以抵抗程序修改的增大弹性而在函数输入值上计算数据函数。参照相同申请人于2013年2月22日提交且通过引用并入本文的题为“Computingdeviceconfiguredwithatablenetwork”的欧洲专利申请13156302。该申请包含编码、表格网络等的附加示例。提供了配置成在函数输入值上计算数据函数的计算设备,其解决至少该顾虑。计算设备包括电子存储装置和耦合到存储装置的电子处理器。存储装置存储表格网络的序列。处理器配置成通过应用表格网络序列中的表格网络而在全局数据输入和全局状态输入上计算经迭代的函数。序列的表格网络配置用于对应的数据函数和状态函数,并且配置成根据对应的数据函数将数据输入映射到数据输出并且同时根据状态函数将状态输入映射到状态输出。电子处理器配置成迭代向全局数据输入和全局状态输入应用表格网络序列,迭代应用的表格网络中的表格网络(即第一表格网络),以及向序列的前一表格网络的数据输出和状态输出应用所述迭代的接连表格网络,序列的经迭代应用在全局数据输入上确定全局数据函数并且在全局状态输入上确定全局状态函数,由此获得中间数据输出和中间状态输出。电子存储装置还存储保护表格网络,其配置成与表格网络序列协作以用于应对针对序列的表格网络所做出的修改,保护表格网络配置成作为输入而接收:中间状态输出和全局状态输入。保护表格网络配置成验证应用于全局状态输入的全局状态函数产生中间状态输出。如果利用白箱加密而可能的代码模糊化可以更一般地应用,则将是有利的。传统白箱加密是静态的;其将算法变换成固定的表格网络并且使用表格模糊化变换网络,例如输入和输出的编码。这种类型的模糊化可以通过与状态变量一起编码数据变量而改进。如果基于表格的计算的安全性(例如在白箱加密中所使用的)可以应用在非静态计算中,则将是有利的。例如,使用基于表格的计算的一个阻碍是向迭代结构应用系统,诸如循环(loop)、条件执行(while-do)、持续直到(for-until)构造等等。系统提供迭代地应用的表格序列或表格网络。与数据函数一起,序列还计算状态函数。通过验证状态函数,整个迭代得以验证。序列中的表格网络以序列次序应用,序列通过以相同次序多次应用所有表格网络而迭代。在实施例中,序列应用两次或更多次。如果序列对与状态变量一起加密的数据变量(输入或输出)起作用,则验证组合的数据和状态计算的序列得以进一步改进。在实施例中,全局数据输入和全局状态输入一起编码到单个全局输入中。在实施例中,序列的表格网络的数据输入和状态输入一起编码到单个输入中。在实施例中,序列的表格网络的数据输出和状态输出一起编码到单个输出中。在实施例中,中间数据输出和中间状态输出一起编码到单个中间输出中。在实施例中,受保护的数据输出和受保护的状态输出一起编码到单个受保护的输出中。通过应用序列的表格网络一次而获得的状态函数被称为单迭代状态函数。发明人洞悉到,单迭代状态函数可以与数据函数相独立地选择。单迭代状态函数可以选择成使得作为表格网络的实现要求比序列中使用的更少的表格,并且还要求比第一序列中的表格网络一起完成的更少的存储装置。此外,单迭代状态函数可以选择成使得迭代单迭代状态函数要求更少的表格和/或存储装置。在实施例中,状态表格网络包括比序列中的表格网络一起更少的表格。在实施例中,存储装置上的状态表格网络的大小小于存储装置上的序列的大小。状态表格网络和/或保护表格网络没有迭代并且仅应用一次,即便是第一序列迭代的情况下。例如,针对单迭代状态函数的有利选择是等幂函数。等幂函数的多个迭代给出与函数的一个迭代相同的结果。因而,为了获得与第一序列的多个应用相同的状态函数,单迭代状态函数仅需要应用一次。这显著地简化保护网络的构造。针对单迭代状态函数的另一有利选择是零幂函数。零幂函数具有相关联的数目q,使得函数的q个应用恒等。这意味着保护网络仅需要能够验证单迭代状态函数的高达q个应用,因为q+1'应用等于单迭代状态函数本身。在实施例中,保护表格网络配置成取决于序列的迭代数目而接收另外的输入。这允许保护网络查找单迭代状态函数的那些应用的结果。接收迭代数目很好地适于使用零幂单迭代状态函数。在该情况下,状态网络可以查找全局状态输入和迭代数目的组合,以获得验证状态。例如,另外的输入可以是迭代数目,可能地以编码形式。对于等幂函数,如果另外的输入指示迭代数目是0还是大于0,则将是足够的;这可以表示为单个位。不管怎样,更大的编码是可能的。同样地,对于阶为q的置换,模为q的迭代数目是足够的。在实施例中,循环实现为两个表格网络,一个针对高达预确定数目迭代的迭代,并且另一个针对不受限制数目的迭代。前一表格网络可以接收受限于预确定数目迭代的另外输入,而后一表格网络可以不接收另外输入。计算设备然后可以包含控制逻辑以用于取决于迭代数目而从两个表格网络选择表格网络。在实施例中,控制代码配置成对序列的迭代数目计数并且作为应用而将迭代数目供应给保护网络。针对单迭代状态函数的特别感兴趣的选择是恒等式。在该情况下,由序列的表格网络实现的各个状态函数可以是任何函数,只要其函数合成是恒等式。这可以通过验证全局状态输入等于序列的最后迭代的最后表格网络的最后状态输出而使用。保护网络可以对与序列所接收的相同的全局状态输入起作用,但是这不是必要的。第一序列和保护网络的状态输入可以来自不同源。不同源布置成使得在没有篡改的情况下两个状态相同。在应用迭代的第一序列和保护网络之后,状态中的差异使得数据值改变。在实施例中,序列中的至少一个表格网络接收附加输入,例如从除前一表格网络之外的另外源。表格网络的中间数据输出可以依赖于附加输入,中间状态输出不依赖于附加输入。附加输入可以或者可以不与附加状态输入一起加密。以此方式,附加输入不干扰中间状态输出与验证状态之间的关系。即便附加输入不贡献于状态改变,可能接收附加输入的表格中的修改将改变表格的状态输出。因而,仍旧在涉及这样的附加输入的计算上做出检查。例如,附加输入可以是往返密钥,在序列表示分组密码的单个往返的情况下。本发明的一方面涉及包括电子存储装置和耦合到存储装置的电子处理器的计算设备,其配置成应用表格网络的序列。序列具有允许保护网络中的高效实现的单迭代状态函数。序列不需要迭代地应用。如果不管怎样都要求迭代,则可以迭代第一序列和保护网络二者,而不是仅迭代第一序列但是不迭代保护网络。计算设备是电子设备,例如移动电子设备,例如移动电话、机顶盒、计算机等。本发明的一方面涉及用于获取数据函数序列并且用于产生表格网络的第一序列的编译器以及保护表格网络和计算机代码。计算机代码配置成控制跟随有保护表格网络的应用的第一序列的迭代应用。编译器可以实现为计算机程序或者编译器设备等。编译器设备可以包括电子处理器和电子存储器,存储器存储将处理器配置为编译器的计算机代码。本发明的一方面涉及计算方法。根据本发明的方法可以在计算机上实现为计算机实现的方法,或者实现在专用硬件中或者二者的组合中。针对根据本发明的方法的可执行代码可以存储在计算机程序产品中。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括非暂时性程序代码构件,其存储在计算机可读介质上以用于在所述程序产品执行于计算机上时执行根据本发明的方法。在优选实施例中,计算机程序包括计算机程序代码构件,其适配成在计算机程序运行于计算机上时执行根据本发明的方法的所有步骤。优选地,计算机程序体现在计算机可读介质上。附图说明本发明的这些和其它方面从以下描述的实施例显而易见,并且将参照以下描述的实施例进行阐述。在附图中:图1a是合成表格网络100的示意性框图,图1b是表格网络100中的变量的示意性框图,图2是合成表格网络200的示意性框图,图3是合成表格网络300的示意性框图,图4是计算设备400的示意性框图,图5是合成表格网络500的示意性框图,图6是编译方法600的示意性流程图,图7是计算方法700的示意性流程图。应当指出的是,在不同附图中具有相同参考标号的项目具有相同结构特征和相同功能或者是相同信号。在已经解释过这样的项目的功能和/或结构的情况下,没有必要在详细描述中重复对其的解释。具体实施方式尽管容许许多不同形式的实施例,但是在图中示出并且将在本文中详细描述的是一个或多个具体的实施例,其中要理解到本公开要被视为本发明的原理的示例并且不意图将本发明限制为所示出和描述的具体实施例。图1a是合成表格网络100的示意性框图。可以通过经由表格的网络执行计算设备的所有或部分计算而抵抗攻击对计算设备进行保护。表格网络可以通过编码变量和表格来保护。不管怎样,攻击保持为一个顾虑。一个可能的攻击向量是修改表格、运行计算并且查看修改具有什么效果。以此方式,攻击者可以获得所使用的加密中的见识。为了应对这一点,除数据变量之外,可以引入状态变量。状态变量是对数据变量的计算路径或其部分进行镜像的变量。然而,在状态变量上执行的计算的本性可以与在数据变量上执行的计算不同。状态变量可以在计算期间以各种方式验证。因为状态和数据变量通常一起编码在单个变量中,所以攻击者难以修改表格以使得数据变量受影响但是状态变量不受影响。当检测到状态变量已经被篡改时,设备可以采取适当动作。通常,该监测可以隐式地完成,而不是通过明确的检查。此外,由于状态变量的缘故,相同数据具有多个表示。检查这些状态变量的一致性使得可能检测一些类型的攻击。图1a示出由多个子表格或子表格网络形成的合成表格网络100。合成表格网络100设计成与包括电子处理器的计算设备一同工作并且具有对电子存储装置的访问。组成合成表格网络100的多个较小的表格或表格网络存储在存储装置上。电子处理器耦合到存储装置,并且配置成将表格应用于其相应的输入值和输出值。合成表格网络100包括表格网络的序列100和保护表格网络150。序列110包括一个或多个表格网络。在图1a中,序列110包括表格网络112和114。表格网络可以包括单个表格,或者可以包括协同计算函数的多个表格。而且,表格网络112和114也可以正好是单个表格。对于较大的计算,存在将计算或其部分表示为单个表格或者表格网络之间的折衷。后者提供攻击者可能在其处尝试攻击系统的更多点,但是另一方面网络可能要求更少的存储空间。一些计算不具有作为单个表格的实际表示,因为其将太大,在该情况下要求表格网络。例如,完整的AES计算可以由表格网络表示,但是不由单个表格表示。典型地,表格可以由功能上相同的表格网络替换。当需要与表格网络区分时,我们将表格称为“单个表格”或者“单片表格”。除序列110之外,计算设备可以组合许多更多的表格网络和/或表格网络的序列以计算某种计算结果。出于简单起见,我们将序列110的元素称为表格网络,记住表格网络可以是单个表格或者多个协作表格。序列110可以包括一个或多个表格网络。在图1a中示出两个表格112和114,还称为T1和T2。更多或更少的表格网络是可能的。特别地,序列110可以包括单个表格或者单个表格网络112。序列110可以包括多个表格网络。为了保护表格网络150,相同推理适用;其可以表示为单个表格,事实上,下文给出的一些选择使得保护表格网络150很好地适于作为单个表格的表示。出于简单起见,我们将把保护表格网络150称为表格网络,记住其输入输出行为可以完全由一个表格替换。处理器配置成通过应用序列110的表格网络而在全局数据输入(121,w0)和全局状态输入(121,s0)上计算经迭代的函数。也就是说,序列110的表格网络在全局数据和状态输入上应用多于一次。序列110中的表格网络每个接收数据输入和状态输入。数据变量以字母w指代并且以字母s指代状态变量。序列110的表格网络Ti,例如表格网络112和114,配置用于对应的数据函数fi和状态函数gi。以此方式,产生变量的序列,例如对于两个表格网络和两个迭代,我们可以得到以下(参考标号参照图1a)。步骤表格输入输出1112121;(w0,s0)122;(w1,s1)=(f1(w0),g1(s0))2114122;(w1,s1)123;(w2,s2)=(f2(w1),g2(s1))3112124=123;(w2,s2)125;(w3,s3)=(f1(w2),g1(s2))4114125;(w3,s3)126;(w4,s4)=(f2(w3),g2(s3))迭代数目可以大于2。如果精确地存在2个迭代,则参考标号124是指与标号123相同的数据。迭代中的每一个表格网络根据对应的数据函数fi将数据输入wi-1映射到数据输出wi并且同时根据状态函数gi将状态输入si-1映射到状态输出si。数据输入wi-1和状态输入si-1是之前的表格的输出,除了第一表格之外,在该情况下它是输入。我们使用标记(w,s)来指示数据和状态变量的联合加密。例如,可以限定编码函数E(w,s),其将数据和状态变量映射到其中组合数据和状态二者的变量u。映射E是单射的,例如可逆的,即在给定联合加密,可以恢复原始数据和状态值。逆映射通过ρ和σ而分别针对数据和状态提取器指示;使得E(ρ(u),σ(u))=u。状态和数据变量可以具有各种大小。如果序列110仅包含单个表格,则这些大小通常稍微适中,例如数据大小4到8位。状态大小可以等于数据大小或者稍小,比方说2-8位。然而,如果序列110包含表格网络,则数据和状态值原则上不受限制,比方说128位、256位等。一般地,在序列110的经迭代应用期间,数据输入和输出与其对应的状态输入或输出一起加密。序列的经迭代应用在全局数据输入上确定全局数据函数并且确定全局状态函数。如果序列110包括两个表格网络,则全局数据函数通过给出并且全局状态函数通过给出。在全局状态输入上,从而获得中间数据输出(126,winter=f(w0))和中间状态输出(126,sinter=g(s0))。而且,winter和sinter一起加密在被称为126的单个值中。迭代数目可以固定,或者通过循环控制变量来控制。循环控制变量有时候被称为“i”或“索引”。尤其是在后一情况下,处理器可以配置有控制逻辑以将序列110应用循环控制变量数目的次数。例如,控制逻辑可以访问表示迭代数目的循环控制变量。控制逻辑随着每一个迭代而减小循环控制变量。控制循环控制变量上的操作可以实现为表格网络本身。当循环控制变量不为零时,控制在迭代之后返回使得执行新的迭代,如果循环控制变量为零,则控制传递。甚至该控制可以表示为表格网络。例如,表格可以取决于变量而计算要跳转到的机器地址。替代使用循环控制变量来控制迭代数目,迭代数目可以通过其它措施来控制,例如条件时(while-condition)。在该情况下,循环控制变量对实际执行的迭代数目进行计数。保护表格网络150配置成与表格网络的序列协作以用于应对向序列的表格网络做出的修改。保护表格网络150配置成作为输入而接收:中间状态输出sinter和全局状态输入131。保护表格网络150接收的全局状态输入131可以是序列110应用到的全局状态输入的副本(s0)。例如,可以向输入121应用状态提取器表格160以获得状态。所提取的状态将具有经编码的形式。该可能性在图1b中示出。然而,保护表格网络150还可以从输入121接收从不同源获取的状态变量。例如,之前的计算可能已经产生两个输出,1)与状态输出一起编码的数据输出以及2)状态输出。这两个状态输出应当相同,但是这仅在随后的计算中检查,特别地在保护表格网络150中。图1a可以以两种可能性而使用。一起编码数据和状态变量的变量有时候称为长变量,数据或状态仅称为短变量。保护表格网络150配置成验证应用于全局状态输入(s0)的全局状态函数(g)产生中间状态输出,在符号上标记为sinter=g(s0)?。在图1a中,保护表格网络150具有两个表格:状态表格网络130,Tc和对准表格140。状态表格网络Tc配置用于全局状态函数(g)并且配置成将状态输入131映射到验证状态输出132,sc,其应当等于g(s0)。保护表格网络150采取全局状态输入131作为输入并且向它应用状态表格网络130以获得验证状态输出132。优选地,状态表格网络130,Tc中的表格数目严格小于序列110中的表格数目。对准表格140接收验证状态输出132,sc和中间数据/状态输出(147,u=(winter,sinter))并且作为输出产生受保护的数据和状态输出143以及可选地还有受保护的状态输出145。如果中间数据/状态输出147,u中的状态与验证状态输出132相同,则数据和状态输出143中的数据等于中间数据/状态输出147,u中的数据,并且数据和状态输出143中的状态等于验证状态输出132,sc(或者u中的状态,它们在该情况下相同),状态置换144已经应用于验证状态输出132,sc。置换可以省略,但是其存在确保对准表格140的输出与其输入147不同,即便是没有检测到错误的情况下。对准表格140可以从函数z142和可选的置换144来构造。验证状态输出132和中间数据/状态输出147,u=(winter,sinter)是向z函数142的输入。此处,如果σ(u)=sc,则z(u,sc)=ρ(u);函数ρ和σ分别是数据和状态提取器。对准表格140因而验证的是验证状态输出等于中间状态输出(sinter=sc?)。如果σ(u)≠sc,则z的输出可以是随机数据输出;可能要求输出总是不同于ρ(u)或者通常不同,比方说在至少90%的情况下。输出应当至少针对一些输入值而不同。置换144向状态应用置换(perm),此处状态从中间数据/状态输出147获取,但是验证状态也是可能的。具有对准表格中的置换确保表格的输出可以改变,而不管是否已经检测到错误(即未经授权的表格修改)这一事实。这避免其中表格140中的改变用于确定通过篡改所引入的改变的攻击。从z函数获取的该数据输出以及来自置换144的状态一起编码在受保护的数据和状态输出143(z(u,sc),Perm(sc))中。状态输出也可以是与状态输出145,Perm(sc)分离地编码的输出。具有输出143和145允许以下计算使用这些作为输入,比如输入131和121。输出143和145称为“受保护的输出”。表格140可以是单个表格,其中函数142和144不是单独可见的。表格网络130也可以实现为单个表格,使得保护表格网络150包括两个单个表格。在实施例中,状态表格网络130和/或对准表格140是具有多于一个表格的表格网络。保护表格网络150可以是单个表格,例如如果单个迭代状态函数是恒等式的话。在序列110中使用的状态函数可以与数据函数独立地选择。这意味着可以做出有利选择。例如,可以将对应于序列中的表格网络(Ti)的所有状态函数(gi)选择成相等(g0),即便是数据函数不是如此。通过针对状态函数做出适当选择,其函数合成计算起来可以简单,即便是数据函数的函数合成可能计算起来不简单。通过序列110的表格网络的单个迭代所确定的状态输入上的函数被称为单迭代状态函数。可以选择单独的状态函数gi使得单迭代状态函数特别简单。如果序列仅具有单个表格网络,则=g0。当表格网络的序列迭代地应用时,单迭代状态函数因而迭代地应用。在实施例中,单迭代状态函数()是等幂的。等幂函数具有的性质,从而应用一次等幂函数可以改变输入,但是多于一次地应用它不会进一步改变函数。特别地,可以是等幂的,但不是恒等式。随机等幂函数可以如下选择:首先划分固定点和非固定点中的所有状态值,应当存在至少一个固定点,接下来针对每一个非固定点x选择固定点y并且设定。该算法很好地适于在表格中的实现。划分和选择可以是随机的。如果迭代数目已知为至少1,并且是等幂的,则状态表格网络130可以配置用于,而不必知晓迭代的精确数目。在实施例中,序列中的一个或多个或全部表格网络从除之前的表格网络之外的另外源接收附加输入。表格网络的数据输出可以取决于附加输入。附加输入可以或者可以不与附加状态输入一起加密,不管怎样状态输入不取决于附加输入。以此方式,附加输入不会干扰中间状态输出和验证状态之间的关系。典型地,计算设备包括微处理器(未示出),其执行存储在设备处的适当软件;例如,该软件可能已经下载和/或存储在对应的存储器中,例如易失性存储器,诸如RAM,或者非易失性存储器,诸如闪存(未示出)。图2是合成表格网络200的示意性框图。图2几乎与图1相同,除了状态表格网络130具有附加输入133,k:序列110的迭代数目。状态表格网络130配置成计算单迭代状态函数的经迭代效果。例如,可以选择单迭代状态函数作为常量的添加。在该情况下,状态表格网络130可以配置成计算s+kc(s是指输入131)。后一函数可以容易地实现在小表格网络中。因而,状态表格网络130所需要的存储装置的数量远远小于序列110所需要的。如果等幂的并且迭代数目可以是零,则状态表格网络130仅需要配置用于输入133的两个值,即零和非零。在实施例中,是零幂的,即存在整数q使得函数的q个合成等于恒等式。这样的函数的示例是具有循环分解的置换,循环分解仅具有除以q的长度的循环,即是阶为q的置换使得的q个合成等于恒等式。在这样的情况下,状态表格网络130仅需要足够大以计算最多g的q个合成。在该情况下,也可以简化另外输入133,因为仅需要以q为模的其值。如果是恒等式,则保护表格网络150可以更容易地实现为单个表格。图3是示出又一选项的分组密码。此处,选择成恒等式。保护表格网络150配置成验证全局状态输入(s0)等于中间状态输出(sinter=s0?)。在该情况下,表格130可以整体省略。选择gi以获得期望的单迭代状态函数的一种方式如下。假定序列110具有n个表格网络,从而限定n个函数gi。首先,选择并且将表示为状态变量的所有值上的置换。接下来,针对选择随机置换。最后,从单个迭代函数和随机置换的逆选择最终状态函数gn,例如作为。可以应用该算法,例如当是恒等式时,或者零幂时。在实施例中,单迭代状态函数不同于序列的至少一个表格网络(Ti)的状态函数(gi),更特别地,例如即便单迭代状态函数是零幂或等幂的。在实施例中,单迭代状态函数不同于序列的任何表格网络(Ti)的每一个状态函数(gi),更特别地即便是单迭代状态函数是零幂或等幂的。图4是计算设备400的示意性框图。图4示出具有存储设备410的计算设备400。图4中所示的设备可以供图1、2、3和5中图示的表格网络所使用。存储设备410典型地是一个或多个非易失性存储器,但是也可以是硬盘、光盘等。存储设备410也可以是包括所下载或以其它方式接收的数据的易失性存储器。计算设备400包括处理器450。处理器典型地执行存储在存储器中的代码455。出于方便起见,代码可以存储在存储设备410中。代码使得处理器执行计算。设备400可以包括接收输入值和/或传送结果的可选I/O设备460。I/O设备460可以是网络连接、可移除存储设备等。存储设备410包含根据图1到3中的一个或者5的一个或多个表格网络。在实施例中,计算设备可以在操作期间如下工作:计算设备400接收输入值。输入值被编码,例如通过使用编码表格441。因而,输入值被获取为经编码的输入值。要指出的是,输入值可以直接获取为经编码的输入值,例如通过设备460。将输入值编码为经编码的输入值暗示着必须选择状态输入。存在若干方式来完成这一点,例如状态输入可以随机地选择,例如通过随机数生成器。状态输入可以根据算法选择;算法可以是复杂的并且增大模糊化。状态输入值也可以是恒定的,或者从数字系列顺序地选择,比方说具有恒等增量(比方说1)并且在某一起始点开始的整数系列;起始点可以是零、随机数等。将状态输入选择为随机数并且针对每一个接下来的状态输入选择以1增大是特别有利的选择。如果在设备外选择状态输入,则攻击者不可能追踪在哪里选择状态输入值以及它们是什么。处理器450执行存储设备410中的程序455。程序使得处理器将查找表格应用于经编码的输入值或者所得输出值。查找表格可以针对任何逻辑或算术函数而创建,由此可以通过使用查找表格的系列而执行任何计算。这帮助模糊化程序。在该情况下,查找表格编码用于模糊化并且中间值亦如此。在该情况下,模糊化是特别有利的,因为单个函数输入值可以由多个编码的输入值来表示。此外,一些或全部表格和/或表格网络具有表格网络的多个函数性质,表格网络具有多个函数性质,一些或全部与用于结果的验证的第二表格网络配对。在某一点处找到结果值。如果需要,则可以对结果解码,例如使用解码表格442。但是结果也可以以经编码形式运出。输入值也可以从输入设备获取,并且输出值可以用于在屏幕上显示。计算在经编码的数据词语上执行。计算通过应用表格查找访问的系列而完成。所使用的输入值可以是从计算设备外部接收的输入值,但是也可以通过之前的查找表格访问来获得。以此方式,获得中间结果,其然后可以用于新的查找表格访问。在某一点处,中间结果之一是函数的经编码结果。计算设备400可以包括用于向数据函数输入分配状态输入值的随机数生成器。图5是合成表格网络500的示意性框图。表格网络500与表格网络1a相同。而且在图5中,输出145和表格130是可选的。然而,在图5中,序列110包括至少两个表格网络,此外序列110没有迭代,而是向输入应用一次。全局状态函数可以是恒等式(未示出)。在该情况下,序列可以以较小的开销来验证。如果全局状态函数不是恒等式,则可以使用表格130(如图5中所示)。然而,仅需要单个表格网络,或者甚至表格130来验证序列110中的多个表格。特别地,存储装置(510)上的状态表格网络130的大小小于存储装置上的序列110的大小。例如,合成表格网络500可以表示具有多个往返的分组密码,比方说AES、DES等。分组密码的每一个往返通过序列110的表格网络来计算,其中数据函数表示分组密码往返。每一个数据函数与状态函数耦合。状态函数选择成使得全局状态函数是恒等式。例如,在往返的第一个半部中,状态函数等于数据函数,但是在往返的第二个半部中,状态函数是第一个半部中的状态函数的逆。作为结果,序列利用数据函数计算分组密码,但是利用状态函数计算恒等式。图6图示了编译方法600的流程图。在步骤610中,由接收器接收第一计算机程序。在步骤620中,通过词汇分析器执行词汇分析,例如以标识令牌。还完成可能的处理,诸如宏扩展。在步骤630中,由解析器解析程序。例如,解析器根据第一程序的编程语言的正式语法生成解析树。解析器标识程序中的不同语言构造并且调用适当的代码生成例程。特别地,一个或多个运算符被标识。在该情况下,在步骤640中,通过代码生成器完成代码生成。在代码生成期间,生成某种代码并且如果需要则生成伴随表格。伴随表格包括配置用于两个函数的表格:一个用于需要的运算符,即数据函数,以及状态函数。编译器配置成标识一个或多个函数。在该情况下,在步骤640中,通过代码生成器完成代码生成。在代码生成期间,生成某种代码和表格网络的序列110。还生成保护表格网络150。所生成的代码配置成迭代应用序列110。作为结果,应用保护表格网络150,如上文指示的。在步骤655中,所生成的表格合并成表格基,因为可能很好地发生的是一些表格被生成多次;在该情况下,不需要多次存储它们。例如,可能需要并且仅生成一次添加表格。当所有代码合并并且所有表格合并时,编译完成。可选地,可以存在优化步骤。典型地,编译器使用编码域,即其中所有值或者至少对应于某种准则的所有值被编码的程序部段,即具有代码词位大小(n)。在经编码的域中,操作可以通过查找表格执行而执行。当进入经编码的域时,所有值被编码,当离开经编码的域时,值被解码。准则可以是值相关或者取决于安全敏感信息,例如加密密钥。创建编译器的感兴趣方式如下。在步骤630中,完成中间编译。这可以是中间语言,例如寄存器转移语言等,但也可以是机器语言代码编译。这意味着对于图6的步骤610-630,可以使用常规编译器,其不会产生表格网络。然而在步骤640中,基于中间编译完成代码生成。例如,如果使用机器语言代码,则每一个指令由该指令的对应无运算符实现来替代,即该指令的基于表格的实现。这表示创建编译器的特别简明的方式。图6还可以用于生成编译器,其不产生机器语言而是第二编程语言。图7是使用表格网络的序列(110,T1,T2)的计算方法700的示意性流程图,方法配置成通过应用表格网络序列的表格网络而在全局数据输入(121,w0)和全局状态输入(121,s0)上计算经迭代的函数。方法包括迭代地向全局数据输入(w0)和全局状态输入(s0)应用710序列(T1,T2,T1,T2)的表格网络,迭代应用的表格网络中的表格网络(T1),以及向序列的前一表格网络的数据输出和状态输出应用所述迭代的接连表格网络(T2,T1,T2),序列的经迭代应用在全局数据输入上确定全局数据函数并且在全局状态输入上确定全局状态函数,由此获得中间数据输出(winter=f(w0))和中间状态输出(sinter=g(s0)),并且通过应用保护表格网络(150)而验证720应用于全局状态输入(s0)的全局状态函数(g)产生中间状态输出(sinter=g(s0)?),保护表格网络(150)配置成与表格网络的序列协作以用于应对向序列的表格网络做出的修改,保护表格网络配置成作为输入而接收:中间状态输出(125;126,sinter)和全局状态输入(131,s0),保护表格网络配置成验证应用于全局状态输入(s0)的全局状态函数(g)产生中间状态输出(sinter=g(s0)?)。执行方法的许多不同方式是可能的,如本领域技术人员将显而易见的。例如,步骤的次序可以变化或者一些步骤可以并行地执行。此外,在步骤之间可以插入其它方法步骤。所插入的步骤可以表示诸如本文中所描述的方法的精炼,或者可以与方法无关。例如,步骤710和720可以至少部分地并行执行。例如,如果表格130使用在步骤720中,则表格130可以与序列110完全并行地运行。此外,给定步骤可能在下一步骤开始之前尚未完全完成。根据本发明的方法可以使用软件执行,该软件包括用于使得处理器系统执行方法700的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在适当的存储介质中,诸如硬盘、软盘、存储器等。软件可以作为信号沿着电线或者无线地或者使用数据网络而发送,例如互联网。软件可以可用于下载和/或在服务器上远程使用。根据本发明的方法可以使用位流而执行,该位流布置成配置可编程逻辑,例如现场可编程门阵列(FPGA),以执行根据本发明的方法。将领会到,本发明还扩展到计算机程序,特别地是适配用于将本发明付诸实践的载体上或载体中的计算机程序。程序可以具有源代码、对象代码、代码中间源和诸如部分编译形式之类的对象代码的形式,或者具有适用于使用在根据本发明的方法的实现中的任何其它形式。涉及计算机程序产品的实施例包括对应于所阐述的至少一个方法的每一个处理步骤的计算机可执行指令。这些指令可以被子分割成子例程和/或存储在可以静态地或者动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括对应于所阐述的至少一个系统和/或产品的每一个构件的计算机可执行指令。应当指出的是,以上提及的实施例说明而非限制本发明,并且本领域技术人员将能够设计许多可替换实施例。在权利要求中,放置在圆括号之间的任何参考标记不应当解释为限制权利要求。动词“包括”及其词形变化的使用不排除除权利要求中所记载的那些之外的元件或步骤的存在。元件前面的冠词“一”或“一个”不排除多个这样的元件的存在。本发明可以借助于包括若干分立元件的硬件以及借助于适当编程的计算机而实现。在枚举若干构件的设备权利要求中,这些构件中的若干个可以由一个相同的硬件项体现。在相互不同的从属权利要求中陈述某些措施的仅有事实不指示这些措施的组合不能用于获益。图1a、1b、2-5中的参考标号的列表100,200合成表格网络300,400500110表格或表格网络的序列112,114表格或表格网络121全局数据输入和全局状态输入122表格112的数据输出和状态输出124表格112的迭代的数据输入和状态输入123表格114的数据输出和状态输出125表格112的迭代的数据输出和状态输出126表格114的迭代的数据输出和状态输出130配置用于全局状态函数的状态表格或表格网络131验证全局状态输入132验证状态输出133序列的迭代数目140对准表格或表格网络142z函数143受保护的数据和状态输出144置换145受保护的状态输出147对准表格140的数据和状态输入150保护表格或表格网络160状态提取器表格400计算设备410存储装置441编码查找表格442解码查找表格450计算机处理器455机器语言代码460I/O设备421,422单个输入查找表格431,432多个输入查找表格4311-4323单个输入查找表格当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1