将白盒实现与精简安全单元绑定的制作方法_2

文档序号:9929737阅读:来源:国知局
非暂时性计算机可读存储介质,所述指令用于带密钥密码操作,所述带密钥密码操作由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:执行密码操作,以产生具有第一部分的密码数据;对所述密码数据的第一部分实现安全函数的反转;向实现所述安全函数的硬件设备输出反转的密码数据;其中,用于对所述密码数据的第一部分实现安全函数的反转的指令与用于向实现所述安全函数的硬件设备输出反转的密码数据的指令安全地合并,以使得攻击者不能访问反转的输出。
【附图说明】
[0016]为了更好地理解各个示例性实施例,对附图进行参考,其中:
[0017]图1示出了使用软件和安全硬件单元二者的密码系统的实施例;
[0018]图2示出了使用软件和安全硬件单元二者的密码系统的第二实施例;
[0019]图3示出了使用软件和安全硬件单元二者的密码系统的第三实施例;
[0020]图4示出了使用软件和安全硬件单元二者的密码系统的第四实施例;以及
[0021]图5示出了用于提供用户设备安全内容的系统和处理安全内容的软件应用。
[0022]为了便于理解,使用相同的附图标记来指定具有实质上相同或相似的结构和/或实质上相同或相似的功能的要素。
【具体实施方式】
[0023]描述和附图示出了本发明的原理。因此将意识到的是,本领域技术人员将能够设计出体现本发明的原理并且包含在本公开范围之内的各种布置,即使本文中并未明确描述或示出。此外,此处提到的所有示例主要倾向于特意只用于教学目的,以帮助读者理解本发明的原理以及发明人的贡献的概念来促进本领域发展,且要理解为不是对这些特别提到的示例和条件的限制。此外,除非另行指出(例如,“否则”或者“或在替代中”),本文中使用的术语“或”指代非排他性的“或”(即,和/或)。此外,本文中描述的各个实施例不是必然相互排斥的,因为一些实施例可以与一个或多个其他实施例组合,以形成新的实施例。
[0024]对于优选密码算法的软件实现而非硬件实现,存在若干原因。例如,这可以是以下情况:因为软件解决方案可在密钥泄露的情况下更新,因为其具有较低成本,或因为应用开发者影响不了实现白盒系统的硬件。如上所述,可在防篡改硬件设备(称为安全硬件单元)中实现密码算法的安全实现。然后,将该安全硬件单元包括在设备中,且在设备需要执行密码算法时,设备调用该安全硬件单元。该方案提供了对密码密钥的非常强的保护。然而,其不是非常灵活,并且很昂贵。有鉴于此,提出白盒软件实现来作为硬件解决方案的替代。然而,将密码函数拷贝到另一设备太过于容易。在本文中描述的实施例中,描述了将硬件解决方案和软件解决方案的好处相结合的方案。
[0025]在将硬件方案和软件方案相结合时,可考虑以下目标。首先,定义安全硬件单元,对于该安全硬件单元,功能尽可能容易实现,成本尽可能低,但包括难以拷贝的特性。第二,将白盒实现与该安全硬件单元所提供的功能的反转进行绑定,其中,该反转也可以是白盒实现。
[0026]图1示出了使用软件和安全硬件单元二者的密码系统的实施例。在图1的顶部示出了密码函数的白盒实现110。白盒实现可具有输入和输出,且可以实现使用密钥K的AES的白盒实现。可如Chow等所描述地实现白盒实现110。接下来,可将白盒实现110划分为具有第一部分122和第二部分124的白盒实现120。第一部分122产生中间值ω,将该中间值ω输入给第二部分124。中间值ω可具有第一部分X和第二部分y。在AES的情况下,ω可以是划分时密码函数的状态。密码函数的第二部分124因而对中间值ω(其包括X和y)进行操作,以产生输出。可在任何位置对白盒实现120进行划分。此外,如下面将要示出的,可在密码函数的输入或输出处实现所谓的划分。中间值ω可具有与密码操作的状态的大小相同的大小。在其他实施例中,相对于状态,中间值ω可具有更大或更小的大小。如果该大小更小,ω的大小应该大到足以证明针对X的值的较大的域使得更加难以攻击包括白盒实现和硬件实现的组合在内的整个密码系统。
[0027]接下来,已划分白盒实现120可并入实现安全函数f(x)的安全硬件单元140。已划分白盒实现120还可以并入f(x)的反函数或f1 130的软件实现。已划分白盒实现120可如下工作。白盒实现120的第一部分122接收输入。第一部分122对输入数据执行第一密码操作,以产生包括X和y的输出ω。将值X输入到产生值f(x)的安全硬件单元140中。P(X) 130的软件实现接收安全硬件单元130输出的值f(x),并产生值X,然后将值X输入到密码函数的第二部分124中。还将y的值直接传递给第二部分124。然后,第二部分对输入1和7执行密码操作,以产生输出。
[0028]在定义安全硬件单元140中实现的函数f(X)时,函数f的域dom(f)可被定义为足够大,以防止对手通过具有I dom(f) I行的查找表来完整地对其进行定义,在查找表中,每行定义针对具体输入的输出。域dom(f)可以是至少32比特,其将要求IGB量级的存储。增加比特的数目导致用于定义函数f(x)的更大的表,因而使得密码系统更难攻击。因此,可选择比特的数目,以产生将函数f(x)制表所需的表大小,该表大小超出了基于当前技术实际的表大小。
[0029]此外,可选择函数f(x),以使得可使用白盒技术来容易地实现反函数f1130。可将该反函数f1 130的白盒实现与第一部分222安全地合并,使得攻击者难以提取值X或绕过反函数f1。此外,可将函数f(x)选择为实现低成本的硬件实现。此外,可选择函数f(x),以使得其难以反转。在下面的情况下,这可以是有好处的。假设公司A出售硬件安全组件且公司B提供白盒实现。因而,公司A可能不想与公司B共享f的细节,因为公司B在该情况下可能克隆安全硬件。如果f1的白盒实现难以被反转,则公司A可使用该特性来向公司B提供f1的白盒实现,且公司B将因而不能够根据所提供的f1的白盒实现来推导出f。
[0030]现在将描述这种函数的示例。Chow等呈现了AES和DES的白盒实现。这些白盒实现可包括所描述的外部编码。可如下描述f(x)的实施例。假设要将具有密钥K的AES的软件实现与硬件安全单元进行绑定。因此,可使用类似于Chow等之一的白盒实现WB(AESk)来实现具有密钥K的AES。接下来,可选择f作为具有某个密钥Kf的精简轮次(例如,5轮)AES解密。为了补偿由于减少轮次而造成的黑盒安全性减少并使得对抗旁道攻击的保护变得容易,可通过将MixColumn系数作为密钥的一部分来增大密钥大小。此外,可通过多个替代置换盒中的一个来代替标准AES置换盒自身,以进一步扩大密钥大小。可针对标准AES算法类似地推导出该已修改AES算法的基于表的白盒实现。可使用该白盒实现来实现反函数f1 130。现在可以通过攻击者不能绕开反函数f1 130的方式容易地将反函数f1 130的该白盒实现与密码操作的第二部分124集成在一起。这导致取决于硬件单元的密码函数的白盒实现。
[0031]上述安全硬件单元140可以是其实现细节难以被攻击者访问的任何安全锚(anchor)。例如还可以由操作系统、TrustZone中运行的程序、或任何其他安全计算环境来计算函数f O通过提供基于硬件的访问控制所支持的两个虚拟处理器,TrustZone提供对向片上系统添加另一专用安全核心的低成本替代。这使得应用核心在两个状态(称为世界)之间切换,以防止信息从较可信世界向较不可信世界泄露。该世界切换一般与处理器的所有其他能力互不相关,因此在使用相同核心时,每个世界都可以独立于另一世界进行操作。可以由安全硬件单元来执行f的该实现,该安全硬件单元包括实现密码函数的处理器或单独的处理器。
[0032]此外,函数f无需固定。其也可以是如上所述使用各种输入参数可配置的。例如,可经由闪存或其他可编程存储器提供特定参数。这种配置能力使得可针对每个单独的白盒实现或白盒实现组来唯一地指定各个函数f。
[0033]图2示出了使用软件和安全硬件单元二者的密码系统的第二实施例。第二实施例包括白盒实现220和安全硬件单元240 ο安全硬件单元240与图1的安全硬件单元140类似。除了将反函数f1 230与密码操作的第一部分222而不是与密码操作的第二部分224集成在一起之外,白盒实现220与图1中的白盒实现120类似
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1