保护白盒实现方案不受攻击的制作方法_2

文档序号:9435993阅读:来源:国知局
,其中所述针对每个i值计算ai(x)是前一回合的一部分,其 中前一回合的输出成为当前回合的输入。
[0041] 描述了多种实施例,其中n个映射a是仿射的。
[0042] 描述了多种实施例,其中n个映射0是仿射的。
[0043] 描述了多种实施例,其中查找表实现所述加密钥的密码运算。
[0044] 描述了多种实施例,其中有限状态机实现所述加密钥的密码运算。
[0045] 描述了多种实施例,其中所述将每个ai(X)输入到非线性映射函数中还包括:输 入f1 〇a; 〇f(x),其中函数f执行密钥添加函数。
[0046] 描述了多种实施例,其中函数h基于所述输入消息。
[0047]此外,多种示例实施例涉及一种执行高级加密标准(AES)密码运算的白盒实现方 案的方法,所述AES密码运算将输入消息映射到输出消息,其中所述密码运算包括配置为 将输入数据映射到输出数据的AES替换函数,所述方法包括:基于输入数据x选择n对映射 (a,0),其中所述n对映射(a,0)是AES替换函数的自等价的集合,n> 1,且其中对于 Vv?, =h(y)是仿射的;针对每个i值计算= 将每个ai(x)输入到 AES替换函数中以便获得= ?Wk. ?Uv)),其中当x是AES替换函数的输入数据时,y是输出数据。
[0048] 描述了多个实施例,其中将每个ai(x)输入到非线性映射函数中包括:将每个 ai(x)输入到多个拆分映射函数中,其中对所述多个拆分映射函数进行异或得到非线性映 射函数,其中合并多个映射函数的输出以获得PJy)。
[0049] 描述了多种实施例,其中所述选择、计算和输入步骤与当前回合的AES密码运算 相关,所述当前回合产生当前回合的输出,作为AES密码运算的下一回合的输入,其中所述 AES密码运算对AES密码运算的下一回合的输入重复所述选择、计算和输入步骤。
[0050] 描述了多种实施例,其中下一回合中的m值大于当前回合中的n值,其中所述下一 回合是AES密码运算的第二到最后回合。
[0051] 描述了多种实施例,其中当前回合中的n值大于下一回合中的m值,其中所述当前 回合是AES密码运算的第二回合。
[0052] 描述了多种实施例,其中所述针对每个i值计算ai(x)是前一回合的一部分。
[0053] 描述了多种实施例,其中n个映射a是仿射的。
[0054] 描述了多种实施例,其中n个映射0是仿射的。
[0055] 描述了多种实施例,其中ai(x)依赖于输入x的多个输入字节。
[0056] 描述了多种实施例,其中所述基于输入消息x选择n对仿射映射(a,0 )还包括: 针对i值=1,n-1,基于输入x选择C;的值,其中c;是字节;以及针对i值=1,n-1,基于 h(y)和(^的值,选择c"的值。
[0057] 描述了多种实施例,其中所述基于输入消息x选择n对仿射映射(a,0 )还包括: 针对i值=1,n,基于输入x选择q的值,其中c;是字节;以及针对i值=1,n,基于c;的 值,确定h(y)。
[0058] 描述了多种实施例,其中查找表实现高级加密标准(AES)暗号密码运算(cipher cryptographicoperation)的白盒实现方案。
[0059] 描述了多种实施例,其中有限状态机执行高级加密标准(AES)暗号密码运算的白 盒实现方案。
[0060] 描述了多种实施例,其中所述将每个ai(x)输入到AES替换函数中还包括:输入 f1。ai〇f(x),其中函数f执行密钥添加函数。
[0061] 描述了多种实施例,其中函数h是基于所述输入消息的。
【附图说明】
[0062] 为了更好地理解多种示例实施例,参考附图,在附图中:
[0063] 图1示出了AES的回合的主要步骤;
[0064] 图2示出了对多个回合的输入进行固定编码的白盒AES实现方案;
[0065] 图3示出了通过查找表的网络来计算一个输出半字节(outputnibble);
[0066] 图4示出了图3的网络表的一部分,其中通过对输入和输出进行编码来使所述网 络表变得混乱;
[0067] 图5示出了可以如何针对i=j辛4计算C;1
[0068] 图6示出了可以如何针对i乒j且i乒4计算C:1;以及
[0069] 图7示出了用于计算c4的异或(X0R)网络。
[0070] 为了便于理解,将相同的附图标记用于表示具有实质上相同或相似的结构和/或 实质上相同或相似的功能的元件。
【具体实施方式】
[0071] 以下描述和附图示出了本发明的原理。因此,尽管文中并未明确描述或示出,然而 应认识到本领域技术人员可以想出体现本发明原理的多种布置,这些布置包括在本发明的 范围内。此外,本文记载的所有示例主要显式地用于教学目的以帮助读者理解本发明的原 理和发明人所提供的构思,以促进现有技术,应将本发明理解为不限于这种具体记载的示 例和条件。此外,除非指出(例如,"否则"或"或替代地"),否则文中使用的术语"或"是指 非排除性的或(即,和/或)。此外,本文所述的多种实施例不必是互相排除性的,这是由于 可以将一些实施例合并为一个或更多个其它实施例,以形成新的实施例。
[0072] 在以下文章中提出了高级加密标准(AES)和数据加密标准(DES)的白盒实 现方案的基于表格的方法:StanleyChow、PhilipEisen、HaroldJohnson和Paul C.VanOorschot的 "White-BoxCryptographyandanAESImplementation',,in SelectedAreasinCryptography:9thAnnualInternationalWorkshop,SAC2002, St.John's,Newfoundland,Canada,2002 年 8 月 15-16 日,下文中称作"Chow1";以及 StanleyChow,PhilEisen,HaroldJohnson和PaulC.vanOorschot的"AWhite-Box DESImplementationforDRMApplications',,inDigitalRightsManagement:ACM CCS-9Workshop,DRM2002,Washington,D.C.,USA,2002 年 11 月 18 日,下文中称作"Chow 2"。Chow1和Chow2公开了如下方法:通过对具有随机双射表格进行编码的组合,使用基 于表格的方法来隐藏密码密钥;并通过将密码边界推动到包含应用,来扩展密码边界。
[0073]然而,在由OlivierBillet、HenriGilbert和CharafEch-Chatbi提出的 "CryptanalysisofaWhiteBoxAESImplementation,',inHelenaHandschuhand M.AnwarHasan,editors,SelectedAreasinCryptography,volume3357ofLecture NotesinComputerScience,pages227-240,Springer,2005 的文章(下文中称作 "Billet")中指出了Chow的方法的弱点。该弱点可以被攻击者可以利用,并在最坏情况下 可能导致暴露白盒实现方案中隐藏的秘密密钥。
[0074] 由Billet进行的关键观察(keyobservation)在于:在根据Chow的白盒实现方 案中的对应回合的每个输入词与在普通非白盒实现方案中的对应输入词有特定关系。可以 不参考除了各个单独输入值之外的其它输入值来表现这种关系。尽管这种关系是依赖于密 钥的并且对于攻击者是未知的,然而这种特征提供足够的结构来大大简化对白盒的击破, 如Bilet进一步所述。
[0075] 因此,有利的是具有一种用于执行将输入消息映射到输出消息的密码运算的改善 的白盒密码系统,这种改善的白盒密码系统可以对抗在Billet中识别的攻击。
[0076] Chow的结构易受攻击的一个原因在于:在所述白盒实现方案中的各个回合的各 个单独输入值以及普通非白盒实现方案中的各个单独输入值之间存在固定关系。在下文所 述的本发明的实施例中,介绍了使用一系列函数an将输入字节x拆分为n个字节aiU), a2(x),...,an(x)。选择函数an,使得当n个字节中的每个通过S盒时,可以组合结果以 便实现将原始的x通过S盒的期望结果。用于拆分输入字节的具体an函数是基于输入的, 所以可以随着输入而改变。该特征破坏了Billet攻击所采用的固定关系。拆分输入不再 与密码运算的非白盒实现方案中的一些单独输入值存在固定关系。这种复杂性足以击败 Billet中阐述的攻击。
[0077] 通过用对值进行拆分代替对值进行固定编码,密码系统的反向工程变得更困难, 这是由于反向工程师难以将根据本发明的密码系统的工作与非白盒版本的密码运算的工 作进行比较。
[0078] 应注意,对于多数密码运算,需要的是具有白盒实现方案。例如,可以将本发明应 用于对称和非对称的密码运算。此外,可以将本发明应用于块暗号(blockciphers)、流暗 号、消息认证方案、签名方案等。应注意,还可将本发明应用于散列函数(hashfunctions)。 如果将散列函数用作处理秘密信息(例如,秘密密钥、秘密数据等)的基本构建块 (buildingblock),则后者是特别有用的。例如,可以将本发明应用于在加密钥的散列消 息认证码(HMAC或KHMAC)中使用的散列函数。公知的块暗号包括:高级加密标准(AES)、 安全快速加密例程(34?£1?和变型34?£1?+与34?£1?++)、81〇¥打811、数据加密标准(0£3)等。 公知的流暗号是RC4。此外,可以使用适合的运算模式(例如,暗号反馈(CFB)、计数器模式 (CTR)等)将任何块暗号用作流暗号。
[0079] 输入消息可以代表例如经加密的内容数据(例如,多媒体数据),包括音频和/或 视频数据。经加密的内容数据还可以包括经加密的软件,例如,表示一些计算机应用(例 如,计算机游戏)或办公室应用的经加密的计算机码。输入消息还可以表示在其它密码运 算中使用的密钥。例如,可以将后者用于密钥交换协议,其中根据本发明的白盒实现方案对 表示新密钥的数据进行加密和/或解密。输入数据还可以是明文数据(plaindata),例如, 明文用户数据。在消息认证方案中后者是尤其有利的。根据本发明的白盒实现方案可以具 有如下特性:该实现方案可以仅用于进行加密,仅用于进行解密,但是不能既用于加密也用 于解密。例如,如果实现方案使用不是双射型的查找表(例如,输入比特比输出比特更多的 查找表),则可以实现该特性。因此,如果用户仅具有白盒解密器,则用户可以验证MAC码, 但不能创建新的MAC。这样增强了这种消息认证方案的不可否认特性。
[0080] 可以使用多个基本块来实现安全软件。在一些块构建在一个或更多个先前块的输 出上的意义下,多个基本块是互连的。基本块可以以硬件实现,例如,实现为计算机芯片。基 本块可以使用开关板、状态机或任何其它适合结构,以便在计算机硬件中实现功能。基本块 还可以以运行在通用计算机芯片(例如,微处理器)上的软件来实现。例如,基本块可以使 用包括算术指令的多个计算机指令,多个计算机指令共同实现基本块的功能。可以在软件 和硬件二者中使用的基本块的广泛使用的实现方案是查找表。例如,Chow1和Chow2采 用该方法来实现AES和DES块暗号。查找表实现方案包括列出可能输入值、输出值的列表。 所述输入值在查找表中可以是明确的。在这种情况下,查找表实现方
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1