CN105718763A - 将白盒实现与精简安全单元绑定 - Google Patents

将白盒实现与精简安全单元绑定 Download PDF

Info

Publication number
CN105718763A
CN105718763A CN201510953377.3A CN201510953377A CN105718763A CN 105718763 A CN105718763 A CN 105718763A CN 201510953377 A CN201510953377 A CN 201510953377A CN 105718763 A CN105718763 A CN 105718763A
Authority
CN
China
Prior art keywords
reversion
instruction
safe function
readable storage
transitory computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510953377.3A
Other languages
English (en)
Other versions
CN105718763B (zh
Inventor
威赫穆斯·P·A·J·米歇尔
简·胡格布鲁格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of CN105718763A publication Critical patent/CN105718763A/zh
Application granted granted Critical
Publication of CN105718763B publication Critical patent/CN105718763B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种编码有指令的非暂时性计算机可读存储介质,所述指令用于具有第一部分和第二部分的带密钥密码操作,所述第一部分和所述第二部分由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:从密码操作的第一部分向对数据来实现安全函数的安全硬件设备输出第一密码数据;从所述安全硬件设备接收输出数据;对所述输出数据实现所述安全函数的反转;以及对反转的输出数据执行密码操作的第二部分,其中,用于对所述输出数据实现所述安全函数的反转的指令与用于对反转的输出数据执行密码操作的第二部分的指令安全地合并,以使得攻击者不能访问反转的输出。

Description

将白盒实现与精简安全单元绑定
技术领域
本文中公开的各个示例性实施例大致涉及将执行密码函数的软件组件与精简安全单元绑定。
背景技术
因特网向用户提供了对数字内容的便利且无所不知的访问。因为因特网是强大的分发渠道,很多用户设备争取直接访问因特网。用户设备可包括个人计算机、膝上型计算机、机顶盒、启用因特网的媒体播放器、移动电话、智能电话、平板机、移动热点或能够访问因特网的任何其他设备。使用因特网作为版权内容的分发媒体对于保护内容提供商的利益而言提出了强制性的挑战。用户设备越来越多地使用加载了适合软件的处理器进行操作,以呈现(回放)数字内容,例如音频和/或视频。对回放软件的控制是强制保护内容所有者利益的一种方式,包括可根据其来使用内容的条款和条件。之前很多用户设备是闭合系统。如今越来越多的平台部分开放。可假设一些用户对提供内容访问的硬件和软件具有完全的控制和访问权,并具有用于攻击和绕过任何内容保护机制的大量时间和资源。因此,内容提供商必须通过敌视的网络向合法用户发放内容,该敌视的网络去往并非所有用户或用户设备都可信的社区。
可调用安全软件应用来执行各种功能,例如,如使用来保护和验证数字内容的密码函数。为了对抗攻击,必须掩盖这些算法(被隐藏),以防止反向工程和修改算法或者禁止获得用户特定的安全信息。因此,可通过实现安全软件的处理器的指令集所定义的各种功能来执行安全软件应用的功能。例如,掩盖这些功能的一种方式是使用查找表。
内容提供商必须通过敌视的网络向合法用户发放内容,该敌视的网络去往并非所有用户或设备都可信的社区。这导致了对白盒密码的开发。在白盒密码场景中,假设用户完全控制了提供对内容的访问的硬件和软件,并具有用于攻击和绕过任何内容保护机制的不限量的时间和资源。对可根据其来使用内容的条款和条件进行强制执行的安全软件代码应该是抗篡改的。数字权利管理是安全软件应用的常用应用。数字权利管理中针对向用户设备分发的受保护内容的一般性方案是例如使用DES(数字加密标准)、AES(高级加密标准)或使用其他已知加密方案来加密数字内容,且使用解密密钥来恢复数字内容。必须保护这些解密密钥,以防止对受保护资料的未授权访问。
在数字权利管理场景中,攻击者完全控制了强制执行对受保护内容的管理和访问的软件。因此,攻击者可以修改软件,且还寻求获得用于加密受保护内容的密码密钥。可通过分析软件来找到这样的密钥。
关于密钥分发,为了回放媒体,媒体播放器必须从许可数据库取回解密密钥。然后,媒体播放器必须在存储器中的某处存储该解密密钥,以用于解密加密内容。这使得攻击者有两个攻击密钥的选择。首先,攻击者可对许可数据库访问功能进行允许攻击者从所有的许可数据库取回资产密钥的反向工程。在该情形下,攻击者不需要理解密码函数的内部工作方式。第二,攻击者可观察内容解密期间对存储器的访问,从而攻击者可取回解密密钥。在这两种情况下,密码都被认为是遭遇了危险。
数字权利管理(DRM)和其他安全软件的广泛使用使得出现了对安全、抗篡改的软件的需求,该软件寻求利用软件来使篡改变得复杂。存在用于提高软件应用的抗篡改的各种技术。这些技术中的大多数基于通过在软件应用的控制和数据路径二者中添加一层随机性和复杂性遮盖来隐藏对应用的深入理解。其背后的思想是使仅通过代码审查来提取信息变得更加困难。其因此使得找到例如处理安全应用的访问和许可控制的代码并因而改变该代码变得更加困难。
本文中使用的白盒密码技术包括在攻击者完全控制了运行白盒密码软件的系统的环境中执行密码函数的安全软件应用。因此,攻击者可修改输入和输出,跟踪软件的操作,在任何时候对软件使用的存储器进行采样和监视,并甚至修改软件。因此,需要通过防止在安全函数中使用的秘密信息泄露的方式来执行安全函数。白盒密码函数可通过各种方式来实现。这样的方法包括:掩盖软件代码;使用掩盖秘密信息的使用的复杂数学函数;使用查找表;使用有限状态机;或执行密码函数但隐藏这些安全函数所需的秘密信息的任何其他方法。白盒实现还可以包含包括抗调试和防篡改特性的组件。
对于优选密码算法的软件实现而非硬件实现,存在若干原因。例如,这可以是以下情况:因为软件解决方案可在密钥泄露的情况下更新,因为其具有较低成本,或因为应用开发者影响不了实现白盒系统的硬件。
在以下论文中提出了高级加密标准(AES)和数据加密标准(DES)的白盒实现的基于表的方案:StanleyChow、PhilipEisen、HaroldJohnson和PaulC.VanOorschot的“White-BoxCryptographyandanAESImplementation”(SelectedAreasinCryptography:9thAnnualInternationalWorkshop,SAC2002,St.John’s,Newfoundland,Canada,Aug.15-16,2002),之后称为“Chow1”;以及StanleyChow、PhilipEisen、HaroldJohnson和PaulC.VanOorschot的“AWhite-BoxDESImplementationforDRMApplications”(DigitalRightsManagement:ACMCCS-9Workshop,DRM2002,Washington,D.C.,USA,Nov.18,2002),之后称为“Chow2”。Chow1和Chow2公开了使用基于表的方案来通过以下方式的组合隐藏密码密钥的方法:利用随机双射编码其表,以及通过将密码边界推出更远到包含的应用中来扩展密码边界。
发明内容
下面呈现各个示例性实施例的简要概要。在以下的概要中可进行一些简化和省略,其旨在突出并介绍各个示例性实施例的一些方面,而不是限制本发明的范围。在稍后的章节中将是示例性实施例的详细描述,该详细描述足以使本领域普通技术人员做出并使用创造性概念。
各个示例性实施例涉及一种编码有指令的非暂时性计算机可读存储介质,所述指令用于具有第一部分和第二部分的带密钥密码操作,所述第一部分和所述第二部分由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:从密码操作的第一部分向安全硬件设备输出第一密码数据,所述安全硬件设备对所述数据实现安全函数;从所述安全硬件设备接收输出数据;对所述输出数据实现所述安全函数的反转;以及对反转的输出数据执行密码操作的第二部分,其中,将用于对所述输出数据实现所述安全的反转的指令与用于对反转的输出数据执行密码操作的第二部分的指令安全地合并,以使得攻击者不能访问反转的输出。
描述了各个示例性实施例,还包括一种编码有指令的非暂时性计算机可读存储介质,所述指令用于具有第一部分和第二部分的带密钥密码操作,所述第一部分和所述第二部分由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:执行密码操作的第一部分,以产生密码数据;对密码数据的第一部分实现安全函数的反转;向硬件设备输出反转的密码数据,所述硬件设备对所述数据实现安全函数;从所述硬件设备接收输出数据;以及对硬件设备输出数据执行密码操作的第二部分,其中,用于对密码数据的一部分实现安全函数的反转的指令与用于对密码数据实现安全函数的反转的指令安全地合并,以使得攻击者不能访问反转的输出。
描述了各个示例性实施例,还包括一种编码有指令的非暂时性计算机可读存储介质,所述指令用于带密钥密码操作,所述带密钥密码操作由将具有第一部分的输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:从对所述输入消息的第一部分实现安全函数的硬件设备接收输出数据;对所述输出数据实现所述安全函数的反转;以及对反转的输出数据执行密码操作,其中,用于对所述输出数据实现所述安全函数的反转的指令与用于对反转的输出数据执行密码操作的指令安全地合并,以使得攻击者不能访问所述反转的输出。
描述了各个示例性实施例,还包括一种编码有指令的非暂时性计算机可读存储介质,所述指令用于带密钥密码操作,所述带密钥密码操作由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:执行密码操作,以产生具有第一部分的密码数据;对所述密码数据的第一部分实现安全函数的反转;向实现所述安全函数的硬件设备输出反转的密码数据;其中,用于对所述密码数据的第一部分实现安全函数的反转的指令与用于向实现所述安全函数的硬件设备输出反转的密码数据的指令安全地合并,以使得攻击者不能访问反转的输出。
附图说明
为了更好地理解各个示例性实施例,对附图进行参考,其中:
图1示出了使用软件和安全硬件单元二者的密码系统的实施例;
图2示出了使用软件和安全硬件单元二者的密码系统的第二实施例;
图3示出了使用软件和安全硬件单元二者的密码系统的第三实施例;
图4示出了使用软件和安全硬件单元二者的密码系统的第四实施例;以及
图5示出了用于提供用户设备安全内容的系统和处理安全内容的软件应用。
为了便于理解,使用相同的附图标记来指定具有实质上相同或相似的结构和/或实质上相同或相似的功能的要素。
具体实施方式
描述和附图示出了本发明的原理。因此将意识到的是,本领域技术人员将能够设计出体现本发明的原理并且包含在本公开范围之内的各种布置,即使本文中并未明确描述或示出。此外,此处提到的所有示例主要倾向于特意只用于教学目的,以帮助读者理解本发明的原理以及发明人的贡献的概念来促进本领域发展,且要理解为不是对这些特别提到的示例和条件的限制。此外,除非另行指出(例如,“否则”或者“或在替代中”),本文中使用的术语“或”指代非排他性的“或”(即,和/或)。此外,本文中描述的各个实施例不是必然相互排斥的,因为一些实施例可以与一个或多个其他实施例组合,以形成新的实施例。
对于优选密码算法的软件实现而非硬件实现,存在若干原因。例如,这可以是以下情况:因为软件解决方案可在密钥泄露的情况下更新,因为其具有较低成本,或因为应用开发者影响不了实现白盒系统的硬件。如上所述,可在防篡改硬件设备(称为安全硬件单元)中实现密码算法的安全实现。然后,将该安全硬件单元包括在设备中,且在设备需要执行密码算法时,设备调用该安全硬件单元。该方案提供了对密码密钥的非常强的保护。然而,其不是非常灵活,并且很昂贵。有鉴于此,提出白盒软件实现来作为硬件解决方案的替代。然而,将密码函数拷贝到另一设备太过于容易。在本文中描述的实施例中,描述了将硬件解决方案和软件解决方案的好处相结合的方案。
在将硬件方案和软件方案相结合时,可考虑以下目标。首先,定义安全硬件单元,对于该安全硬件单元,功能尽可能容易实现,成本尽可能低,但包括难以拷贝的特性。第二,将白盒实现与该安全硬件单元所提供的功能的反转进行绑定,其中,该反转也可以是白盒实现。
图1示出了使用软件和安全硬件单元二者的密码系统的实施例。在图1的顶部示出了密码函数的白盒实现110。白盒实现可具有输入和输出,且可以实现使用密钥K的AES的白盒实现。可如Chow等所描述地实现白盒实现110。接下来,可将白盒实现110划分为具有第一部分122和第二部分124的白盒实现120。第一部分122产生中间值ω,将该中间值ω输入给第二部分124。中间值ω可具有第一部分x和第二部分y。在AES的情况下,ω可以是划分时密码函数的状态。密码函数的第二部分124因而对中间值ω(其包括x和y)进行操作,以产生输出。可在任何位置对白盒实现120进行划分。此外,如下面将要示出的,可在密码函数的输入或输出处实现所谓的划分。中间值ω可具有与密码操作的状态的大小相同的大小。在其他实施例中,相对于状态,中间值ω可具有更大或更小的大小。如果该大小更小,ω的大小应该大到足以证明针对x的值的较大的域使得更加难以攻击包括白盒实现和硬件实现的组合在内的整个密码系统。
接下来,已划分白盒实现120可并入实现安全函数f(x)的安全硬件单元140。已划分白盒实现120还可以并入f(x)的反函数或f1130的软件实现。已划分白盒实现120可如下工作。白盒实现120的第一部分122接收输入。第一部分122对输入数据执行第一密码操作,以产生包括x和y的输出ω。将值x输入到产生值f(x)的安全硬件单元140中。f1(x)130的软件实现接收安全硬件单元130输出的值f(x),并产生值x,然后将值x输入到密码函数的第二部分124中。还将y的值直接传递给第二部分124。然后,第二部分对输入x和y执行密码操作,以产生输出。
在定义安全硬件单元140中实现的函数f(x)时,函数f的域dom(f)可被定义为足够大,以防止对手通过具有|dom(f)|行的查找表来完整地对其进行定义,在查找表中,每行定义针对具体输入的输出。域dom(f)可以是至少32比特,其将要求1GB量级的存储。增加比特的数目导致用于定义函数f(x)的更大的表,因而使得密码系统更难攻击。因此,可选择比特的数目,以产生将函数f(x)制表所需的表大小,该表大小超出了基于当前技术实际的表大小。
此外,可选择函数f(x),以使得可使用白盒技术来容易地实现反函数f1130。可将该反函数f1130的白盒实现与第一部分222安全地合并,使得攻击者难以提取值x或绕过反函数f1。此外,可将函数f(x)选择为实现低成本的硬件实现。此外,可选择函数f(x),以使得其难以反转。在下面的情况下,这可以是有好处的。假设公司A出售硬件安全组件且公司B提供白盒实现。因而,公司A可能不想与公司B共享f的细节,因为公司B在该情况下可能克隆安全硬件。如果f1的白盒实现难以被反转,则公司A可使用该特性来向公司B提供f1的白盒实现,且公司B将因而不能够根据所提供的f1的白盒实现来推导出f。
现在将描述这种函数的示例。Chow等呈现了AES和DES的白盒实现。这些白盒实现可包括所描述的外部编码。可如下描述f(x)的实施例。假设要将具有密钥K的AES的软件实现与硬件安全单元进行绑定。因此,可使用类似于Chow等之一的白盒实现WB(AESK)来实现具有密钥K的AES。接下来,可选择f作为具有某个密钥Kf的精简轮次(例如,5轮)AES解密。为了补偿由于减少轮次而造成的黑盒安全性减少并使得对抗旁道攻击的保护变得容易,可通过将MixColumn系数作为密钥的一部分来增大密钥大小。此外,可通过多个替代置换盒中的一个来代替标准AES置换盒自身,以进一步扩大密钥大小。可针对标准AES算法类似地推导出该已修改AES算法的基于表的白盒实现。可使用该白盒实现来实现反函数f1130。现在可以通过攻击者不能绕开反函数f1130的方式容易地将反函数f1130的该白盒实现与密码操作的第二部分124集成在一起。这导致取决于硬件单元的密码函数的白盒实现。
上述安全硬件单元140可以是其实现细节难以被攻击者访问的任何安全锚(anchor)。例如还可以由操作系统、TrustZone中运行的程序、或任何其他安全计算环境来计算函数f。通过提供基于硬件的访问控制所支持的两个虚拟处理器,TrustZone提供对向片上系统添加另一专用安全核心的低成本替代。这使得应用核心在两个状态(称为世界)之间切换,以防止信息从较可信世界向较不可信世界泄露。该世界切换一般与处理器的所有其他能力互不相关,因此在使用相同核心时,每个世界都可以独立于另一世界进行操作。可以由安全硬件单元来执行f的该实现,该安全硬件单元包括实现密码函数的处理器或单独的处理器。
此外,函数f无需固定。其也可以是如上所述使用各种输入参数可配置的。例如,可经由闪存或其他可编程存储器提供特定参数。这种配置能力使得可针对每个单独的白盒实现或白盒实现组来唯一地指定各个函数f。
图2示出了使用软件和安全硬件单元二者的密码系统的第二实施例。第二实施例包括白盒实现220和安全硬件单元240。安全硬件单元240与图1的安全硬件单元140类似。除了将反函数f1230与密码操作的第一部分222而不是与密码操作的第二部分224集成在一起之外,白盒实现220与图1中的白盒实现120类似。在操作中,第一部分222产生f1(x)和y作为中间值。反函数f1230可以与第一部分222集成,并接收x作为输入以在然后产生值f1(x)。与图1中相同,向密码操作的第二部分224输入中间值y。硬件单元240接收f1(x)作为输入,并产生输出x。然后,将输出x输入到第二部分224中。第二部分224然后产生输出。第一部分222、第二部分224、反函数f1230以及安全硬件单元240可以与以上所述的相同。
图3示出了使用软件和安全硬件单元二者的密码系统的第三实施例。第三实施例包括白盒实现320和安全硬件单元340。安全硬件单元340与图1的安全硬件单元140类似。除了不划分白盒实现之外,白盒实现320与图1中的白盒实现120类似。相反,在白盒实现320的输入处集成反函数f1330。在操作中,如上所述将输入x划分为x和y部分。向产生输出f(x)的安全硬件单元340输入值x。然后将输出f(x)输入到可与白盒实现集成的反函数f1330中。此外,将值y输入到白盒实现320中。白盒实现320产生输出。
图4示出了使用软件和安全硬件单元二者的密码系统的第四实施例。第四实施例包括白盒实现420和安全硬件单元440。安全硬件单元440与图1的安全硬件单元140类似。除了不划分白盒实现之外,白盒实现420与图1中的白盒实现120类似。相反,在白盒实现420的输出处集成反函数f1430。在操作中,白盒实现420接收输入。白盒实现420产生输出,该输出被划分为x和y部分。将值x输入到可与白盒实现集成的反函数f1430中,以产生输出f1(x)。然后,将输出f1(x)输入到安全硬件单元440中,以产生值x。此外,白盒实现420产生值y。值x和y是密码函数的输出。
虽然Chow描述了密码操作的表查找实现,也可以使用有限状态机实现。在题为“DataProcessingMethod”的美国专利公开2007/0014394以及WulfHarder和AtisStraujums于2008年3月11日在Re-trustSixthQuarterlyMeeting中题为“SynchrosoftMCFACTTMSecureDataProcessingTechnology”的演示中公开了使用有限状态机的白盒实现的示例,因此将其各自通过引用并入以用于各种目的,如同其在本文中被完全陈述一样。
根据本发明实施例的方法可在计算机上作为计算机实现方法来实现。可将根据本发明的方法的可执行代码存储在计算机程序介质上。计算机程序介质的示例包括存储设备、光存储设备、集成电路、服务器、在线软件等。因此,白盒系统可包括实现白盒计算机程序的计算机。这样的系统还可包括其他硬件单元,包括存储器、用于与外部系统传输数据的网络接口、以及白盒系统的单元。
在本发明的实施例中,计算机程序可包括计算机程序代码,当在计算机上允许计算机程序时,该计算机程序代码适于执行根据本发明的方法的所有步骤。优选地,计算机程序嵌入在非暂时性计算机可读介质中。
此外,因为白盒密码通常非常复杂和/或被掩盖,人书写起来很乏味。因此,具有自动创建根据本发明实施例的密码系统的方法是有利的。
可以在计算机上实现根据本发明的创建密码系统的方法作为计算机实现方法,或可在专用硬件中实现该方法,或以其二者的组合来实现该方法。可将根据本发明的方法的可执行代码存储在计算机程序介质上。在这样的方法中,计算机程序可包括计算机程序代码,当在计算机上允许计算机程序时,该计算机程序代码适于执行方法的所有步骤。计算机程序嵌入在非暂时性计算机可读介质中。
可在用户设备(例如,移动电话、台式计算机、机顶盒、智能TV等)上实现本文中描述的密码系统。内容提供商(例如,电视网络、视频流公司、金融机构、音乐流公司等)可向用户设备提供用于从内容提供商接收加密内容的软件。该软件可具有如上所述嵌入其中的加密密钥,且还可包括上述的绑定字符串。然后,内容提供商可向用户设备发送然后可使用所提供的软件来解密的加密内容,并使用该内容。
图5示出了用于提供用户设备安全内容的系统和处理安全内容的软件应用。系统包括内容服务器500、应用服务器520、用户设备550、552以及数据网络540。用户设备550、552可请求访问内容服务器500经由数据网络540提供的安全内容。数据网络可以是在用户设备550、552与内容服务器500和应用服务器520之间提供连接的任何数据网络。用户设备550、552可以是多个设备之一,例如,机顶盒、媒体流设备、数字视频录制器、平板设备、移动电话、膝上型计算机、便携式媒体设备、智能手表、台式计算机、媒体服务器等。
用户的访问请求可首先要求下载可使用来处理内容服务器500提供的安全内容的软件应用。可从应用服务器520下载软件应用。可使用上述技术掩盖软件应用,以及软件应用可如上所述地操作。一旦用户设备550、552安装了软件应用,用户设备可在然后从内容服务器500下载安全内容,并使用下载的软件应用访问安全内容。例如,下载的软件应用可执行对从内容服务器接收的加密内容的解密。在其他实施例中,软件应用可执行其他安全操作,例如,如加密、数字签名生成及验证等。
内容服务器500可控制对向用户设备550、552提供的安全内容的访问。因此,当内容服务器500接收针对安全内容的请求时,内容服务器500可向进行请求的用户设备发送安全内容。同样地,应用服务器520可控制对向用户设备550、552提供的软件应用的访问。因此,当应用服务器520接收针对安全内容的请求时,应用服务器520可向进行请求的用户设备发送软件应用。在向请求软件应用或安全内容的用户设备提供软件应用或安全内容之前,还可以由相应服务器验证该用户设备。
内容服务器500可包括经由一个或多个系统总线508互连的处理器502、存储器504、用户接口506、网络接口510和内容存储器512。将会理解的是,图3在某些方面构建了抽象形式,且设备500的组件的实际组织可以比所示出的更加复杂。
处理器502可以是能够执行存储器504或存储器512中存储的指令的任何硬件设备。由此,处理器可包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其他类似的设备。
存储器504可包括各种存储器,例如,如L1、L2或L3高速缓存或系统存储器。由此,存储器502可包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、闪存、只读存储器(ROM)或其他类似的存储设备。
用户接口506可包括用于启用与用户(例如,管理员)的通信的一个或多个设备。例如,用户接口506可包括用于接收用户命令的显示器、鼠标以及键盘。
网络接口510可包括用于启用与其他硬件设备的通信的一个或多个设备。例如,网络接口510可包括被配置为根据以太网协议通信的网络接口卡(NIC)。此外,网络接口510可实现用于根据TCP/IP协议通信的TCP/IP栈。网络接口510的各种替代或附加硬件或配置将会是显而易见的。
内容存储器512可包括一个或多个机器可读内容存储介质,例如,只读存储器(ROM)、随机存取存储器(RAM)、磁碟存储介质、光存储介质、闪存设备、或类似的存储介质。在各个实施例中,内容存储器512可存储要向用户提供的内容。
应用服务器520包括与内容服务器500中的要素类似的要素,且对内容服务器500中类似要素的描述适用于应用服务器520。此外,用应用存储器532来替代内容存储器512。此外,要注意到,可在单个服务器上实现内容服务器和应用服务器。此外,可在分布式计算机系统以及云计算机系统上实现这样的服务器。
在处理器上运行的用于实现本发明实施例的特定软件的任何组合构成特定的专用机器。
本文中使用的术语“非暂时性机器可读存储介质”将会被理解为排除暂时传播信号,而包括所有形式的易失性和非易失性存储器。此外,本文中使用的术语“处理器”将被理解为包含各种设备,例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)以及其他类似的处理设备。当在处理器上实现软件时,该组合变为单个特定的机器。
本领域技术人员应该意识到,本文中的任何框图表示体现本发明原理的示意性电路的概念性视图。
虽然已具体参考各个示例性实施例的某些示例性方面详细描述了各个示例性实施例,应该理解,本发明能够是其他实施例,且可在各个显而易见的方面修改其细节。对本领域技术人员显而易见的是,可在保持在本发明的精神和范围内的同时实现变型和修改。因此,前述公开、描述和附图仅用于示意性目的,且不以任何方式限制本发明,本发明仅由权利要求限定。

Claims (28)

1.一种编码有指令的非暂时性计算机可读存储介质,所述指令用于具有第一部分和第二部分的带密钥密码操作,所述带密钥密码操作由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:
从密码操作的第一部分向安全硬件设备输出第一密码数据,所述安全硬件设备对所述数据实现安全函数;
从所述安全硬件设备接收输出数据;
对所述输出数据实现所述安全函数的反转;以及
对反转的输出数据执行密码操作的第二部分,
其中,用于对所述输出数据实现所述安全函数的反转的指令与用于对反转的输出数据执行密码操作的第二部分的指令安全地合并,以使得攻击者不能访问反转的输出。
2.根据权利要求1所述的非暂时性计算机可读存储介质,还包括用于执行以下操作的指令:从密码操作的第一部分向密码操作的第二部分输出第二密码数据。
3.根据权利要求1所述的非暂时性计算机可读存储介质,其中,用于对所述输出数据实现所述安全函数的反转的指令和用于对反转的输出数据执行密码操作的第二部分的指令包括查找表。
4.根据权利要求1所述的非暂时性计算机可读存储介质,其中,用于对所述输出数据实现所述安全函数的反转的指令和用于对反转的输出数据执行密码操作的第二部分的指令包括状态机。
5.根据权利要求1所述的非暂时性计算机可读存储介质,其中,输入参数指定所述安全函数的反转。
6.根据权利要求1所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是处理器,所述安全函数在所述处理器上的操作系统中实现。
7.根据权利要求1所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是实现TrustZone的处理器,所述安全函数是TrustZone中运行的程序。
8.一种编码有指令的非暂时性计算机可读存储介质,所述指令用于具有第一部分和第二部分的带密钥密码操作,所述带密钥密码操作由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:
执行密码操作的第一部分,以产生密码数据;
对密码数据的第一部分实现安全函数的反转;
向硬件设备输出反转的密码数据,所述硬件设备对所述数据实现安全函数;
从所述硬件设备接收输出数据;以及
对硬件设备输出数据执行密码操作的第二部分,
其中,用于对密码数据的一部分实现安全函数的反转的指令与用于对密码数据实现安全函数的反转的指令安全地合并,以使得攻击者不能访问反转的输出。
9.根据权利要求8所述的非暂时性计算机可读存储介质,还包括用于执行以下操作的指令:从密码操作的第一部分向密码操作的第二部分输出第二密码数据。
10.根据权利要求8所述的非暂时性计算机可读存储介质,其中,用于对密码数据的一部分实现安全函数的反转的指令和用于对密码数据实现安全函数的反转的指令包括查找表。
11.根据权利要求8所述的非暂时性计算机可读存储介质,其中,用于对密码数据的一部分实现安全函数的反转的指令和用于对密码数据实现安全函数的反转的指令包括状态机。
12.根据权利要求8所述的非暂时性计算机可读存储介质,其中,输入参数指定所述安全函数的反转。
13.根据权利要求8所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是处理器,所述安全函数在所述处理器上的操作系统中实现。
14.根据权利要求8所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是实现TrustZone的处理器,所述安全函数是TrustZone中运行的程序。
15.一种编码有指令的非暂时性计算机可读存储介质,所述指令用于带密钥密码操作,所述带密钥密码操作由将具有第一部分的输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:
从对所述输入消息的第一部分实现安全函数的硬件设备接收输出数据;
对所述输出数据实现所述安全函数的反转;以及
对反转的输出数据执行密码操作,
其中,用于对所述输出数据实现所述安全函数的反转的指令与用于对反转的输出数据执行密码操作的指令安全地合并,以使得攻击者不能访问所述反转的输出。
16.根据权利要求15所述的非暂时性计算机可读存储介质,还包括用于执行以下操作的指令:对所述输入消息的第二部分执行密码操作。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中,用于对所述输出数据实现所述安全函数的反转的指令和用于对反转的输出数据执行密码操作的指令包括查找表。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中,用于对所述输出数据实现所述安全函数的反转的指令和用于对反转的输出数据执行密码操作的指令包括状态机。
19.根据权利要求15所述的非暂时性计算机可读存储介质,其中,输入参数指定所述安全函数的反转。
20.根据权利要求15所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是处理器,所述安全函数在所述处理器上的操作系统中实现。
21.根据权利要求15所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是实现TrustZone的处理器,所述安全函数是TrustZone中运行的程序。
22.一种编码有指令的非暂时性计算机可读存储介质,所述指令用于带密钥密码操作,所述带密钥密码操作由将输入消息映射到输出消息的密码系统执行,所述非暂时性计算机可读存储介质包括用于执行以下操作的指令:
执行密码操作,以产生具有第一部分的密码数据;
对所述密码数据的第一部分实现安全函数的反转;
向实现所述安全函数的硬件设备输出反转的密码数据;
其中,用于对所述密码数据的第一部分实现安全函数的反转的指令与用于向实现所述安全函数的硬件设备输出反转的密码数据的指令安全地合并,以使得攻击者不能访问反转的输出。
23.根据权利要求22所述的非暂时性计算机可读存储介质,还包括用于从密码操作输出第二密码数据的指令。
24.根据权利要求22所述的非暂时性计算机可读存储介质,其中,用于对所述密码数据的第一部分实现安全函数的反转的指令和用于输出反转的密码数据的指令包括查找表。
25.根据权利要求22所述的非暂时性计算机可读存储介质,其中,用于对所述密码数据的第一部分实现安全函数的反转的指令和用于输出反转的密码数据的指令包括状态机。
26.根据权利要求22所述的非暂时性计算机可读存储介质,其中,输入参数指定所述安全函数的反转。
27.根据权利要求22所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是处理器,所述安全函数在所述处理器上的操作系统中实现。
28.根据权利要求22所述的非暂时性计算机可读存储介质,其中,实现安全函数的硬件设备是实现TrustZone的处理器,所述安全函数是TrustZone中运行的程序。
CN201510953377.3A 2014-12-19 2015-12-17 实现将白盒实现与精简安全单元绑定的方法的存储介质 Active CN105718763B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/577,148 2014-12-19
US14/577,148 US20160182472A1 (en) 2014-12-19 2014-12-19 Binding White-Box Implementation To Reduced Secure Element

Publications (2)

Publication Number Publication Date
CN105718763A true CN105718763A (zh) 2016-06-29
CN105718763B CN105718763B (zh) 2019-02-12

Family

ID=55069666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510953377.3A Active CN105718763B (zh) 2014-12-19 2015-12-17 实现将白盒实现与精简安全单元绑定的方法的存储介质

Country Status (3)

Country Link
US (1) US20160182472A1 (zh)
EP (1) EP3035582B1 (zh)
CN (1) CN105718763B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451490A (zh) * 2017-07-21 2017-12-08 广州大学 基于TrustZone的安全认证方法、装置、系统及存储介质
CN114124465A (zh) * 2021-10-28 2022-03-01 济南浪潮数据技术有限公司 一种数据传输方法、系统、设备及计算机可读存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US10389517B2 (en) * 2016-06-27 2019-08-20 Nxp B.V. Using secure key storage to bind a white-box implementation to one platform
US10778654B2 (en) * 2016-09-16 2020-09-15 Arris Enterprises Llc Method and apparatus for protecting confidential data in an open software stack
FR3060804B1 (fr) * 2016-12-21 2021-01-22 Safran Identity & Security Procede de configuration d'un programme cryptographique destine a etre execute par un terminal
EP3451214A1 (en) * 2017-09-05 2019-03-06 Koninklijke Philips N.V. Computing device with computer program bounded thereto
US10812269B2 (en) * 2017-11-07 2020-10-20 Arris Enterprises Llc Advanced crypto token authentication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005094518A2 (en) * 2004-03-23 2005-10-13 Texas Instruments Incorporated Hybrid cryptographic accelerator and method of operation thereof
US20090252327A1 (en) * 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
WO2013142979A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Securing accessible systems using dynamic data mangling

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005094518A2 (en) * 2004-03-23 2005-10-13 Texas Instruments Incorporated Hybrid cryptographic accelerator and method of operation thereof
US20090252327A1 (en) * 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification
WO2013142979A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Securing accessible systems using dynamic data mangling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JAESUNG YOO等: ""A Method for Secure and Efficient Block Cipher using"", 《PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON UBIQUITOUS INFORMATION MANAGEMENT AND COMMUNICATION,ICUIMC》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451490A (zh) * 2017-07-21 2017-12-08 广州大学 基于TrustZone的安全认证方法、装置、系统及存储介质
CN107451490B (zh) * 2017-07-21 2020-02-28 广州大学 基于TrustZone的安全认证方法、装置、系统及存储介质
CN114124465A (zh) * 2021-10-28 2022-03-01 济南浪潮数据技术有限公司 一种数据传输方法、系统、设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP3035582A1 (en) 2016-06-22
US20160182472A1 (en) 2016-06-23
EP3035582B1 (en) 2017-08-23
CN105718763B (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
CN105718763A (zh) 将白盒实现与精简安全单元绑定
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
CN105721135B (zh) 使用替换盒实施加密操作的方法
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
EP2922235B1 (en) Security module for secure function execution on untrusted platform
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN105184115B (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN107005402A (zh) 提供对内容的访问
CN105024992A (zh) 在单个白箱实现中实现使用相关安全性设置
CN106209346B (zh) 白盒密码技术交错查找表
CN105978680B (zh) 一种加密钥的加密运算方法
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
CN105721134B (zh) 使用带有多个外部编码的单个白盒实现
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
Gu et al. White-box cryptography: practical protection on hostile hosts
CN105024808A (zh) 无需改变密钥的安全性补丁
EP3267618B1 (en) Equality check implemented with secret sharing
KR20210015403A (ko) 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
Xie et al. Assured Deletion: A Scheme Based on Strong Nonseparability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant