保护智能卡.pdf

上传人:a1 文档编号:1104705 上传时间:2018-03-31 格式:PDF 页数:8 大小:357.35KB
返回 下载 相关 举报
摘要
申请专利号:

CN200980109298.7

申请日:

2009.01.26

公开号:

CN101978647A

公开日:

2011.02.16

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 9/06申请公布日:20110216|||著录事项变更IPC(主分类):H04L 9/06变更事项:申请人变更前:耶德托公司变更后:爱迪德有限责任公司变更事项:地址变更前:荷兰霍夫多普变更后:荷兰霍夫多普|||实质审查的生效IPC(主分类):H04L 9/06申请日:20090126|||公开

IPC分类号:

H04L9/06

主分类号:

H04L9/06

申请人:

耶德托公司

发明人:

W·P·A·J·米希尔斯; C·奎佩尔斯

地址:

荷兰霍夫多普

优先权:

2008.01.31 EP 08150860.8

专利代理机构:

中国国际贸易促进委员会专利商标事务所 11038

代理人:

李镇江

PDF下载: PDF下载
内容摘要

本公开涉及一种保护智能卡。本发明提供一种用于保护智能卡(100)的方法,该智能卡包含处理装置(101),用于以加密的方式存储由处理装置执行的软件模块(115)的存储器(110),和配置用于准时解密软件模块的解密装置(130),该方法包含给智能卡提供解密装置的白盒实施的步骤。在一个实施例中,白盒实施包含Lombok密码算法的白盒实施。

权利要求书

1: 一种用于保护智能卡 (100) 的方法, 所述智能卡包含处理装置 (101)、 用于以加密的 方式存储由所述处理装置执行的软件模块 (115) 的存储器 (110)、 和配置用于准时解密所 述软件模块的解密装置 (130), 所述方法包含给所述智能卡提供所述解密装置的白盒实施 的步骤。
2: 根据权利要求 1 所述的方法, 其中所述解密装置 (130) 利用将 4 比特映射到 4 比特 的 S- 盒来实现密码算法。
3: 根据权利要求 1 或 2 所述的方法, 其中所述白盒实施在用于所述解密装置的所述密 码算法中保持任何异或运算而不是将所述异或运算转换成查找表。
4: 根据权利要求 1 所述的方法, 其中所述白盒实施包含所述 Lombok 密码算法的白盒实 施。
5: 一种智能卡 (100), 包含处理装置 (101)、 用于以加密的方式存储由所述处理装置执 行的软件模块 (115) 的存储器 (110)、 和配置用于准时解密所述软件模块的解密装置 (130) 的白盒实施。

说明书


保护智能卡

    【技术领域】
     本发明涉及一种智能卡以及一种用于保护该智能卡的方法。背景技术 智能卡、 微处理器卡、 芯片卡或集成电路卡 (ICC) 被定义为相对小的、 通常为袖珍 大小的卡, 其具有能够处理信息的嵌入式集成电路。 这种智能卡用于安全地存储敏感信息, 诸如密码钥 (cryptographic key) 或实现有价值的算法或专有技术 (know-how) 的软件例 程。
     因为智能卡的封闭特性, 它们长期被视为黑盒, 其中攻击者只能观察输入和输出 而不能观察密码算法的实施方式的操作。然而现今存在许多技术来获得这种实施方式的 细节, 有时甚至从卡提取全部或部分的嵌入式软件。一些众所周知的示例是缺陷注入攻击 (fault iniection attack) 和缓冲区溢出攻击 (buffer overflow attack)。
     在对智能卡的缺陷注入攻击中, 攻击者设法通过给予智能卡无效的输入或通过将 智能卡暴露于超出规格条件 ( 诸如极限电压 ) 来改变智能卡的性能。还能以入侵方式进行 缺陷注入攻击。 入侵式缺陷注入的一个示例是将芯片物理地打开并将未受保护的硬件暴露 于辐射, 通过辐射改变芯片的性能。由于这种故意导致的缺陷产生的改变后的性能可以揭 示某些敏感信息。
     在缓冲区溢出攻击中, 攻击者用比能被存储的数据多的数据来填充存储器位置, 这会使其他数据结构损坏。利用数据的正确选择, 损坏能导致数据或代码片段从存储器泄 漏到外界。
     参 见 例 如 OliverMarkus G.Kuhn 在 Proceedings of theUSENIX Workshop on Smartcard Technology(Smartcard’ 99), Chicago, Illinois, USA, May 10-11, 1999, USENIX Association, pp.9-20, ISBN 1-880446-34-0 上 发 表 的、 用于 概括性介绍这些种类的攻击的 “Design Principles for Tamper Resistant Smartcard Processor(“擅改有抵抗力的智能卡处理器的设计原理” )。
     为了保护免受这些种类的攻击, WO 2007105126( 代理案卷 PH005600) 和美国专利 申请 20060140401 提出采用一种白盒实施来保护密码实施并且提到该解决方案可在智能 卡中的其他器件之中使用。 密码算法的白盒实施是隐藏密码算法的一些或全部内部工作以 免受白盒攻击的实施, 白盒攻击即是攻击者能够观察由处理器执行的一些或全部指令的一 种攻击。 在某些情况下, 攻击者对操作环境具有某种形式的控制, 这允许他观察至少部分的 密码操作并且识别执行期间在算法中使用的至少部分的密码钥。 例如他能够在调试环境或 虚拟机内部执行该实施, 并由此观察全部操作、 操纵数据缓冲区并监视执行流程。
     在其他情况下, 攻击者能使操作环境在密码算法的执行期间 “泄漏” 或暴露部分实 施或数据缓冲区的部分内容。 例如, 攻击者能够使用缓冲区溢出攻击来提取部分密码实施。 如果提取到正确的部分, 则攻击者可由此获悉密码钥或者使他能够解开一些或全部密码保 护的实施中的特定设置。白盒实施隐藏密码算法的一些或全部内部工作, 尤其是密钥数据。这能以多种方 式实现。 一种产生白盒实施的流行技术是使用密码算法中的编码表与代表综合步骤而非单 独步骤的随机双射的组合。解密密钥和解密算法被有效转变成一个单块集成电路。该集成 电路块没有一个部分揭示关于算法或密钥的内部工作的任何信息。实际上, 即使在给出整 个白盒实施时, 对所使用的原始算法或解密密钥进行反向工程也是极其困难的。在例如欧 洲专利申请序列号 08155798.5( 代理案卷 PH010099) 中公开的另一种技术是在诸如 RSA 的 密码算法中的指数的模糊处理 (obfuscation of anexponent)。
     在智能卡上使用密码算法的白盒实施的缺点在于与传统实施相比, 白盒实施在代 码大小方面会变成极大, 而智能卡具有非常有限的存储。例如, 如 Chow 1( 如下面所引用 的 ) 提出的 AES 加密算法的白盒实施具有大于 0.7 兆字节的大小。传统的、 即非白盒形式 的 AES 的一个参考实施的大小为 10 千字节的级别。 发明内容 本发明的一个目的是有效保护智能卡免受攻击, 该攻击会暴露关于智能卡中软件 模块的工作的信息。
     本发明通过如权利要求 1 中所要求的一种方法和如权利要求 5 中所要求的一种智 能卡来实现该目的。使用任何适当的密码算法对需要受到保护的软件模块进行加密。例如 可使用 3DES 或 AES。 提供准时 (just in time) 解密模块, 该模块在需要执行软件模块时对 该软件模块 ( 或其中需要的部分 ) 解密。随后一旦可能就删除该软件模块的解密的拷贝。 这减少了攻击者获得软件模块的拷贝的机会。攻击者能够提取该模块的加密的版本, 但没 有正确的解密密钥, 该版本是无用的。
     根据本发明, 使用了解密模块的白盒实施。因为仅仅该相对小的模块使用白盒技 术来实现, 所以智能卡的存储需求仅稍微提高。 可使用用于产生这种白盒实施的上述技术, 虽然也可以使用现在已知的或此后设计的其他白盒技术。
     主要需求在于白盒实施在大小方面并非太小并具有这种性质, 即, 如果攻击者具 有该实施的任何部分 ( 包括算法使用的密钥 ), 则他难以由此得到功能上正确的解密函数。 该需求比在白盒实施中经常假设的需求弱, 即, 攻击者对环境具有完全控制。 本发明因此允 许在白盒安全性和密钥大小之间折衷 (trade off)。
     用于解密算法的实施的必要条件在于用这种方式来实现, 即, 攻击者从一部分实 施不能获得基础密钥 (underlying key)。一些白盒技术, 例如上述使用编码表的组合的技 术, 被设计成抵挡攻击者对环境具有完全控制的白盒攻击。虽然这种技术适于本发明的目 的, 但存在同样适于本发明的其他更容易的白盒技术。
     作为一个示例, 当产生 AES 的白盒实施时, 它有能力通过非线性编码来对每个查 找表的输入和输出进行编码。通过线性编码对异或 (XOR) 运算之前的查找表的输出 ( 以及 相应地, 还有异或运算之后的查找表的输入 ) 进行编码, 对本发明的目的而言, 没有必要通 过查找表来实现异或运算。
     另一个优点在于现在需要被保护的软件更加独立, 这意味着可加强对它的检查以 保护它免受上述攻击。
     因此, 在该假定性敏感代码的执行期间, 成功攻击的机会显著减小。 虽然其他软件仍旧易受攻击, 但这最多将暴露受保护软件模块的加密的部分。攻击者将不能利用这些部 分。
     白盒实施优选为如 US7043016( 代理案卷 PHNL000365) 和 EP1307993B1( 代理案卷 PHNL000444) 中公开的 Lombok 密码算法的白盒实施。该实施例的优点在于 Lombok 的白盒 实施小于 AES 的白盒实施。这是由于 Lombok 具有 4 比特 S- 盒 (S-box), 即, 将 4 比特映射 到 4 比特的 S- 盒, 而 AES 具有 8 比特 S- 盒。
     对于每个 S- 盒, 白盒 Lombok 和 AES 实施都具有包含 S- 盒的查找表。m 比特 S- 盒 m 在查找表中产生 2 行。因而, 更小的 S- 盒产生更小的白盒实施。 附图说明
     从附图中示出的示例性实施例和参考这些实施例所做的阐明, 本发明的这些和其 他方面将是容易理解的, 其中 :
     图 1 示意性示出智能卡。 具体实施方式
     图 1 示意性示出包含处理器 101 和存储器 110 的智能卡 100, 该存储器 110 用 于存储由处理器 101 执行的一个或多个软件模块。一个软件模块是模块 115, 这是本发 明的对象。存储器 110 被优选实现为电可擦除只读存储器 (EEPROM) 或闪速存储器, 虽然 许多可替换的存储介质也是可用的。存储器 110 可以额外存储诸如密码钥或授权单元 (authorization element) 的数据。 还可使用单独的存储器 ( 未示出 ) 来存储这种数据, 例 如如果期望指令与数据分开。
     智能卡 100 还包含输入 / 输出模块 120, 用于从设备 ( 未示出 ) 接收数据和向设 备传输数据, 该设备与智能卡 100 耦接。将该模块 120 通常被实施为与设备内的读取器中 的电连接器相接触的芯片, 优选如 ISO/IEC 7816 和 ISO/IEC 7810 系列的标准中所定义的。 在所谓非接触式智能卡中使用一种替换方式, 其中数据的传输是通过射频感应技术, 例如 在 ISO/IEC 14443 中所定义的。
     智能卡 100 可例如用于条件存取或数字版权管理 (DRM) 系统并为在被授权时解密 音频和 / 或视频数据提供解密算法的软件实施。机顶盒、 电视、 计算机或其他设备然后将加 密的数据通过 I/O 模块 120 馈送到智能卡 100, 并且如果智能卡 100 确定设备被授权接收该 数据, 则设备进而接收解密后的数据。为此, 存储器 110( 或其他存储器 ) 可存储权利消息、 许可或权利对象 (right object), 或者设备可供给这种项目连同它们所应用的数据。
     由于这种系统的工作是众所周知的, 因此将不对其进一步详细阐述。正如本领域 技术人员所知的, 在期望安全性的许多其他情形下, 智能卡也是有用的。
     在存储器 110 中存储的软件模块 115 以加密的方式存储。任何已知的或未来的加 密算法, 例如 AES 或 3DES, 都可用于加密该软件模块 115。这确保了如果攻击者设法提取存 储器 110 的全部或部分内容, 则他不会获得关于软件模块 115 的有用信息。该模块 115 可 以包含有价值的专用技术或密码钥, 例如需要被保护的授权密钥或解密密钥。
     软件模块 115 只是存储器 110 中存储的软件模块之一。其他模块也可以加密或不 加密的 ( 明文 ) 形式存储在同一存储器 110 中。智能卡 100 提供准时解密模块 130, 该解密模块 130 被配置用于在由处理器 101 执 行软件模块 115 的有关部分时对软件模块 115 的有关部分解密。模块 130 可能的实施包括 在每条指令被馈送到处理器 101 之前对其解密, 或者对软件模块 115 的多个块解密, 接着软 件模块 115 的多个块作为一个整体被供给处理器 101。执行之后尽可能快地从存储器擦除 解密后的 ( 多条 ) 指令或 ( 多个 ) 块。
     在准时解密的一些实施例中, 解密后的 ( 多条 ) 指令或 ( 多个 ) 块存储在处理器 101 中或其附近的临时存储器 ( 未示出 ) 中。在这种实施例中, 在 ( 多条 ) 指令或 ( 多个 ) 块已经被执行时且在智能卡 100 被激活或无效时, 该临时存储器必须被清零。
     通常准时解密功能被实现为智能卡 101 上单独的硬件模块, 或实现为嵌入式软件 模块。在智能卡中准时解密的概念, 也已知名称为诸如总线加密, 同样从例如 US4168396 或 US5224166 获知。 后者专利例如公开了一种诸如智能卡的数据处理系统, 在系统的安全物理 区中具有内部高速缓冲存储器。相应于存储器 110 的外部存储器被安置在安全物理区的外 部并存储加密和未加密的数据和 / 或指令。指令使得能够存取包含在安全物理区内的私人 密钥, 该密钥用于对伴随有加密的数据和指令的加密的主密钥解密。
     类似于安全物理区中的解密模块 130 的接口电路通过使用私人密钥对每个加密 后的主密钥解密并且还对与每个解密后的主密钥相关的加密后的数据和指令解密。 相应于 处理器 101 的中央处理器从外部存储器存取未加密和加密的数据和指令两者的片段, 并使 接口电路采用解密的主密钥来解密数据和指令以及将解密的信息存储在内部存储器高速 缓冲存储器中。未加密的数据和指令被直接存储在内部存储器高速缓冲存储器中。 根据本发明, 模块 130 中的解密功能被提供为可应用的密码算法的白盒实施。正 如所述的, 白盒实施通过使用密码算法中的编码表与代表综合步骤而非单独步骤的随机双 射的组合来隐藏密码算法的内部工作。
     国际专利申请 WO 2005/060147( 代理案卷 PHNL031443)、 WO2007/031894( 代理案 卷 PH001720) 和 WO 2006/046187( 代理案卷 PHNL041207) 公开了密码算法的白盒实施。
     此后被引用为 “Chow 1”的 Stanley Chow, Philip Eisen, Harold Johnson 和 Paul C.Van Oorschot 在 Selected Areas in Cryptography : 9th Annual International Workshop, SAC 2002, St.John’ s, Newfoundland, Canada, August 15-16, 2002 上 发 表 的 “White-Box Cryptography and an AES Implementation” (“白 盒 密 码 和 AES 实 施” )、 和此后被引用为 “Chow 2”的 Stanley Chow, Philip Eisen, Harold Johnson, Paul C.Van Oorschot 在 Digital Rights Management : ACM CCS-9Workshop, DRM 2002, Washington, DC, USA, November 18, 2002 上发表的 “A White-Box DES Implementation for DRMApplications” (“用于 DRM 应用的白盒 DES 实施” ), 公开了产生密码算法的白盒实施 的方法。
     这提供了解密模块 130 仍旧如前操作并可对存储在存储器 110 中的软件模块 115 的那些部分解密, 但提取解密模块 130 的内容的任何部分不提供有关其工作、 或者有关用 于解密存储器 110 的软件模块的部分的解密密钥的任何有用的信息。
     虽然存在从智能卡提取数据片段的多种技术 ( 参见第 1 页上引用的参考文献 ), 但 那些技术只揭示少量数据。例如, ISO 标准 7816 规定从这种攻击至多可泄漏 255 字节。诸 如只读存储器 (ROM) 提取攻击的攻击可暴露更多代码, 但是由于这种攻击的特性, 通常被
     提取数据字节的五分之一具有错误值。这意味着攻击者只能获取平均为 80%的白盒实施, 这对于从它恢复任何有用的信息是不足够的。
     因为与存储器 110 的内容相比, 模块 130 中实现的解密机制相对小, 所以用于该白 盒实施的存储需求也相对小。
     该机制的小尺寸还允许使用更加严格的代码安全性措施。
     为了减少白盒实施的存储需求, 一个选项是采用使用 4- 比特 S- 盒的密码算法而 不是象具有 8- 比特 S- 盒的 AES 的算法, 因为 m- 比特 S- 盒在查找表中产生 2m 行。可以与 上述选项一起使用或不一起使用的另一个选项是将算法中的异或运算保持为异或运算而 不是将异或运算转换成表。
     在 一 个 优 选 实 施 例 中, 所 使 用 的 解 密 算 法 是 Lombok 密 码 算 法, 正如在 US7043016( 代理案卷 PHNL000365) 和 EP1307993B1( 代理案卷 PHNL000444) 中所公开的。 关 于如何提供 Lombok 的白盒实施的更多信息可以在 WO 2005/060147( 代理案卷 PHNL031443) 中找到。Lombok 非常适于白盒实施。实验已经显示 Lombok 的白盒实施可以小到 10 千字 节。
     虽然上面已经参考一个加密的模块 115 对本发明进行了解释, 但是当然能够以加 密的方式存储多于一个的软件模块并使用模块 130 对其解密。 应该注意到上述实施例例示而非限制本发明, 并且本领域技术人员将能够在不背 离所附权利要求的范围情况下设计许多可替换的实施例。
     在权利要求中, 放在圆括号之间的附图标记不应被解释为限制该项权利要求。单 词 “包含” 不排除存在不同于权利要求中列出的元件或步骤的元件或步骤。元件之前的单 词 “一个” 或 “一种” 不排除存在多个这种元件。通过包含几个不同元件的硬件和通过适当 编程的计算机来实现本发明。
     在列举若干装置的设备权利要求中, 可以通过硬件中的一项和相同项来实施这些 装置中的若干。 仅仅在相互不同的从属权利要求中引用某些措施不表明这些措施的组合不 能用于使其有利。
    

保护智能卡.pdf_第1页
第1页 / 共8页
保护智能卡.pdf_第2页
第2页 / 共8页
保护智能卡.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《保护智能卡.pdf》由会员分享,可在线阅读,更多相关《保护智能卡.pdf(8页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101978647A43申请公布日20110216CN101978647ACN101978647A21申请号200980109298722申请日2009012608150860820080131EPH04L9/0620060171申请人耶德托公司地址荷兰霍夫多普72发明人WPAJ米希尔斯C奎佩尔斯74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人李镇江54发明名称保护智能卡57摘要本公开涉及一种保护智能卡。本发明提供一种用于保护智能卡100的方法,该智能卡包含处理装置101,用于以加密的方式存储由处理装置执行的软件模块115的存储器110,和配置用于准时解密。

2、软件模块的解密装置130,该方法包含给智能卡提供解密装置的白盒实施的步骤。在一个实施例中,白盒实施包含LOMBOK密码算法的白盒实施。30优先权数据85PCT申请进入国家阶段日2010091686PCT申请的申请数据PCT/IB2009/0503032009012687PCT申请的公布数据WO2009/095838EN2009080651INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图1页CN101978652A1/1页21一种用于保护智能卡100的方法,所述智能卡包含处理装置101、用于以加密的方式存储由所述处理装置执行的软件模块115的存储器110、和。

3、配置用于准时解密所述软件模块的解密装置130,所述方法包含给所述智能卡提供所述解密装置的白盒实施的步骤。2根据权利要求1所述的方法,其中所述解密装置130利用将4比特映射到4比特的S盒来实现密码算法。3根据权利要求1或2所述的方法,其中所述白盒实施在用于所述解密装置的所述密码算法中保持任何异或运算而不是将所述异或运算转换成查找表。4根据权利要求1所述的方法,其中所述白盒实施包含所述LOMBOK密码算法的白盒实施。5一种智能卡100,包含处理装置101、用于以加密的方式存储由所述处理装置执行的软件模块115的存储器110、和配置用于准时解密所述软件模块的解密装置130的白盒实施。权利要求书CN1。

4、01978647ACN101978652A1/5页3保护智能卡技术领域0001本发明涉及一种智能卡以及一种用于保护该智能卡的方法。背景技术0002智能卡、微处理器卡、芯片卡或集成电路卡ICC被定义为相对小的、通常为袖珍大小的卡,其具有能够处理信息的嵌入式集成电路。这种智能卡用于安全地存储敏感信息,诸如密码钥CRYPTOGRAPHICKEY或实现有价值的算法或专有技术KNOWHOW的软件例程。0003因为智能卡的封闭特性,它们长期被视为黑盒,其中攻击者只能观察输入和输出而不能观察密码算法的实施方式的操作。然而现今存在许多技术来获得这种实施方式的细节,有时甚至从卡提取全部或部分的嵌入式软件。一些众。

5、所周知的示例是缺陷注入攻击FAULTINIECTIONATTACK和缓冲区溢出攻击BUFFEROVERFLOWATTACK。0004在对智能卡的缺陷注入攻击中,攻击者设法通过给予智能卡无效的输入或通过将智能卡暴露于超出规格条件诸如极限电压来改变智能卡的性能。还能以入侵方式进行缺陷注入攻击。入侵式缺陷注入的一个示例是将芯片物理地打开并将未受保护的硬件暴露于辐射,通过辐射改变芯片的性能。由于这种故意导致的缺陷产生的改变后的性能可以揭示某些敏感信息。0005在缓冲区溢出攻击中,攻击者用比能被存储的数据多的数据来填充存储器位置,这会使其他数据结构损坏。利用数据的正确选择,损坏能导致数据或代码片段从存储。

6、器泄漏到外界。0006参见例如OLIVERMARKUSGKUHN在PROCEEDINGSOFTHEUSENIXWORKSHOPONSMARTCARDTECHNOLOGYSMARTCARD99,CHICAGO,ILLINOIS,USA,MAY1011,1999,USENIXASSOCIATION,PP920,ISBN1880446340上发表的、用于概括性介绍这些种类的攻击的“DESIGNPRINCIPLESFORTAMPERRESISTANTSMARTCARDPROCESSOR“擅改有抵抗力的智能卡处理器的设计原理”。0007为了保护免受这些种类的攻击,WO2007105126代理案卷PH00。

7、5600和美国专利申请20060140401提出采用一种白盒实施来保护密码实施并且提到该解决方案可在智能卡中的其他器件之中使用。密码算法的白盒实施是隐藏密码算法的一些或全部内部工作以免受白盒攻击的实施,白盒攻击即是攻击者能够观察由处理器执行的一些或全部指令的一种攻击。在某些情况下,攻击者对操作环境具有某种形式的控制,这允许他观察至少部分的密码操作并且识别执行期间在算法中使用的至少部分的密码钥。例如他能够在调试环境或虚拟机内部执行该实施,并由此观察全部操作、操纵数据缓冲区并监视执行流程。0008在其他情况下,攻击者能使操作环境在密码算法的执行期间“泄漏”或暴露部分实施或数据缓冲区的部分内容。例如。

8、,攻击者能够使用缓冲区溢出攻击来提取部分密码实施。如果提取到正确的部分,则攻击者可由此获悉密码钥或者使他能够解开一些或全部密码保护的实施中的特定设置。说明书CN101978647ACN101978652A2/5页40009白盒实施隐藏密码算法的一些或全部内部工作,尤其是密钥数据。这能以多种方式实现。一种产生白盒实施的流行技术是使用密码算法中的编码表与代表综合步骤而非单独步骤的随机双射的组合。解密密钥和解密算法被有效转变成一个单块集成电路。该集成电路块没有一个部分揭示关于算法或密钥的内部工作的任何信息。实际上,即使在给出整个白盒实施时,对所使用的原始算法或解密密钥进行反向工程也是极其困难的。在例。

9、如欧洲专利申请序列号081557985代理案卷PH010099中公开的另一种技术是在诸如RSA的密码算法中的指数的模糊处理OBFUSCATIONOFANEXPONENT。0010在智能卡上使用密码算法的白盒实施的缺点在于与传统实施相比,白盒实施在代码大小方面会变成极大,而智能卡具有非常有限的存储。例如,如CHOW1如下面所引用的提出的AES加密算法的白盒实施具有大于07兆字节的大小。传统的、即非白盒形式的AES的一个参考实施的大小为10千字节的级别。发明内容0011本发明的一个目的是有效保护智能卡免受攻击,该攻击会暴露关于智能卡中软件模块的工作的信息。0012本发明通过如权利要求1中所要求的一。

10、种方法和如权利要求5中所要求的一种智能卡来实现该目的。使用任何适当的密码算法对需要受到保护的软件模块进行加密。例如可使用3DES或AES。提供准时JUSTINTIME解密模块,该模块在需要执行软件模块时对该软件模块或其中需要的部分解密。随后一旦可能就删除该软件模块的解密的拷贝。这减少了攻击者获得软件模块的拷贝的机会。攻击者能够提取该模块的加密的版本,但没有正确的解密密钥,该版本是无用的。0013根据本发明,使用了解密模块的白盒实施。因为仅仅该相对小的模块使用白盒技术来实现,所以智能卡的存储需求仅稍微提高。可使用用于产生这种白盒实施的上述技术,虽然也可以使用现在已知的或此后设计的其他白盒技术。0。

11、014主要需求在于白盒实施在大小方面并非太小并具有这种性质,即,如果攻击者具有该实施的任何部分包括算法使用的密钥,则他难以由此得到功能上正确的解密函数。该需求比在白盒实施中经常假设的需求弱,即,攻击者对环境具有完全控制。本发明因此允许在白盒安全性和密钥大小之间折衷TRADEOFF。0015用于解密算法的实施的必要条件在于用这种方式来实现,即,攻击者从一部分实施不能获得基础密钥UNDERLYINGKEY。一些白盒技术,例如上述使用编码表的组合的技术,被设计成抵挡攻击者对环境具有完全控制的白盒攻击。虽然这种技术适于本发明的目的,但存在同样适于本发明的其他更容易的白盒技术。0016作为一个示例,当产。

12、生AES的白盒实施时,它有能力通过非线性编码来对每个查找表的输入和输出进行编码。通过线性编码对异或XOR运算之前的查找表的输出以及相应地,还有异或运算之后的查找表的输入进行编码,对本发明的目的而言,没有必要通过查找表来实现异或运算。0017另一个优点在于现在需要被保护的软件更加独立,这意味着可加强对它的检查以保护它免受上述攻击。0018因此,在该假定性敏感代码的执行期间,成功攻击的机会显著减小。虽然其他软件说明书CN101978647ACN101978652A3/5页5仍旧易受攻击,但这最多将暴露受保护软件模块的加密的部分。攻击者将不能利用这些部分。0019白盒实施优选为如US7043016代。

13、理案卷PHNL000365和EP1307993B1代理案卷PHNL000444中公开的LOMBOK密码算法的白盒实施。该实施例的优点在于LOMBOK的白盒实施小于AES的白盒实施。这是由于LOMBOK具有4比特S盒SBOX,即,将4比特映射到4比特的S盒,而AES具有8比特S盒。0020对于每个S盒,白盒LOMBOK和AES实施都具有包含S盒的查找表。M比特S盒在查找表中产生2M行。因而,更小的S盒产生更小的白盒实施。附图说明0021从附图中示出的示例性实施例和参考这些实施例所做的阐明,本发明的这些和其他方面将是容易理解的,其中0022图1示意性示出智能卡。具体实施方式0023图1示意性示出包。

14、含处理器101和存储器110的智能卡100,该存储器110用于存储由处理器101执行的一个或多个软件模块。一个软件模块是模块115,这是本发明的对象。存储器110被优选实现为电可擦除只读存储器EEPROM或闪速存储器,虽然许多可替换的存储介质也是可用的。存储器110可以额外存储诸如密码钥或授权单元AUTHORIZATIONELEMENT的数据。还可使用单独的存储器未示出来存储这种数据,例如如果期望指令与数据分开。0024智能卡100还包含输入/输出模块120,用于从设备未示出接收数据和向设备传输数据,该设备与智能卡100耦接。将该模块120通常被实施为与设备内的读取器中的电连接器相接触的芯片,。

15、优选如ISO/IEC7816和ISO/IEC7810系列的标准中所定义的。在所谓非接触式智能卡中使用一种替换方式,其中数据的传输是通过射频感应技术,例如在ISO/IEC14443中所定义的。0025智能卡100可例如用于条件存取或数字版权管理DRM系统并为在被授权时解密音频和/或视频数据提供解密算法的软件实施。机顶盒、电视、计算机或其他设备然后将加密的数据通过I/O模块120馈送到智能卡100,并且如果智能卡100确定设备被授权接收该数据,则设备进而接收解密后的数据。为此,存储器110或其他存储器可存储权利消息、许可或权利对象RIGHTOBJECT,或者设备可供给这种项目连同它们所应用的数据。。

16、0026由于这种系统的工作是众所周知的,因此将不对其进一步详细阐述。正如本领域技术人员所知的,在期望安全性的许多其他情形下,智能卡也是有用的。0027在存储器110中存储的软件模块115以加密的方式存储。任何已知的或未来的加密算法,例如AES或3DES,都可用于加密该软件模块115。这确保了如果攻击者设法提取存储器110的全部或部分内容,则他不会获得关于软件模块115的有用信息。该模块115可以包含有价值的专用技术或密码钥,例如需要被保护的授权密钥或解密密钥。0028软件模块115只是存储器110中存储的软件模块之一。其他模块也可以加密或不加密的明文形式存储在同一存储器110中。说明书CN10。

17、1978647ACN101978652A4/5页60029智能卡100提供准时解密模块130,该解密模块130被配置用于在由处理器101执行软件模块115的有关部分时对软件模块115的有关部分解密。模块130可能的实施包括在每条指令被馈送到处理器101之前对其解密,或者对软件模块115的多个块解密,接着软件模块115的多个块作为一个整体被供给处理器101。执行之后尽可能快地从存储器擦除解密后的多条指令或多个块。0030在准时解密的一些实施例中,解密后的多条指令或多个块存储在处理器101中或其附近的临时存储器未示出中。在这种实施例中,在多条指令或多个块已经被执行时且在智能卡100被激活或无效时,。

18、该临时存储器必须被清零。0031通常准时解密功能被实现为智能卡101上单独的硬件模块,或实现为嵌入式软件模块。在智能卡中准时解密的概念,也已知名称为诸如总线加密,同样从例如US4168396或US5224166获知。后者专利例如公开了一种诸如智能卡的数据处理系统,在系统的安全物理区中具有内部高速缓冲存储器。相应于存储器110的外部存储器被安置在安全物理区的外部并存储加密和未加密的数据和/或指令。指令使得能够存取包含在安全物理区内的私人密钥,该密钥用于对伴随有加密的数据和指令的加密的主密钥解密。0032类似于安全物理区中的解密模块130的接口电路通过使用私人密钥对每个加密后的主密钥解密并且还对与。

19、每个解密后的主密钥相关的加密后的数据和指令解密。相应于处理器101的中央处理器从外部存储器存取未加密和加密的数据和指令两者的片段,并使接口电路采用解密的主密钥来解密数据和指令以及将解密的信息存储在内部存储器高速缓冲存储器中。未加密的数据和指令被直接存储在内部存储器高速缓冲存储器中。0033根据本发明,模块130中的解密功能被提供为可应用的密码算法的白盒实施。正如所述的,白盒实施通过使用密码算法中的编码表与代表综合步骤而非单独步骤的随机双射的组合来隐藏密码算法的内部工作。0034国际专利申请WO2005/060147代理案卷PHNL031443、WO2007/031894代理案卷PH001720。

20、和WO2006/046187代理案卷PHNL041207公开了密码算法的白盒实施。0035此后被引用为“CHOW1”的STANLEYCHOW,PHILIPEISEN,HAROLDJOHNSON和PAULCVANOORSCHOT在SELECTEDAREASINCRYPTOGRAPHY9THANNUALINTERNATIONALWORKSHOP,SAC2002,STJOHNS,NEWFOUNDLAND,CANADA,AUGUST1516,2002上发表的“WHITEBOXCRYPTOGRAPHYANDANAESIMPLEMENTATION”“白盒密码和AES实施”、和此后被引用为“CHOW2”的S。

21、TANLEYCHOW,PHILIPEISEN,HAROLDJOHNSON,PAULCVANOORSCHOT在DIGITALRIGHTSMANAGEMENTACMCCS9WORKSHOP,DRM2002,WASHINGTON,DC,USA,NOVEMBER18,2002上发表的“AWHITEBOXDESIMPLEMENTATIONFORDRMAPPLICATIONS”“用于DRM应用的白盒DES实施”,公开了产生密码算法的白盒实施的方法。0036这提供了解密模块130仍旧如前操作并可对存储在存储器110中的软件模块115的那些部分解密,但提取解密模块130的内容的任何部分不提供有关其工作、或者有。

22、关用于解密存储器110的软件模块的部分的解密密钥的任何有用的信息。0037虽然存在从智能卡提取数据片段的多种技术参见第1页上引用的参考文献,但那些技术只揭示少量数据。例如,ISO标准7816规定从这种攻击至多可泄漏255字节。诸如只读存储器ROM提取攻击的攻击可暴露更多代码,但是由于这种攻击的特性,通常被说明书CN101978647ACN101978652A5/5页7提取数据字节的五分之一具有错误值。这意味着攻击者只能获取平均为80的白盒实施,这对于从它恢复任何有用的信息是不足够的。0038因为与存储器110的内容相比,模块130中实现的解密机制相对小,所以用于该白盒实施的存储需求也相对小。0。

23、039该机制的小尺寸还允许使用更加严格的代码安全性措施。0040为了减少白盒实施的存储需求,一个选项是采用使用4比特S盒的密码算法而不是象具有8比特S盒的AES的算法,因为M比特S盒在查找表中产生2M行。可以与上述选项一起使用或不一起使用的另一个选项是将算法中的异或运算保持为异或运算而不是将异或运算转换成表。0041在一个优选实施例中,所使用的解密算法是LOMBOK密码算法,正如在US7043016代理案卷PHNL000365和EP1307993B1代理案卷PHNL000444中所公开的。关于如何提供LOMBOK的白盒实施的更多信息可以在WO2005/060147代理案卷PHNL031443中。

24、找到。LOMBOK非常适于白盒实施。实验已经显示LOMBOK的白盒实施可以小到10千字节。0042虽然上面已经参考一个加密的模块115对本发明进行了解释,但是当然能够以加密的方式存储多于一个的软件模块并使用模块130对其解密。0043应该注意到上述实施例例示而非限制本发明,并且本领域技术人员将能够在不背离所附权利要求的范围情况下设计许多可替换的实施例。0044在权利要求中,放在圆括号之间的附图标记不应被解释为限制该项权利要求。单词“包含”不排除存在不同于权利要求中列出的元件或步骤的元件或步骤。元件之前的单词“一个”或“一种”不排除存在多个这种元件。通过包含几个不同元件的硬件和通过适当编程的计算机来实现本发明。0045在列举若干装置的设备权利要求中,可以通过硬件中的一项和相同项来实施这些装置中的若干。仅仅在相互不同的从属权利要求中引用某些措施不表明这些措施的组合不能用于使其有利。说明书CN101978647ACN101978652A1/1页8图1说明书附图CN101978647A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1