CN105007256A - 用于在非信任平台上执行安全功能的安全模块 - Google Patents

用于在非信任平台上执行安全功能的安全模块 Download PDF

Info

Publication number
CN105007256A
CN105007256A CN201510125972.8A CN201510125972A CN105007256A CN 105007256 A CN105007256 A CN 105007256A CN 201510125972 A CN201510125972 A CN 201510125972A CN 105007256 A CN105007256 A CN 105007256A
Authority
CN
China
Prior art keywords
data value
white box
function
result
coding
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
CN201510125972.8A
Other languages
English (en)
Other versions
CN105007256B (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 CN105007256A publication Critical patent/CN105007256A/zh
Application granted granted Critical
Publication of CN105007256B publication Critical patent/CN105007256B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

一种由安全模块对数据输入执行安全功能的方法,包括:安全模块接收加密的数据值;使用白盒解密块密码器来对加密的数据值进行解密,并对解密的数据值进行编码,其中所述数据值对攻击者不可见;对编码的数据值执行功能,并产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;对编程功能的编码的结果进行解码,然后使用白盒加密块密码器来对所述结果进行加密,其中所述结果对所述攻击者不可见。

Description

用于在非信任平台上执行安全功能的安全模块
技术领域
本文公开的各实施例总体上涉及用于在非信任平台上执行安全功能的安全模块。
背景技术
互联网为用户提供了对数字内容的方便并且随处的访问。由于互联网是一个强大的分发渠道,很多用户设备力求直接访问互联网。用户设备可包括个人电脑、笔记本电脑、机顶盒、具有互联网能力的媒体播放器、移动电话、智能电话、平板、移动热点、或者任何其他能够访问互联网的设备。使用互联网作为版权内容的分发媒介对保护内容提供商的利益提出了强有力的挑战。越来越多地,用户设备使用装载有适当软件的处理器来操作,用于呈现(回放)数字内容,例如音频和/或视频。回放软件的控制是实现内容所有者的利益的一种方式,包括内容使用的条款和条件。以前很多用户设备是封闭系统。现在越来越多的平台部分地开放。可以假设一些用户对提供内容访问的硬件和软件具有完全的控制和访问,并具有大量时间和资源来攻击和绕过任何的内容保护机制。因此,内容提供商必须穿过恶意网络到并非所有用户或用户设备都可信的社区以向合法用户传送内容。
安全模块可包括安全软件应用,安全软件应用可被调用以执行各种功能,例如适用于保护和认证数字内容的密码功能。为了对抗攻击,这些算法可以被隐蔽(隐藏),以防止对该算法进行反向工程和修改或者禁止获得用户特定安全信息。因此,安全软件应用的功能可以通过各种功能来执行。例如,一种隐藏这些功能的方法是使用查找表。
内容提供商必须穿过恶意网络到并非所有用户或用户设备都可信的社区以向合法用户传送内容。这引发了白盒(white box)密码开发。在白盒密码场景中,假设用户具有对提供内容访问的硬件和软件的完全的控制,并具有无限量的时间和资源来攻击和绕过任何的内容保护机制。执行内容使用的条款和条件的安全软件代码应当是防篡改的。数字版权管理是安全软件应用的一种常见应用。在数字版权管理中,用于分发到用户设备的受保护内容的一般方法是使用例如DES(数据加密标准)、AES(高级加密标准)或使用其他已知加密方案来加密数字内容,并使用解密密钥来恢复数字内容。这些解密密钥必须受到保护以防止对受保护内容的未授权访问。
依赖加密的数据版权管理的两个主要方面弱点包括执行内容使用的条款和条件的软件模块,以及密钥的分发和处理。通常来说,软件模块执行内容使用的条款和条件。要绕过这些条款和条件的攻击者可能尝试通过篡改软件模块的程序代码来实现这一目的。
关于密钥分发,媒体播放器必须从许可数据库获取解密密钥以回放媒体。然后,媒体播放器必须在存储器中某处存储该解密密钥,以用于加密内容的解密。这使得攻击者对该密钥的攻击有两种选择。第一,攻击者可以对许可数据库访问功能进行反向工程,以允许攻击者从所有许可数据库中获取有价值的密钥。在这种情形中,攻击者不需要理解密码功能的内部工作。第二,攻击者可以观察在内容解密期间的存储器访问,从而攻击者可获取解密密钥。在这两种情形中,密钥被认为是被破坏的。
DRM或其他安全软件的广泛使用导致对寻求让软件篡改复杂化的安全防篡改软件的需求。已有各种用于增强软件应用的防篡改的技术。这些技术中的大多数基于通过对软件应用的控制和数据路径二者的随机性和复杂性加以掩盖来隐藏应用的内在知识。其背后的思路是仅通过代码查看更加难以提取信息。因此,找到例如处理安全应用的访问和准许控制的代码并从而改变它就更为困难。
在这里使用的白盒密码包括在攻击者对执行白盒密码功能的系统具有完全控制的环境中执行密码功能的安全功能。通常来说,白盒密码功能可通过使用处理器上的软件来执行,但是还可以由实现白盒密码功能的各种功能的专用硬件电路来执行。因此,攻击者可修改输入和输出、跟踪安全功能的操作、在任何时刻采样和监控安全功能所使用的存储器、以及甚至修改软件实现中的软件。因此,安全功能需要以防止在安全功能中使用的秘密信息的公开的方式来执行。白盒密码功能可实现为各种方式。这些方法包括:隐藏软件代码;使用隐藏秘密信息的使用的复杂数学函数;使用查找表;使用有限状态机;或者执行密码功能但隐藏这些安全功能所需秘密信息的任何其他方法。白盒实现还可包含包括抗调试和防篡改属性的组件。因此,对很多设备来说,某些功能可以安全执行是重要的。
发明内容
以下提出各示例性实施例的简要概述。在以下概述中可能有一些简化和省略,其旨在突出和介绍各示例性实施例的一些方面,但不限制本发明的范围。以下部分中对示例性实施例的详细说明足以使本领域技术人员实现并使用本发明的构思,
各示例性实施例涉及安全模块接收加密的数据值;使用白盒解密块密码器来对加密的数据值进行解密,并对解密的数据值进行编码,其中所述数据值对攻击者不可见;对编码的数据值执行功能,并产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;对编程功能的编码的结果进行解码,然后使用白盒加密块密码器来对所述结果进行加密,其中所述结果对所述攻击者不可见。
此外,各示例性实施例涉及用于执行安全功能的安全模块,包括:白盒解密模块,被配置为:接收加密的数据值;对加密的数据进行解密;以及对解密的数据值进行编码,其中所述数据值对攻击者不可见;存储器,被配置为存储编码的数据;程序功能模块,被配置为:对数据值执行功能,并产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;以及白盒加密模块,被配置为:对编程功能的编码的结果进行解码;并对所述结果进行加密,其中所述结果对所述攻击者不可见。
此外,各示例性实施例涉及编码有指令的非瞬态机器可读存储介质,所述指令由安全模块执行,用于对数据输入执行安全功能,所述非瞬态机器可读存储介质包括用于执行以下操作的指令:安全模块接收加密的数据值;使用白盒解密块密码器来对加密的数据值进行解密,并对解密的数据值进行编码,其中所述数据值对攻击者不可见;对编码的数据值执行功能,并产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;对编程功能的编码的结果进行解码,然后使用白盒加密块密码器来对所述结果进行加密,其中所述结果对所述攻击者不可见。
此外,各示例性实施例涉及产生密码操作的实现的方法,所述密码操作用于由安全模块对数据输入执行安全功能,包括:产生解密操作的白盒实现,所述解密操作接收加密的数据值;对加密的数据值进行解密,并对解密的数据值进行编码,其中所述数据值对攻击者不可见;对编码的数据值实现功能,产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;以及产生加密操作的白盒实现,所述加密操作接收编码的结果,对编码的结果进行解码,并对所述结果进行加密,其中所述数据值对所述攻击者不可见。
描述了各实施例,其中对所述编码的数据值执行功能还包括:对所述编码的数据值进行解码、对所述数据值执行所述功能、以及对所述功能的结果进行编码。
描述了各实施例,其中所述加密的数据值是从外部源接收的,并且还包括:向所述外部源发送加密的结果。
描述了各实施例,其中所述加密的数据值是从所述安全模块中的存储器接收的,并且还包括:在所述存储器中存储加密的结果。
描述了各实施例,其中所述白盒加密块密码器和所述白盒解密块密码器使用高级加密标准密码。
描述了各实施例,其中所述白盒加密块密码器和所述白盒解密块密码器使用数据加密标准密码。
描述了各实施例,其中所述白盒加密块密码器和所述白盒解密块密码器包括多个查找表。
描述了各实施例,其中所述查找表是硬件查找表。
描述了各实施例,其中所述查找表是存储在存储器中的软件查找表,以及所述白盒加密块密码器和所述白盒解密块密码器在处理器上实现。
描述了各实施例,其中所述白盒加密块密码器和所述白盒解密块密码器包括多个有限状态机。
附图说明
为更好地理解各示例性实施例,参考附图,其中:
图1A示出了由两个四位字节(nibble)的异或(XOR)得到输出四位字节的实现;
图1B示出了用于实现图1A的异或的具有8比特输入和4比特输出的查找表;
图1C是增加输入和输出编码以隐藏输入和输出的图1B的查找表。
图2示出了哈希函数的实现;
图3示出了实现为查找表的网络的哈希函数;
图4示出了图3查找表的输入和输出的编码;以及
图5示出了用于在非信任平台上安全执行功能的安全模块的实施例。
为帮助理解,相同的附图标记用于表示具有实质相同或相似结构和/或具有实质相同或相似功能的单元。
具体实施方式
说明书和附图示出了本发明的原理。因而,将要理解的是,本领域技术人员能够设计本文未明确说明或示出但实现本发明原理且包含在其范围内的各种装置。此外,本文所引用的示例原则上旨在用于示范目的,以帮助读者理解本发明的原理和发明人为推进技术而贡献的构思,并且解释为不限于这些所具体引用的示例和条件。此外,除非另有指示(例如,“否则”或“或者作为备选”),本文中使用的术语“或”是非排它性的(即,和/或)。此外,本文说明的各实施例不必是相互排他的,一些实施例可与一个或多个其他实施例组合,以形成新的实施例。
在安全软件的部署中,期望以防止白盒攻击者确定值和操作结果的方式执行各种操作。因此,以下将说明用于实现白盒攻击模型中功能P的安全执行的实际软件架构的实施例。
实现加密功能的安全软件的白盒实现通常对存储在存储器中的所有值进行编码,然后实现操作,使得其对这些编码的值进行操作,因而无法观察到显见的值。一种实现这一点的方法是使用查找表。图1A示出了由两个四位字节x1和x2(即4比特)得到输出四位字节x3的异或的实现。图1B示出了用于实现图1A的异或的具有8比特输入x1、x2和4比特输出x3的查找表。图1C示出了增加输入和输出编码以隐藏输入x1、x2和输出x3的图1B的查找表。如果用函数f1(x1)和f2(x2)对两个输入四位字节x1和x2进行编码并且应当用f3(x3)对输出x3进行编码,则输入解码和输出编码可合并成图1C所示的异或表。在图1C得到的查找表中,显见值x1、x2和x3不再可见。
图2示出了哈希函数的实现。哈希函数200接收三字节输入(x1,x2,x3)和三字节(k1,k2,k3)密钥。首先,将密钥与输入210、220、230异或。然后,将得到的三个字节相互异或240、250,得到输出Y。图3示出了实现为查找表的网络的哈希函数。查找表310、320、330、340和350对应于图2的异或函数210、220、230、240、250。查找表310、320、330接收输入并将输入与密钥异或。查找表310、320的输出由表340异或,然后将结果和表330的输出一起输入到表350。表350将输入异或,得到哈希函数的输出Y。
图4示出了图3查找表的输入和输出的编码。这是以以下方式来实现的:一个表的输出编码与后续表中的假设的输入编码匹配。编码的查找表410、420、430、440和450对应于图3的查找表310、320、330、340和350。编码的查找表的功能与图3中其相应表相同,其中增加了可以内置在查找表中的输入解码和输出编码。输入可以由编码函数g(x)逐字节地编码。哈希密钥异或表410、420、430的输出可以由函数f1、f2、f3编码。由于异或表440接收来自哈希密钥异或表410和420的输入,异或表440必须解码所接收的输入,然后利用函数f4对输出进行编码。再一次地,这些编码函数可以并入查找表中。类似地,异或表450与异或表440功能类似。结果是编码的输出g(Y)。
在上述示例中,所有编码函数被选择为彼此不同。通过利用恒定编码,可以重用操作的基于表的实现,以实现整个哈希函数。例如,在图4中,隐蔽的异或查找表440和450变为相同。为保持查找表较小,操作可分为多个更较小的操作。例如,字节的异或可写为两个四位字节的异或。
当从安全功能导入或导出值时,上述安全功能的示例存在问题。第一个问题包括,内部编码不可用于保护功能之外的值。第二个问题包括,一旦导入(或导出)值,在将内部编码应用于这些输入和输出值(或从其中移除内部编码)时必须谨慎,因为这些编码较弱,尤其在攻击者具有关于底层值的信息的时候。
此外,通常以较小的块大小来编码值,否则操作也必须对这些较大的块大小进行操作,这将显著地增加查找表的大小和复杂性。然而,通过选择较小的块大小用于编码,降低了安全性。这种较小的块大小意味着操作更容易受到选择明文攻击(chosen-plaintext attack)。为了说明这一点,假设用编码函数f来编码秘密字节。相应地,该编码由其所有的28=256个输入-输出对(x,f(x))完全指定。因此,通过只有256个明文的选择明文攻击就能够简单地将其攻破。
图5示出了用于非信任平台上安全执行功能的安全模块的实施例。在该实施例中,与功能P有关的所有值是总是编码的,并且对攻击者不可见,即,该值永不显见。如果执行操作,则将输入的解码和输出的编码与该操作结合,使得难以提取显见值,并且对攻击者不可见。在这种情形中,通过使用较小的块大小,可以对与操作相关联的值进行编码,以降低查找表的大小。此外,针对不同用户使用不同的编码是有益的。因此,如果攻击者已成功找到一个实现中的内部编码,则攻击者无法自动知道其他实现的内部编码。换句话说,编码应当保持在实现内部,而不在其外使用。
在以下实施例中,描述安全模块500作为在处理器上实现的软件。安全模块包括存储器350,下文中将进一步说明。安全模块500还可完全实现为硬件。安全模块中的各模块可由用于执行期望功能的逻辑电路来实现。安全模块500还可以是硬件和软件的组合,包括可用于实现安全模块的各模块的多个处理器。此外,安全模块的各模块可实现为查找表,有限状态机、或使用隐蔽的软件。
此外,术语“模块”的使用旨在表示包括硬件的实现。硬件可以是执行指定功能的逻辑电路,或者也可以是运行实现为执行安全功能的软件的处理器。
为克服上述问题,在保护的程序P的输入和输出处,可使用常规块密码器的基于表的白盒实现。优选地,可使用具有至少50比特的块大小的密码器以提供安全。白盒实现是一种通过白盒攻击难以提取底层密钥的密码器的实现。基于表的白盒实现非常适合于与其他功能合并。也就是说,基于表的白盒实现可扩展为计算多个功能的组合,使得难以导出功能之间的显见中间值。以下,使用块密码器的白盒实现。
图5中,安全模块500可从外部源510接收加密的输入值x。外部源510对期望输入值x进行加密并向白盒解密块密码器520提供加密的x值。例如,白盒块解密密码器520可以利用对向软件安全模块500提供输入的外部源已知的密钥来实现高级加密标准(AES)或数据加密标准(DES)块密码器。在白盒解密块密码器520中还可以实现其他块密码器。此外,白盒解密块密码器520使用编码函数f来对输入值x进行编码。编码函数f可对整个x值或x的各个部分(例如各个字节)进行操作。然后可以在存储器中存储编码的值f(x)。通过类似的方式,可以接收加密形式的任何输入值x,然后解密并编码,然后存储在存储器530中作为编码的值。在任何的情形中,白盒解密块密码器520的操作操作为使得输入值x对攻击者不可见。安全功能P 540可从存储器530获取编码的输入值f(x)。安全功能P 540可先对输入值进行解码。然后,安全功能P 540可使用解码的输入值来执行操作。可以对这些输入进行任何类型的数值操作、逻辑操作或其组合。可使用查找表或一系列查找表来实现这些操作。然后,安全功能P 540可使用编码函数f来对输出进行编码。在任何情形中,安全功能P 540的操作操作为使得输入值x和安全功能P 540的输出对攻击者不可见。然后,编码的输出可再次存储在存储器530中。在其他实施例中,安全功能P 540可直接对编码的输入进行操作,以直接产生编码的输出,而不进行任何输入解码和输出编码。如果存储在存储中的项目是针对外部源540的输出,则白盒加密块密码器550可从存储器530接收编码的项目。白盒加密块密码器550对编码的项目进行解码,然后对输出项目进行加密以向外部源550的传输。在任何情形中,白盒加密块密码器550的操作操作为使得编码的项目的底层值对攻击者不可见。
软件安全模块500可包括许多其他执行各种功能的多个其他安全功能P 540。这些各种软件程序P可组合以实现更复杂的功能。在这种情形中,存储器530可存储来自各安全功能P的编码的数据值。所存储的编码的数据可以是来自各安全功能P的输出,并输入到其他各安全功能,从而在保护所存储的编码的数据不受攻击的同时,实现各安全功能之间的互操作。此外,来自存储器的数据可由白盒加密块密码器550编码并存储为加密的数据。如果各安全功能P中的一个需要加密的数据,则向白盒解密块密码器520输入加密的数据,从而数据由编码功能f进行编码,因而现在可由安全功能使用。当需要额外安全性时,或者针对特别敏感的信息,尤其是当这些信息可能在存储器中留存更长时间,使其更容易受到攻击时,可存储由白盒加密块密码器550加密的数据。
上述实施例将带来各种益处。所有值都编码或加密存储在存储器中,从而受到保护。此外,在操作期间,所有中间值保持为编码或加密的。为了向/从编码的存储器导入/导出值,可以使用基于表的白盒块密码器,将内部使用的编码/加密函数合并入其中。此外,安全功能P中的所有操作可写为查找表的隐蔽网络。如果某操作被执行多次,则其可以也可以不用相同的查找表网络来实现。此外,如果向/从软件安全模块导入/导出值x,则使用白盒块密码器来解密/加密输入/输出。白盒块密码器与x的编码合并,以与安全功能P一起使用。对输入和输出使用白盒块密码器相对于具有内部编码功能的较小块大小得到强化,因为其防止了选择明文攻击。如果白盒实现底层的常规块密码器能够抵抗选择明文攻击,则对白盒实现执行选择明文攻击是无效的。此外,由于攻击者不能访问内部编码功能f的明文输入,执行对f的选择明文攻击是不可能的。
根据本发明实施例的方法可在计算机上实现,作为计算机实现的方法,或者在专用硬件中实现,或者在二者的组合中实现。用于根据本发明的方法的可执行代码可存储在计算机程序介质上。计算机程序介质的示例包括存储器设备、光存储设备、集成电路、服务器、在线软件等。
在本发明实施例中,计算机程序可包括计算机程序代码,计算机程序代码适于当计算机程序代码在计算机上运行时,执行根据本发明的方法的所有步骤。优选地,计算机程序实现在非瞬态计算机可读介质上。
此外,白盒密码往往非常复杂和/或晦涩,由人来写将很枯燥。因此,以自动方式来创建根据本发明实施例的密码系统的方法是有利的。
根据本发明的创建密码系统的方法可在计算机上实现作为计算机实现的方法,或者在专用硬件中实现,或者在二者的组合中实现。用于根据本发明的方法的可执行代码可存储在计算机程序介质上。在该方法中,计算机程序可包括计算机程序代码,计算机程序代码适于当计算机程序代码在计算机上运行时,执行根据本发明的方法的所有步骤。计算机程序实现在非瞬态计算机可读介质上。
在处理器上运行用于实现本发明实施例的特定软件的任何组合构成特定专用机器。
本发明实施例的硬件系统实现可包括实现白盒块密码器的基本模块以及软件程序P的功能的硬件单元。这些硬件单元可包括,例如,查找表或有限状态机。这些硬件单元可互连以完全执行安全软件实现。
这里所使用的术语“非瞬态机器可读存储介质”将理解为不包括瞬态传播信号,但包括所有形式的易失性和非易失性存储器。
这里所使用的术语“处理器”将理解为涵盖各种设备,例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、及其他类似处理设备。当软件在计算机上实现时,该组合成为单独专用机器。
本领域技术人员应当理解,这里的任何框图表示实现本发明原理的说明性电路的概念图。
尽管具体参考各示例性实施例的某些示例性方面对其进行详细说明,应当理解,本发明还可以是其他实施例,并且其细节可在各明显方面进行修改。本领域技术人员非常清楚,可在本发明的精神和范围内实现改变和修改。因此,以上公开、说明、和附图仅用于说明性目的,而不以任何方式限制仅由权利要求界定的本发明。

Claims (10)

1.一种由安全模块对数据输入执行安全功能的方法,包括:
安全模块接收加密的数据值;
使用白盒解密块密码器来对加密的数据值进行解密,并对解密的数据值进行编码,其中所述数据值对攻击者不可见;
对编码的数据值执行功能,并产生所述功能的编码的结果,其中所述数据值和结果对所述攻击者不可见;
对编程功能的编码的结果进行解码,然后使用白盒加密块密码器来对所述结果进行加密,其中所述结果对所述攻击者不可见。
2.根据权利要求1所述的方法,其中对所述编码的数据值执行功能还包括:对所述编码的数据值进行解码、对所述数据值执行所述功能、以及对所述功能的结果进行编码。
3.根据权利要求1所述的方法,其中所述加密的数据值是从外部源接收的,所述方法还包括:向所述外部源发送加密的结果。
4.根据权利要求1所述的方法,其中所述加密的数据值是从所述安全模块中的存储器接收的,所述方法还包括:在所述存储器中存储加密的结果。
5.根据权利要求1所述的方法,其中所述白盒加密块密码器和所述白盒解密块密码器使用高级加密标准密码。
6.根据权利要求1所述的方法,其中所述白盒加密块密码器和所述白盒解密块密码器使用数据加密标准密码。
7.根据权利要求1所述的方法,其中所述白盒加密块密码器和所述白盒解密块密码器包括多个查找表。
8.根据权利要求7所述的方法,其中所述查找表是硬件查找表。
9.根据权利要求7所述的方法,其中所述查找表是存储在存储器中的软件查找表,以及所述白盒加密块密码器和所述白盒解密块密码器在处理器上实现。
10.根据权利要求1所述的方法,其中所述白盒加密块密码器和所述白盒解密块密码器包括多个有限状态机。
CN201510125972.8A 2014-03-20 2015-03-20 用于在非信任平台上执行安全功能的安全模块 Active CN105007256B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/220,321 2014-03-20
US14/220,321 US9654279B2 (en) 2014-03-20 2014-03-20 Security module for secure function execution on untrusted platform

Publications (2)

Publication Number Publication Date
CN105007256A true CN105007256A (zh) 2015-10-28
CN105007256B CN105007256B (zh) 2018-08-24

Family

ID=52692437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510125972.8A Active CN105007256B (zh) 2014-03-20 2015-03-20 用于在非信任平台上执行安全功能的安全模块

Country Status (3)

Country Link
US (1) US9654279B2 (zh)
EP (1) EP2922235B1 (zh)
CN (1) CN105007256B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656467A (zh) * 2015-10-29 2017-05-10 三星Sds株式会社 加密装置及方法
CN106888081A (zh) * 2015-12-16 2017-06-23 恩智浦有限公司 白盒实施方案内中间值的宽编码

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584310B2 (en) 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
EP3493457A1 (en) * 2017-11-30 2019-06-05 Gemalto Sa Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
US10911236B2 (en) * 2017-12-13 2021-02-02 Paypal, Inc. Systems and methods updating cryptographic processes in white-box cryptography
US10140612B1 (en) 2017-12-15 2018-11-27 Clover Network, Inc. POS system with white box encryption key sharing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039025A1 (en) * 2003-07-22 2005-02-17 Alexander Main Software conditional access system
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和系统
CN102047220A (zh) * 2008-05-23 2011-05-04 爱迪德加拿大公司 生成软件应用程序的白盒实现的系统和方法
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统
CN103119888A (zh) * 2010-08-20 2013-05-22 苹果公司 用于不安全环境中的块密码处理的装置和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2354470A1 (en) * 2001-07-30 2003-01-30 Cloakware Corporation Active content for secure digital media
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
US7769165B2 (en) * 2005-10-14 2010-08-03 Microsoft Corporation Semi-public white-box cipher
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
CN101536398B (zh) * 2006-11-17 2012-11-07 耶德托公司 用于白盒实现的加密方法
KR101744748B1 (ko) * 2011-01-05 2017-06-09 한국전자통신연구원 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039025A1 (en) * 2003-07-22 2005-02-17 Alexander Main Software conditional access system
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和系统
CN102047220A (zh) * 2008-05-23 2011-05-04 爱迪德加拿大公司 生成软件应用程序的白盒实现的系统和方法
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统
CN103119888A (zh) * 2010-08-20 2013-05-22 苹果公司 用于不安全环境中的块密码处理的装置和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656467A (zh) * 2015-10-29 2017-05-10 三星Sds株式会社 加密装置及方法
CN106656467B (zh) * 2015-10-29 2021-01-15 三星Sds株式会社 加密装置及方法
CN106888081A (zh) * 2015-12-16 2017-06-23 恩智浦有限公司 白盒实施方案内中间值的宽编码
CN106888081B (zh) * 2015-12-16 2021-08-13 恩智浦有限公司 白盒实施方案内中间值的宽编码

Also Published As

Publication number Publication date
EP2922235B1 (en) 2016-12-07
US20150270951A1 (en) 2015-09-24
CN105007256B (zh) 2018-08-24
US9654279B2 (en) 2017-05-16
EP2922235A1 (en) 2015-09-23

Similar Documents

Publication Publication Date Title
CN105007256B (zh) 用于在非信任平台上执行安全功能的安全模块
CN105049400B (zh) 在白盒实现方案中拆分s盒以防止攻击
CN105721135B (zh) 使用替换盒实施加密操作的方法
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
CN105024803B (zh) 白箱实现中的行为指纹
CN105187364A (zh) 保护白盒实现方案不受攻击
CN105184115B (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN105718763A (zh) 将白盒实现与精简安全单元绑定
CN105095695B (zh) 经由白箱实现的不正确功能行为实现授权
CN105024992A (zh) 在单个白箱实现中实现使用相关安全性设置
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
CN105978680B (zh) 一种加密钥的加密运算方法
CN105721134B (zh) 使用带有多个外部编码的单个白盒实现
CN107273724A (zh) 为白盒实施方案的输入和输出加水印
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
CN105024808A (zh) 无需改变密钥的安全性补丁
Masadeh et al. Secure communication: A Proposed public key watermark system
EP3267618B1 (en) Equality check implemented with secret sharing
KR101625018B1 (ko) 데이터 암호화 장치 및 방법, 그를 이용한 컴퓨팅 장치 및 통신 장치
Lee Design and Implementation of Ancient and Modern Cryptography Program for Documents Security
Agrawal et al. Perspective Chapter: Quantum Steganography–Encoding Secrets in the Quantum Domain
Mokhnache et al. Comparative analysis between a pixel-wise image encryption scheme and AES in a web application context

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