CN102016871B - 密码系统 - Google Patents

密码系统 Download PDF

Info

Publication number
CN102016871B
CN102016871B CN200980115038.0A CN200980115038A CN102016871B CN 102016871 B CN102016871 B CN 102016871B CN 200980115038 A CN200980115038 A CN 200980115038A CN 102016871 B CN102016871 B CN 102016871B
Authority
CN
China
Prior art keywords
function
result
whitepack
combination operation
cryptographic
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.)
Active
Application number
CN200980115038.0A
Other languages
English (en)
Other versions
CN102016871A (zh
Inventor
W·P·A·J·米希尔斯
P·M·H·M·A·戈里森
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.)
Irdeto BV
Original Assignee
Ai Dide Technology Co Ltd
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 Ai Dide Technology Co Ltd filed Critical Ai Dide Technology Co Ltd
Publication of CN102016871A publication Critical patent/CN102016871A/zh
Application granted granted Critical
Publication of CN102016871B publication Critical patent/CN102016871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

一种密码系统(100),其包括:函数的白盒实现(102);密码算法的实现(104);以及用于根据函数的结果并根据密码算法的结果建立密码处理了的数据的组合操作的实现(106)。所述组合操作包括将密码算法的结果与函数的结果组合。替代地,所述组合操作包括将函数的结果与接收到的数据元组合,以获取组合结果,并将密码算法应用到所述组合结果。

Description

密码系统
技术领域
本发明涉及密码系统,并涉及密码处理的方法。
背景技术
现今,内容越来越采用数字格式向用户提供,例如,通过因特网、广播介质,或通过诸如CD或DVD之类的数字数据载体。诸如电视机、机顶盒、以及音频设备之类的消费电子产品(CE)配备有数字数据处理能力,以呈现这些数字内容。
已经引入了数字权限管理系统,以控制数字内容向合法用户的分发。通常,数字权限管理系统使用只允许合法用户对内容进行解密的加密技术。可以使这样的加密技术在消费电子产品中的实现模糊,以使得攻击者更难以查找密钥的值。通常用于许多不同种类的应用中的密码的示例有DES、AES、RSA、以及WO9967918中所公开的方法。
就密钥处理而言,为进行回放,媒体播放器必须从许可证(license)数据库取得解密密钥。然后,它必须将此解密密钥存储在存储器中某处,以用于解密被加密的内容。这给攻击者留下攻击密钥的两个选择。首先,对许可证数据库访问功能的反向工程可能允许攻击者从所有许可证数据库取得资产密钥(asset key)。其次,通过观察在内容解密过程中对存储器的访问,可以取得该资产密钥。在两种情况下,密钥都被视为被泄密。在软件实现的密码系统领域,对防篡改的软件产品的需要导致产生模糊技术,其防止攻击者获取加密密钥以及防止非授权复制。这些模糊技术中的一个涉及提供密码算法的白盒实现。密码算法的白盒实现是将密码算法的一些或全部内部工作隐藏起来以防止白盒攻击(即,其中攻击者可以观察到由处理器执行的一些或全部指令的攻击)。在某些情况下,攻击者对操作环境拥有某种形式的控制,这允许他观察加密操作的至少一部分,并识别在执行过程中算法中所使用的密码密钥的至少一部分。例如,他可以在调试环境或虚拟机内执行所述实现,并由此观察所有操作,操纵数据缓存区,并监视执行流程。
在其他情况下,在密码算法的执行过程中,攻击者可以使操作环境“泄漏”或泄露部分实现或部分数据缓存区内容。例如,他可能能够使用缓存区溢出攻击来提取部分密码实现。如果提取了正确部分,那么从而他可以得知该实现中的密码密钥或允许他撤消一些或全部密码保护的特定设置。
白盒实现隐藏密码算法的一些或全部内部工作,尤其是密钥数据。这可以以各种方式来进行。用于创建白盒实现的流行的技术是使用利用表示构成(compositions)而并非单个步骤的随机双射对密码算法中的表编码的组合。解密密钥和解密算法有效地被变为一个单块。该块的没有一个部分透露任何有关算法或密钥的内部工作的信息。事实上,甚至在给定整个白盒实现的情况下,也极其难以对所使用的原始算法或解密密钥进行反向工程。例如,欧洲专利申请序列号08155798.5(代理人档案PH010099)中公开了诸如RSA之类的密码算法中的指数的模糊。
当前,白盒实现只对于数量有限的密码是已知的。Stanley Chow、Philip Eisen、Harold Johnson以及Paul C.Van Oorschot所著的“White-Box Cryptography and an AESImplementation”(Selected Areas in Cryptography:9th AnnualInternationalWorkshop,SAC 2002,St.John′s,Newfoundland,Canada,August 15-16,2002)(下面简称为“Chow1”),以及Stanley Chow、Phil Eisen、Harold Johnson以及Paul C.van Oorschot所述“A White-Box DES Implementation for DRM Applications”(Digital RightsManagement:ACM CCS-9Workshop,DRM 2002,Washington,DC,USA,November 18,2002)(下面简称为“Chow 2”),公开了创建密码算法(尤其是,对于被称为AES和DES的密码算法)的白盒实现的方法。
发明内容
具有更灵活的创建密码算法的白盒实现的方式是有利的。为更好地解决此问题,在本发明的第一方面,呈现了一种密码系统,该密码系统包括:
函数的白盒实现;
密码算法的实现;以及
用于根据函数的结果并根据密码算法的结果建立密码处理的数据的组合操作的实现。
由于白盒实现,函数所定义的映射不能容易地被攻击者发现。因此,通过将适当的值馈送到函数的白盒实现,可以生成攻击者难以预测的值的序列。通过将密码算法的结果与白盒实现的结果组合,攻击者更加难以攻坏密码系统。实际上,利用该白盒实现的安全性质增强密码算法的强度。
并不需要提供密码算法本身的白盒实现。密码算法可以基于例如RSA。
函数优选是其行为很难通过监视函数的白盒实现的输入和输出来预测的函数。所述函数可以包括,例如,诸如DES或AES之类的进一步的密码算法。在这样的情况下,函数的白盒实现包括进一步的密码算法的白盒实现。替代地,函数可以是散列函数或随机发生器。在这样的情况下,函数的白盒实现包括散列函数或随机发生器的白盒实现,视情况而定。
组合操作器可以包括,例如,XOR操作,或模2k加(addition modulo2k),对于某正整数k。组合操作可以实现为或者不实现为白盒实现。
可以使用上文所提及的用于创建白盒实现的技术,但是也可以使用现在已知的或下面设计的其他白盒技术。优选地,白盒实现不是太小,并具有这样的性质:即使攻击者具有该实现的任何一部分(包括算法所使用的密钥),他也难以由此导出作为白盒实现的主体的函数的功能上正确的版本。此设定比在白盒实现中常常假设的(即,攻击者具有对环境的完全控制)弱。优选地,攻击者不能从白盒实现的一部分导出基础密钥(underlying key),或者,在随机发生器的情况下,所使用的种子。某些白盒技术(例如,上文所提及的对表编码的组合的使用)被设计成承受其中攻击者具有对环境的完全控制的白盒攻击。尽管这样的技术也适合于本发明的目的,但是,存在其他的更加容易的也适用于本发明的白盒技术。作为示例,在创建时,AES的白盒实现可能足以通过非线性编码来编码每一查询表的输入和输出。通过利用线性编码来编码在XOR操作之前的查询表的输出(并且,相应地,也编码XOR操作之后的查询表的输入),出于本发明的目的不需要通过查询表来实现XOR操作。
独立权利要求定义了本发明的更多的方面。从属权利要求定义了有利的实施例。
附图说明
下面将参考附图进一步阐明和描述本发明的这些及其他方面,在附图中:
图1示出了密码系统的实施例的图;
图2示出了密码系统的另一实施例的图;
图3示出了包括加密器和解密器的系统的图;以及
图4示出了密码处理过程。
具体实施方式
当前,白盒实现仅对于有限数量的密码(例如,AES、DES、Lombok)是已知的。下面提供了对用于在(密码或另一函数)的已知的白盒实现上构建任意密码(或者,更一般而言,函数)的白盒实现的一般方法的描述。该白盒实现可以以不花费许多另外的处理时间的方式构建。
可以创建这样的密码系统,其包括:函数的白盒实现,密码算法的实现,以及用于根据函数的结果并根据密码算法的结果建立密码处理了的数据的组合操作的实现。由于所述组合操作以及函数的白盒实现,整个密码系统变为白盒实现。可想象多个组合操作,下面将利用图1-4更详细地描述其中的一些。作为附图中未示出的示例,可以通过如下的构成(composition)来组合函数和密码算法:首先应用函数,然后再应用密码算法;或者,首先应用密码算法,然后再应用函数。
图1示出了密码系统100的框图。该密码系统具有输入端112,其中,它接收要被密码处理的数据。例如,要被处理的数据是必须要加密的明文,或者,它是必须解密的密文。替代地,要被处理的数据是要为其生成数字签名的数据。密码系统100可以与互补密码系统(未示出)结合使用。如果系统100包括加密系统,则互补密码系统可以包括解密器。另一方面,如果系统100包括对应的解密系统,则互补密码系统可以包括对应的加密系统。因此,当一个系统能够处理由另一个系统所产生的消息时,这两个密码系统在本文中被称作互补系统。
密码系统100还包括密码算法的实现104。此实现不必是白盒实现,但是可以至少部分地使用白盒实现领域中本身已知的技术来实现该密码算法。密码系统104可以包括解密器或加密器。通常,如果系统100用于解密,则密码系统104包括解密器。替代地,如果系统100用于加密,则密码系统104包括加密器。由于密码算法的实现104并不必需是白盒实现,因此,在选择所使用的密码算法方面有很大自由。尤其是,可以应用未知用于其的白盒实现的密码算法或其白盒实现不便于使用的密码算法。
此外,密码系统100还包括用于生成值x的装置110。该值x可以从与例如通过输入端112接收到的数据相对应的密文导出。或者,它可以包括在预定情形下增加的计数器。装置110优选被布置用于生成互补密码系统能够再现的值x。这可以通过与互补系统同步值x来安排,这可以通过交换包括x的当前值的表示的消息来实现。
可以将值x提供给函数的白盒实现102。该函数优选不是非常容易通过分析其输入和输出来理解的。例如,它包括诸如AES之类的密码算法。替代地,它可以包括散列函数或随机发生器函数。不言而喻,创建这样的白盒实现的方式从Chow等人的著述已知。
通过组合操作的实现106将由函数的白盒实现102和密码算法的实现104所产生的输出组合。组合操作的实现106所产生的结果取决于由函数的实现102所产生的结果以及由密码算法的实现104所产生的结果。图1示出了其中函数的实现102和密码算法的实现104并行操作并产生彼此独立的结果的情况。组合操作的实现106将这些输出组合为单一结果。因此,组合操作包括将密码算法的结果与函数的结果组合。组合操作优选为使得不能从所述单一结果中提取函数和密码算法的独立结果。例如,使用XOR操作来组合这些结果,或者对于某个k,模某个值2k加。
将组合操作的实现106的结果提供到输出端114。输出端114可以包括分组器,用于例如将从向它提供的结果中取得(retrieve)的数据创建输出数据分组。输出端114可以包括传输器,用于将数据经由网络(例如,广播网络或因特网)传输到接收器。替代地,输出端114可以被布置用于将从实现106中获取的结果提供到显示器或放大器,以创建该数据的表示。
图2示出了密码系统200,这是所阐述的密码系统的另一实施例。在密码系统200中,组合操作包括将函数的结果与接收到的数据元组合,以获取组合结果,并将密码算法应用到该组合结果。
类似于系统100,系统200包括输入端212、用于生成值x的装置210、函数的白盒实现202、密码算法的实现204、组合操作的实现206,以及输出端214。然而,在系统200中,执行顺序不同于系统100中的执行顺序。系统200有效地计算F(C(y,G(x))),其中,G表示函数,F表示密码算法,C表示组合操作,而y表示在输入端212获取的值。组合操作的实现206将在输入端212获取的数据与由函数的白盒实现202所产生的结果组合,从而生成组合结果,并使密码算法的实现204处理所述组合结果。其结果被提供到输出端214。
在一个实施例中,给定函数的结果的特定值,组合操作定义密码算法的结果和组合操作的结果之间的一一对应关系。如果,例如,系统100或200用于对数据进行加密,则这是有用的,因为它允许在解密器处唯一地对数据进行解密。
在一个实施例中,输出端214包括信号发生器,其用于生成包括组合操作的结果的表示的信号。此信号可以例如存储在存储装置上,或传输到接收器。信号发生器可以被布置用于在信号中包括到第一函数的输入的表示。如果接收方能够以不同的方式获取该值,那么这可以省略。组合操作的实现可以被布置用于将函数的单一结果与密码算法的多个结果组合。这通过多次重新使用函数的同一个结果来提高效率。因此,对函数的对应的输入只需被包括在信号中一次。
白盒实现可以包括查询表和XOR操作。根据Chow等人所述,将显式的XOR操作替换为查询表,所述查询表被利用输入和输出编码来使其模糊。为提高效率,可以将这些查询表替换为显式的XOR操作。已经发现,这仍为某些应用提供了足够的白盒安全性,因为它仍防止了攻击者从部分白盒实现推导基础密钥。
为将白盒实现绑定到硬件设备,或绑定到特定用户,白盒实现可以包括用于访问标识设备和/或用户的数据以获取标识数据的装置,以及用于根据标识数据建立函数的输出的装置。例如,选择查询表中的一个或多个,以使得它包括标识数据。可以修改其他的查询表,以使得白盒实现的整个最终结果不会因此改变。此特征允许防止对密码系统的非授权使用。在WO 2007/105126中公开了此技术的示例。
图3示出了加密器301和解密器350的实施例。加密器301基于密码系统100,解密器基于密码系统200。然而,这并不是限制。例如,还可以使加密器基于密码系统200,并使解密器基于密码系统100。例如,可以将加密器301包括在内容服务器中,并用于对音频或视频内容进行加密,并且可以将解密器350包括在消费电子设备中,用于对加密的内容解密并允许该内容的回放。加密器301和解密器350之间的通信可以经由因特网、诸如有线电视网之类的数字广播介质、或经由诸如DVD或蓝光(Blue-ray)盘之类的可移动存储介质来进行。使用类似的参考数字来标识与图1和图2中的类似的元件。加密器301包括:
-输入端112,用于获取要通过第一密码算法(其可以是诸如公钥加密算法之类的加密算法,例如,RSA)加密的数据。
-第一密码算法的实现104,被布置用于对在输入端112获取的数据进行加密。
-用于生成值x的装置110。为此可以使用计数器或随机发生器。也可以从外部源获取值x或从密码算法的实现104的输出生成它。
-应用于值x的第一函数的实现102。
-第一组合操作的实现106,用于根据第一函数的结果并根据第一密码算法的结果建立加密的数据。
-输出端114,用于将表示第一组合操作的结果的信息提供到解密器350。该输出端还可以将表示到第一函数的输入的信息提供到解密器350。
解密器350包括:
-输入端210,用于获取表示到第一函数的输入的信息。可以从加密器301的输出端114接收此信息。也可以在解密器350中再现值x。在该情况下,可以将输入端210替换为用于生成值x的装置110的复制件。
-输入端212,用于从加密器301的输出端114获取表示第一组合操作的结果的信息。
-第二函数的实现202,被布置用于将第二函数应用到基于所述表示到第一函数的输入的信息的至少一部分的值。第二函数可以与第一函数相同。然而,如果以编码了的形式将值x传输到解密器350,则通过第二函数撤消此编码。
-第二组合操作的实现206,用于根据第二函数的结果并根据第二密码算法的结果建立解密的数据。第二组合操作的实现206首先撤消第一组合操作106的影响。例如,如果第一组合操作涉及将实现102的输出与实现104的输出相乘,那么,第二组合操作可以包括将在输入端212获取的值与第二函数的实现202的输出的逆相乘,以获取中间组合值。然后,第二组合函数的实现206使第二密码函数的实现204将其第二密码函数应用到所述中间组合值,从而生成解密的数据。为此,实现206可以包括用于调用第二密码算法的实现204的控制装置(未示出)。
-第二密码算法的实现204,被布置用于将密码算法应用到从表示第一组合操作的结果的信息的至少一部分导出的数据。第二密码算法是例如与用于第一密码算法的加密算法相对应的解密算法。
第一函数的实现102,或第二函数的实现202,或两者,是白盒实现,用于分别保护加密器301或解密器350或者两者,以防止非授权的篡改。
图4示出了密码处理的方法,包括通过函数的白盒实现将函数应用402到第一值;将密码算法应用404到第二值;以及,应用406组合操作,所述组合操作用于根据所述函数的结果并根据所述密码算法的结果建立密码处理了的数据。图4所示出的处理步骤的顺序只是示例,而不是限制。
设函数F表示密码算法。下面将描述函数F的白盒实现。例如,如果目标是导出RSA的加密算法的白盒实现,那么,F(m)表示与消息m相关联的密文,而如果目标是导出散列函数MD4的白盒实现,那么,F(m)表示与消息m相关联的散列值。
设G表示其白盒实现可用的任意函数。函数G不必是双射的。例如,它可以是散列函数或随机发生器函数。分别用dom(F)和dom(G)来表示F和G的域,并分别用im(F)和im(G)来表示F和G的范围(range)。此外,还设n是im(F)中的值的比特长度,并设m是dom(G)中的值的比特长度。
定义函数C,C:im(G)×im(F)→im(F),该函数优选在其第二自变量是双射的。优选C是可有效率地计算的。例如,C(x,y)=x·y或C(x,y)=x+y。
接下来,引入函数H,H:dom(G)×dom(F)→dom(G)×im(F),函数H通过H(x,y)=(x,C(G(x),F(y)))来定义。
函数H定义密码算法。鉴于H由F和G组成的方式,H的实现可以被构成为使得它“继承”F的加密性质和G的白盒性质。因此,将F的密码强度与G的白盒实现的抗篡改性质结合。因此,就其黑盒安全性,可以至少使H与F一样安全。此外,就其白盒安全性,可以通过至少部分地以白盒实现的形式来实现G,H可以是白盒安全的,即使F和C可以以不是白盒的实现的形式来实现。如果F表示具有输出块大小nF的块密码的加密或解密算法,G表示具有大小nG的输入数据的函数,那么,要传输的数据可以具有大小nF+nG,这是因为G的输入数据和G的输出被包括在H中。假设x由恒定值a给出,或假设x在解密器处已知。那么,不需要运行白盒实现来导出H的输出。于是运行C和F的实现就足够,这在与G的白盒实现相比时,在计算方面是有效率的。此外,在这样的情况下,还可以从密文中省略值x,这减小了密文的大小。这使得下面的方法成为可能。
也可以偶尔地改变x,而并非对于每个数据块地改变x。以此方式,可以使白盒安全性与性能进行折衷。注意,如果H指定加密算法,那么,如果x已经改变,则密文可以由H(x,y)=(x,C(G(x),F(y)))给出,而如果x没有改变,则它可以仅由Hx(y)=C(G(x),F(y))给出。如果H指定解密算法,那么,如果x已经改变,则密文可以由(x,y)给出,而如果x没有改变,则它可以仅由y给出。还设想了使用x的值的预定序列,或使x取决于密文。这也将减小要从加密器传输到解密器的数据的量。
注意,对于某函数D,还可以利用例如H(x,y)=(D(x),C(G(x),F(y)))来应用上文所描述的技术和处理过程。D被选择为具有可以从D(x)导出G(x)的性质。于是,接收端因而优选实现由E(D(x))=G(x)所定义的函数E。
在一个实施例中,基于AES的白盒实现来构建RSA的白盒实现。Chow等人所描述的AES的白盒实现将适于此用途,但是也可以使用另一类型的白盒实现。这里使用RSA和AES作为示例。也可以使用其他函数(无论是否是密码函数)作为代替RSA和AES的替代方案。
设函数F表示RSA加密算法。因此,根据RSA,对于数据块m,F(m)表示与数据块m相关联的密文。可以设想与其结合地使用一些特定的密钥或密钥集合,然而,在本文中不详细描述密钥处理的细节。诸如RSA之类的密码算法中的加密密钥的使用在本领域中是已知的。在本实施例中,m的块大小小于128比特。然而,这不是限制。128比特与AES的块大小相对应,考虑到AES也用于本实施例中的事实,这是方便的。在本实施例中,函数G表示AES的加密算法,C表示GF(2128)中的乘法,即,C(x,y)=x·y,x,y∈GF(2128)。利用计数器T来提供x的值。利用下面的处理步骤来根据H对消息进行加密。
如果满足一些预先指定的条件,则使计数器T增加。例如,可以在每K个数据块之后使计数器增加。
接下来,计算值γ=C(G(x),F(y))=G(x)·F(y),其中,x由计数器T的值给出,y由要被加密的数据块给出。
接下来,构造密文块。如果自从最后的加密以来计数器已经改变,或者如果这是第一次加密,或者如果可能是解密器不知道该计数器的值,那么,密文由H(x,y)=(x,γ)给出。否则,它由γ给出。
对于要被加密的后续数据块,重复这些步骤。如将理解的,密文通常包括γ的值,并且可以包括或者可以不包括x(或D(x),视情况而定)的一个、一些或全部的值,只要有使解密器使用与在加密器中所使用的G(x)的相同的或在功能上等效的值的机制即可。还将理解,代替计数器T,值x可以是随机值发生器的结果,或者可以例如通过某散列函数从明文或密文计算出。
G可以被实现为白盒实现。这样,可以通过将G实现为白盒实现,来使H的实现成为白盒实现。
能够解密以所述的方式加密的数据的解密过程如下。
如果密文块包含值x,那么,使用密文块的值x来计算G(x)。否则,使用早先计算出的G(x)的值。
接下来,确定GF(2128)中的(G(x))-1。注意,(G(x))-1表示GF(2128)中的G(x)的逆(而不是函数G的逆)。
然后,计算F(y)=(G(x))-1·γ。
接下来,使用RSA的解密算法来基于F(y)计算明文块y。RSA这样的解密算法在本领域中是已知的。在该步骤中,F(y)被视为密文块。
注意,为创建该解密过程的白盒实现,提供函数G的白盒实现足以,这是因为如果攻击者不能破坏函数G的话,那么他很难破坏该实现。
如果解密过程保留计数器T的其自己的副本,并且如果它知道它增加的条件,那么,不必将值x加到密文中。因此,在这种情况下,不增加块大小。代替计数器,我们也可以从先前的密文块导出值x。在此情况下,也不必将值x加到密文中。
此处所描述的技术可以被用来隐藏密码密钥而使其不为可以访问使用该密钥的软件实现的攻击者所知。
可以理解,本发明还扩展到适于实施本发明的计算机程序,尤其是,载体中或载体上的计算机程序。该程序可以是源代码、目标代码、诸如部分地编译了形式之类的代码中间源和目标代码的形式,或者是任何适用于根据本发明的方法的实现中的其他形式。还将理解,这样的程序可以具有许多不同的体系结构设计。例如,实现根据本发明的方法或系统的功能的程序代码可以细分为一个或多个子例程。在这些子例程之间分配功能的许多不同的方式对本领域技术人员将是显而易见的。子例程可以一起存储在一个可执行文件中,以形成自含式程序。这样的可执行文件可以包括计算机可执行指令,例如,处理器指令和/或解释器指令(例如,Java解释器指令)。替代地,子例程中的一个或多个或全部可以存储在至少一个外部库文件中,并且静态地或者动态地(例如,在运行时)与主程序链接。主程序包含对至少一个子例程的至少一个调用。此外,子例程可以包括对彼此的函数调用。涉及计算机程序产品的实施例包括与所阐述的方法中的至少一个方法的每一个处理步骤相对应的计算机可执行指令。可以将这些指令细分为子例程,和/或可以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与所阐述的系统和/或产品中的至少一个系统和/或产品的每一个装置相对应的计算机可执行指令。可以将这些指令细分为子例程,和/或可以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。
计算机程序的载体可以是能够携带程序的任何实体或设备。例如,载体可以包括:诸如ROM之类的存储介质,例如,CD ROM或半导体ROM;或磁记录介质,例如,软盘或硬盘。进一步地,载体可以是可以通过电缆或光缆或通过无线电或其他装置传输的诸如电信号或光信号之类的可传输载体。当程序以这样的信号实现时,载体可以通过这样的电缆或其他设备或装置来构成。替代地,载体也可以是其中嵌入了程序的集成电路,该集成电路适用于执行或用于执行相关方法。
应该注意,上文所提及的实施例示出了本发明,并非限制本发明,本领域技术人员将能够在不偏离所附权利要求的范围的情况下设计许多替换实施例。在权利要求中,放在括号之间的任何引用符号不应该被解释为对权利要求的限制。动词“包括”以及其变形的使用不排除权利要求中所陈述的那些要素或步骤之外的要素或步骤的存在。要素之前的冠词“a”或“an”(一)不排除多个这样的要素的存在。本发明可以通过包括若干不同的元件的硬件,以及通过被适当编程的计算机来实现。在枚举若干个装置的设备权利要求中,这些装置中的多个可以通过一个或同一个硬件来实施。在相互不同的从属权利要求中列举某些方案的这一事实并不表示这些方案的组合不能被有利地使用。

Claims (11)

1.一种设为提供密码算法的白盒实现的密码系统(100),包括:
函数的白盒实现(102);
所述密码算法的实现(104);以及
用于根据所述函数产生的结果并根据所述密码算法产生的结果建立密码处理了的数据的组合操作的实现(106),其中,所述组合操作包括将所述密码算法产生的结果与所述函数产生的结果组合。
2.根据权利要求1所述的密码系统,其中,给定所述函数的结果的特定值,所述组合操作定义所述密码算法的结果和所述组合操作的结果之间的一一对应的关系。
3.根据权利要求1所述的密码系统,还包括
信号发生器,用于生成包括所述组合操作的结果的表示的信号。
4.根据权利要求3所述的密码系统,其中,所述信号发生器被布置用于将到第一函数的输入的表示包括在所述信号中。
5.根据权利要求4所述的密码系统,其中,所述组合操作的实现被布置用于将所述函数的单一结果与所述密码算法的多个结果组合。
6.根据权利要求5所述的密码系统,其中,所述信号发生器生成的信号包括到所述函数的所述输入的所述表示和所述密码算法的多个结果的表示。
7.根据权利要求1所述的密码系统,其中,所述白盒实现包括查询表和XOR操作。
8.根据权利要求1所述的密码系统,其中,所述函数的白盒实现包括:
用于访问标识设备和/或用户的数据以获取标识数据的装置,以及用于根据所述标识数据确立所述函数的输出的装置。
9.一种密码系统(300),所述密码系统包括加密器(301)和解密器(350),其中所述加密器包括:
- 第一函数的实现(102);
- 第一密码算法的实现(104);以及
- 第一组合操作的实现(106),用于根据所述第一函数产生的结果并根据所述第一密码算法产生的结果建立加密的数据,其中第一组合操作包括将所述第一密码算法产生的结果与所述第一函数产生的结果组合;
- 输出端(114),用于将表示所述第一组合操作的结果的信息提供到解密器;且
所述解密器(350)包括:
- 输入端(212),用于获取表示所述第一组合操作的结果的信息;
- 第二函数的实现(202),被布置用于将所述第二函数应用到与到所述第一函数的输入相对应的值;
- 第二组合操作的实现,根据第二函数的结果且根据表示第一组合操作的结果的所述信息而确定第二组合操作的输出;以及
- 第二密码算法的实现(204),被布置用于将第二密码算法应用到第二组合操作的所述输出,以确定解密数据;并且
其中:(a)所述第一函数的实现是第一函数的白盒实现,从而加密
器被设为提供第一密码算法的白盒实现,并且/或者,(b)所述第二函数的实现是第二函数的白盒实现,从而解密器被设为提供第二密码算法的白盒实现。
10.一种执行密码算法的白盒密码处理的方法,包括:
通过函数的白盒实现将该函数应用(402)到第一值;
将所述密码算法应用(404)到第二值;以及
应用(406)组合操作,所述组合操作用于根据所述函数产生的结果并根据所述密码算法产生的结果确定密码处理了的数据,其中所述组合操作包括将所述密码算法产生的结果与所述函数产生的结果组合。
11.一种执行密码算法的白盒密码处理的系统,包括:
通过函数的白盒实现将该函数应用(402)到第一值的装置;
将所述密码算法应用(404)到第二值的装置;以及
应用(406)组合操作的装置,所述组合操作用于根据所述函数产生的结果并根据所述密码算法产生的结果确定密码处理了的数据,其中所述组合操作包括将所述密码算法产生的结果与所述函数产生的结果组合。
CN200980115038.0A 2008-03-05 2009-03-02 密码系统 Active CN102016871B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP08152276.5 2008-03-05
EP08152276 2008-03-05
EP08159061 2008-06-26
EP08159061.4 2008-06-26
PCT/IB2009/050816 WO2009109884A1 (en) 2008-03-05 2009-03-02 Cryptographic system

Publications (2)

Publication Number Publication Date
CN102016871A CN102016871A (zh) 2011-04-13
CN102016871B true CN102016871B (zh) 2017-11-07

Family

ID=40651466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980115038.0A Active CN102016871B (zh) 2008-03-05 2009-03-02 密码系统

Country Status (7)

Country Link
US (1) US9710623B2 (zh)
EP (1) EP2255317B1 (zh)
JP (2) JP2011514091A (zh)
KR (1) KR101639587B1 (zh)
CN (1) CN102016871B (zh)
CA (1) CA2717625C (zh)
WO (1) WO2009109884A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072011A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법
KR101906225B1 (ko) 2011-11-30 2018-12-10 삼성전자 주식회사 복호장치와, 복호장치의 암호문 복호화 방법
EP2803009B1 (en) 2012-01-09 2019-11-20 Koninklijke Philips N.V. Virtual machine device having key driven obfuscation and method
FR2992083B1 (fr) * 2012-06-19 2014-07-04 Alstom Transport Sa Calculateur, ensemble de communication comportant un tel calculateur, systeme de gestion ferroviaire comportant un tel ensemble, et procede de fiabilisation de donnees dans un calculateur
EP2936727A1 (en) * 2012-12-21 2015-10-28 Koninklijke Philips N.V. Computing device comprising a table network
US9009495B2 (en) * 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
US9363075B2 (en) 2013-10-18 2016-06-07 International Business Machines Corporation Polymorphic encryption key matrices
CN106464484B (zh) * 2014-03-31 2019-08-09 爱迪德技术有限公司 预定函数的混淆执行
US9485226B2 (en) * 2014-04-28 2016-11-01 Nxp B.V. Method for including an implicit integrity or authenticity check into a white-box implementation
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US10412054B2 (en) 2014-06-24 2019-09-10 Nxp B.V. Method for introducing dependence of white-box implementation on a set of strings
KR102311340B1 (ko) * 2015-01-15 2021-10-15 한국전자통신연구원 암호화 장치 및 방법
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
IN2015DE01753A (zh) * 2015-06-11 2015-08-28 Pradeep Varma
CN105426702A (zh) * 2015-10-26 2016-03-23 李晖 基于安卓操作系统的应用程序加密解密方法和装置
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
GB201522315D0 (en) 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
WO2017203992A1 (ja) * 2016-05-23 2017-11-30 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
US11748297B2 (en) 2019-04-26 2023-09-05 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (IOT) systems
JP7383985B2 (ja) 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
KR102301243B1 (ko) * 2020-06-15 2021-09-13 주식회사 스틸리언 화이트박스 암호를 이용한 데이터 암호화/복호화 방법 및 장치

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10161535A (ja) * 1996-12-05 1998-06-19 Yamaha Corp 暗号通信装置
CN1227859C (zh) 1998-06-25 2005-11-16 皇家菲利浦电子有限公司 同步数据流发生器、生成数据流的方法、加密器站、解密器站及消费电子装置
US6351539B1 (en) * 1998-09-18 2002-02-26 Integrated Device Technology, Inc. Cipher mixer with random number generator
EA003874B1 (ru) 1999-10-25 2003-10-30 Киферманкс Консультантс Лимитид Способ обработки данных, устойчивый к извлечению данных с помощью анализа непреднамеренных сигналов побочного ввода-вывода
ATE494692T1 (de) 2001-10-03 2011-01-15 Nxp Bv Verfahren und system zur speicherverschlüsselung
JP3650611B2 (ja) * 2002-06-13 2005-05-25 一浩 宮本 暗号化及び復号化するためのプログラム
US20040083373A1 (en) 2002-10-28 2004-04-29 Perkins Gregory M. Automatically generated cryptographic functions for renewable tamper resistant security systems
GB0229894D0 (en) 2002-12-21 2003-01-29 Ibm Methods, apparatus and computer programs for generating and/or using conditional electronic signatures and/or for reporting status changes
US7840002B2 (en) * 2004-07-29 2010-11-23 Vadium Technology, Inc. Techniques to strengthen one-time pad encryption
EP1646174A1 (en) 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
JP4593618B2 (ja) * 2005-03-08 2010-12-08 パナソニック株式会社 パケット送信装置
US7769165B2 (en) * 2005-10-14 2010-08-03 Microsoft Corporation Semi-public white-box cipher
WO2007105126A2 (en) 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
BRPI0714242A2 (pt) 2006-07-12 2013-01-29 Koninkl Philips Electronics Nv sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador
US8700915B2 (en) * 2006-07-12 2014-04-15 Irdeto Corporate B.V. Method and system for verifying authenticity of at least part of an execution environment for executing a computer module
US8189770B2 (en) * 2006-08-10 2012-05-29 Nec Corporation Tweakable block encryption apparatus, method, and program
EP2092684A2 (en) * 2006-11-17 2009-08-26 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
US8306216B2 (en) * 2007-01-11 2012-11-06 Irdeto B.V. Method and system for tracking or identifying copy of implementation of computational method, and computation system
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
EP2669789A3 (en) 2008-05-07 2014-06-25 Irdeto Corporate B.V. Exponent obfuscation
US8966285B2 (en) * 2011-01-10 2015-02-24 Apple Inc. Securing implementation of a cryptographic process having fixed or dynamic keys

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《WHITE-BOX CRYPTOGRAPHY AND AN AES IMPLEMENTATION》;chow s et al;《9TH ANNUAL INTERNATIONAL WORKSHOP》;20020815;第2595卷;第255页第8段至262页第7段,图1 *

Also Published As

Publication number Publication date
CA2717625C (en) 2018-09-25
US9710623B2 (en) 2017-07-18
CN102016871A (zh) 2011-04-13
KR101639587B1 (ko) 2016-07-14
JP2014180061A (ja) 2014-09-25
US20110116625A1 (en) 2011-05-19
EP2255317A1 (en) 2010-12-01
JP2011514091A (ja) 2011-04-28
KR20100138986A (ko) 2010-12-31
JP6017501B2 (ja) 2016-11-02
EP2255317B1 (en) 2013-05-15
WO2009109884A1 (en) 2009-09-11
CA2717625A1 (en) 2009-09-11

Similar Documents

Publication Publication Date Title
CN102016871B (zh) 密码系统
JP5646612B2 (ja) 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
CN102461058B (zh) 具有输入相关编码的白盒密码系统
US8726029B2 (en) Cryptographic processing of content
US6975730B1 (en) Method and apparatus for contents information
JP5355554B2 (ja) 暗号用鍵データの更新
EP2044724B1 (en) Tamper resistance of a digital data processing unit
US20080084996A1 (en) Authenticated encryption method and apparatus
JP5599728B2 (ja) ホワイトボックス実装
JP2010515945A (ja) 実装のコピーの追跡
JP2004318154A (ja) ブロック暗号の暗号化法を用いたデジタルコンテンツの保護関連出願本出願は、2003年4月14日に出願された米国仮特許出願番号60/462,987号についての優先権を主張する。著作権表示/許諾この明細書の開示内容の一部は、著作権保護の対象となるマテリアルを含む。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められるファックスコピー又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権の権利を保有する。以下の表示は、後述するソフトウェア及びデータ、並びに添付の図面に適用される。著作権(c)2003:全ての著作権はソニーエレクトロニクスインク社に帰属する(Copyright(c)2003,SonyElectronics,Inc.,AllRightsReserved)。
CN106059752B (zh) 一种基于扩张密文的白盒密码加解密方法
KR20140087036A (ko) 동적 암호화 방법
CN107273724A (zh) 为白盒实施方案的输入和输出加水印
CN1890914B (zh) 块加密系统、利用置换隐藏各加密轮的核心加密函数
JP5496880B2 (ja) データセキュリティ
US20240048377A1 (en) Ciphertext conversion system, conversion key generation method, and non-transitory computer readable medium
JP3380194B2 (ja) デジタル著作物保護システム
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
CN106452724A (zh) 一种广谱密码方案
US8774408B2 (en) Traceable method and system for broadcasting digital data
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム
JP3846148B2 (ja) コンテンツ情報復号化方法、コンテンツ情報復号化装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: IRDETO B.V.

Free format text: FORMER OWNER: IRDETO BV

Effective date: 20150114

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150114

Address after: Holland Hoofddorp

Applicant after: Irdeto B.V.

Address before: Holland Hoofddorp

Applicant before: Irdeto Corporate B. V.

C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: Holland Hoofddorp

Applicant after: Ai Dide Technology Co., Ltd.

Address before: Holland Hoofddorp

Applicant before: Irdeto B.V.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: IRDETO B.V. TO: IRDETO B. V.

Free format text: CORRECT: ADDRESS; FROM:

GR01 Patent grant
GR01 Patent grant