密码系统的制作方法

文档序号:6593418阅读:214来源:国知局
专利名称:密码系统的制作方法
技术领域
本发明涉及密码系统,并涉及密码处理的方法。
背景技术
现今,内容越来越采用数字格式向用户提供,例如,通过因特网、广播介质, 或通过诸如CD或DVD之类的数字数据载体。诸如电视机、机顶盒、以及音频设备之类 的消费电子产品(CE)配备有数字数据处理能力,以呈现这些数字内容。已经引入了数字权限管理系统,以控制数字内容向合法用户的分发。通常,数 字权限管理系统使用只允许合法用户对内容进行解密的加密技术。可以使这样的加密技 术在消费电子产品中的实现模糊,以使得攻击者更难以查找密钥的值。通常用于许多不 同种类的应用中的密码的示例有DES、AES> RSA、以及W09967918中所公开的方法。就密钥处理而言,为进行回放,媒体播放器必须从许可证(license)数据库取得 解密密钥。然后,它必须将此解密密钥存储在存储器中某处,以用于解密被加密的内 容。这给攻击者留下攻击密钥的两个选择。首先,对许可证数据库访问功能的反向工程 可能允许攻击者从所有许可证数据库取得资产密钥(asset key)。其次,通过观察在内容 解密过程中对存储器的访问,可以取得该资产密钥。在两种情况下,密钥都被视为被泄 密。在软件实现的密码系统领域,对防篡改的软件产品的需要导致产生模糊技术,其防 止攻击者获取加密密钥以及防止非授权复制。这些模糊技术中的一个涉及提供密码算法 的白盒实现。密码算法的白盒实现是将密码算法的一些或全部内部工作隐藏起来以防止 白盒攻击(即,其中攻击者可以观察到由处理器执行的一些或全部指令的攻击)。在某 些情况下,攻击者对操作环境拥有某种形式的控制,这允许他观察加密操作的至少一部 分,并识别在执行过程中算法中所使用的密码密钥的至少一部分。例如,他可以在调试 环境或虚拟机内执行所述实现,并由此观察所有操作,操纵数据缓存区,并监视执行流 程。在其他情况下,在密码算法的执行过程中,攻击者可以使操作环境“泄漏”或 泄露部分实现或部分数据缓存区内容。例如,他可能能够使用缓存区溢出攻击来提取部 分密码实现。如果提取了正确部分,那么从而他可以得知该实现中的密码密钥或允许他 撤消一些或全部密码保护的特定设置。白盒实现隐藏密码算法的一些或全部内部工作,尤其是密钥数据。这可以以各 种方式来进行。用于创建白盒实现的流行的技术是使用利用表示构成(compositions)而 并非单个步骤的随机双射对密码算法中的表编码的组合。解密密钥和解密算法有效地被 变为一个单块。该块的没有一个部分透露任何有关算法或密钥的内部工作的信息。事实 上,甚至在给定整个白盒实现的情况下,也极其难以对所使用的原始算法或解密密钥进 行反向工程。例如,欧洲专利申请序列号08155798.5 (代理人档案PH010099)中公开了 诸如RSA之类的密码算法中的指数的模糊。当前,白盒实现只对于数量有限的密码是已知的。Stanley Chow、PhilipEisen> Harold Johnson 以及 Paul C.Van Oorschot 所著的"White-Box Cryptography and an AES Implementation” (Selected Areas in Cryptography 9th AnnualInternational Workshop, SAC 2002,St.John' s, Newfoundland, Canada, August 15-16,2002)(下 面简称为 ‘‘Chowl”),以及 Stanley Chow、Phil Eisen、Harold Johnson 以及 Paul C.van Oorschot 所述"A White-Box DES Implementation for DRM Applications” (Digital Rights Management ACM CCS-9Workshop, DRM 2002,Washington, DC, USA, November 18,2002)(下面简称为“Chow 2”),公开了创建密码算法(尤其是,对于被称为AES 和DES的密码算法)的白盒实现的方法。

发明内容
具有更灵活的创建密码算法的白盒实现的方式是有利的。为更好地解决此问 题,在本发明的第一方面,呈现了一种密码系统,该密码系统包括函数的白盒实现;密码算法的实现;以及用于根据函数的结果并根据密码算法的结果建立密码处理的数据的组合操作的 实现。由于白盒实现,函数所定义的映射不能容易地被攻击者发现。因此,通过将适 当的值馈送到函数的白盒实现,可以生成攻击者难以预测的值的序列。通过将密码算法 的结果与白盒实现的结果组合,攻击者更加难以攻坏密码系统。实际上,利用该白盒实 现的安全性质增强密码算法的强度。并不需要提供密码算法本身的白盒实现。密码算法可以基于例如RSA。函数优选是其行为很难通过监视函数的白盒实现的输入和输出来预测的函数。 所述函数可以包括,例如,诸如DES或AES之类的进一步的密码算法。在这样的情况 下,函数的白盒实现包括进一步的密码算法的白盒实现。替代地,函数可以是散列函数 或随机发生器。在这样的情况下,函数的白盒实现包括散列函数或随机发生器的白盒实 现,视情况而定。组合操作器可以包括,例如,XOR操作,或模2k加(addition modulo2k),对于
某正整数k。组合操作可以实现为或者不实现为白盒实现。可以使用上文所提及的用于创建白盒实现的技术,但是也可以使用现在已知的 或下面设计的其他白盒技术。优选地,白盒实现不是太小,并具有这样的性质即使攻 击者具有该实现的任何一部分(包括算法所使用的密钥),他也难以由此导出作为白盒 实现的主体的函数的功能上正确的版本。此设定比在白盒实现中常常假设的(即,攻击 者具有对环境的完全控制)弱。优选地,攻击者不能从白盒实现的一部分导出基础密钥 (underlyingkey),或者,在随机发生器的情况下,所使用的种子。某些白盒技术(例如, 上文所提及的对表编码的组合的使用)被设计成承受其中攻击者具有对环境的完全控制 的白盒攻击。尽管这样的技术也适合于本发明的目的,但是,存在其他的更加容易的也 适用于本发明的白盒技术。作为示例,在创建时,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还包括用于生成值χ的装置110。该值χ可以从与例如通过 输入端112接收到的数据相对应的密文导出。或者,它可以包括在预定情形下增加的计 数器。装置110优选被布置用于生成互补密码系统能够再现的值χ。这可以通过与互补 系统同步值χ来安排,这可以通过交换包括χ的当前值的表示的消息来实现。
可以将值χ提供给函数的白盒实现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、用于生成值χ的装置210、函数的白 盒实现202、密码算法的实现204、组合操作的实现206,以及输出端214。然而,在系统 200中,执行顺序不同于系统100中的执行顺序。系统200有效地计算F (C (y,G (χ))), 其中,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获取的数据进行加密。-用于生成值χ的装置110。为此可以使用计数器或随机发生器。也可以从外 部源获取值X或从密码算法的实现104的输出生成它。-应用于值χ的第一函数的实现102。_第一组合操作的实现106,用于根据第一函数的结果并根据第一密码算法的结 果建立加密的数据。-输出端114,用于将表示第一组合操作的结果的信息提供到解密器350。该输 出端还可以将表示到第一函数的输入的信息提供到解密器350。解密器350包括-输入端210,用于获取表示到第一函数的输入的信息。可以从加密器301的输 出端114接收此信息。也可以在解密器350中再现值χ。在该情况下,可以将输入端210 替换为用于生成值χ的装置110的复制件。-输入端212,用于从加密器301的输出端114获取表示第一组合操作的结果的
fn息ο-第二函数的实现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)。此外,还设η是im(F)中的值的比特 长度,并设m是dom(G)中的值的比特长度。定义函数C,C im(G) Xim(F) — im(F),该函数优选在其第二自变量是双射 的。优选C是可有效率地计算的。例如,C(x,力=乂*丫或(&,y)=x+y。接下来,引入函数H,H dom (G) Xdom(F) — dom (G) Xim (F),函数 H 通过 H(x, y) = (χ, C(G(x), F(y)))来定义。函数H定义密码算法。鉴于H由F和G组成的方式,H的实现可以被构成为 使得它“继承” F的加密性质和G的白盒性质。因此,将F的密码强度与G的白盒实现 的抗篡改性质结合。因此,就其黑盒安全性,可以至少使H与F—样安全。此外,就其 白盒安全性,可以通过至少部分地以白盒实现的形式来实现G,H可以是白盒安全的,即 使F和C可以以不是白盒的实现的形式来实现。如果F表示具有输出块大小nF的块密码 的加密或解密算法,G表示具有大小ne的输入数据的函数,那么,要传输的数据可以具 有大小nF+ne,这是因为G的输入数据和G的输出被包括在H中。假设χ由恒定值a给 出,或假设χ在解密器处已知。那么,不需要运行白盒实现来导出H的输出。于是运行 C和F的实现就足够,这在与G的白盒实现相比时,在计算方面是有效率的。此外,在 这样的情况下,还可以从密文中省略值X,这减小了密文的大小。这使得下面的方法成为 可能。也可以偶尔地改变X,而并非对于每个数据块地改变X。以此方式,可以使白盒 安全性与性能进行折衷。注意,如果H指定加密算法,那么,如果χ已经改变,则密文 可以由H(x,y) = (χ, C(G(x), F(y)))给出,而如果χ没有改变,则它可以仅由Hx(y) = C(G(x), F(y))给出。如果H指定解密算法,那么,如果χ已经改变,则密文可以由 (X,y)给出,而如果χ没有改变,则它可以仅由y给出。还设想了使用χ的值的预定序 列,或使χ取决于密文。这也将减小要从加密器传输到解密器的数据的量。注意,对于某函数D,还可以利用例如H(x,y) = (D (χ), 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)中的乘法,S卩,C (x, y) =χ · y,χ, ye GF (2128)。利用计数器T来提供χ的值。利用下面的处理步骤来根据 H对消息进行加密。如果满足一些预先指定的条件,则使计数器T增加。例如,可以在每K个数据 块之后使计数器增加。接下来,计算值Y =C(G(X),F(y)) =G(X) · F(y),其中,χ由计数器T的
值给出,y由要被加密的数据块给出。接下来,构造密文块。如果自从最后的加密以来计数器已经改变,或者如果这 是第一次加密,或者如果可能是解密器不知道该计数器的值,那么,密文由H(x,y)= (x, Y)给出。否则,它由Y给出。对于要被加密的后续数据块,重复这些步骤。如将理解的,密文通常包括Y的 值,并且可以包括或者可以不包括x(或D(X),视情况而定)的一个、一些或全部的值, 只要有使解密器使用与在加密器中所使用的G(X)的相同的或在功能上等效的值的机制即 可。还将理解,代替计数器T,值χ可以是随机值发生器的结果,或者可以例如通过某 散列函数从明文或密文计算出。G可以被实现为白盒实现。这样,可以通过将G实现为白盒实现,来使H的实 现成为白盒实现。能够解密以所述的方式加密的数据的解密过程如下。如果密文块包含值X,那么,使用密文块的值X来计算G(X)。否则,使用早先 计算出的GOO的值。接下来,确定GF(2128)中的(G(x) Γ1。注意,(G(x) Γ1 表示 GF (2128)中的 G(X) 的逆(而不是函数G的逆)。然后,计算F(y) = (GOO)—1 · Y。接下来,使用RSA的解密算法来基于F (y)计算明文块y。RSA这样的解密算 法在本领域中是已知的。在该步骤中,F(y)被视为密文块。注意,为创建该解密过程的白盒实现,提供函数G的白盒实现足以,这是因为 如果攻击者不能破坏函数G的话,那么他很难破坏该实现。如果解密过程保留计数器T的其自己的副本,并且如果它知道它增加的条件, 那么,不必将值X加到密文中。因此,在这种情况下,不增加块大小。代替计数器,我们也可以从先前的密文块导出值X。在此情况下,也不必将值X加到密文中。此处所描述的技术可以被用来隐藏密码密钥而使其不为可以访问使用该密钥的 软件实现的攻击者所知。可以理解,本发明还扩展到适于实施本发明的计算机程序,尤其是,载体中或 载体上的计算机程序。该程序可以是源代码、目标代码、诸如部分地编译了形式之类的 代码中间源和目标代码的形式,或者是任何适用于根据本发明的方法的实现中的其他形 式。还将理解,这样的程序可以具有许多不同的体系结构设计。例如,实现根据本发明 的方法或系统的功能的程序代码可以细分为一个或多个子例程。在这些子例程之间分配 功能的许多不同的方式对本领域技术人员将是显而易见的。子例程可以一起存储在一个 可执行文件中,以形成自含式程序。这样的可执行文件可以包括计算机可执行指令,例 如,处理器指令和/或解释器指令(例如,Java解释器指令)。替代地,子例程中的一 个或多个或全部可以存储在至少一个外部库文件中,并且静态地或者动态地(例如,在 运行时)与主程序链接。主程序包含对至少一个子例程的至少一个调用。此外,子例程 可以包括对彼此的函数调用。涉及计算机程序产品的实施例包括与所阐述的方法中的至 少一个方法的每一个处理步骤相对应的计算机可执行指令。可以将这些指令细分为子例 程,和/或可以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。涉及 计算机程序产品的另一实施例包括与所阐述的系统和/或产品中的至少一个系统和/或产 品的每一个装置相对应的计算机可执行指令。可以将这些指令细分为子例程,和/或可 以将这些指令存储在可以静态地或动态地链接的一个或多个文件中。计算机程序的载体可以是能够携带程序的任何实体或设备。例如,载体可以包 括诸如ROM之类的存储介质,例如,CD ROM或半导体ROM ;或磁记录介质,例 如,软盘或硬盘。进一步地,载体可以是可以通过电缆或光缆或通过无线电或其他装置 传输的诸如电信号或光信号之类的可传输载体。当程序以这样的信号实现时,载体可以 通过这样的电缆或其他设备或装置来构成。替代地,载体也可以是其中嵌入了程序的集 成电路,该集成电路适用于执行或用于执行相关方法。应该注意,上文所提及的实施例示出了本发明,并非限制本发明,本领域技术 人员将能够在不偏离所附权利要求的范围的情况下设计许多替换实施例。在权利要求 中,放在括号之间的任何引用符号不应该被解释为对权利要求的限制。动词“包括”以 及其变形的使用不排除权利要求中所陈述的那些要素或步骤之外的要素或步骤的存在。 要素之前的冠词“a”或“an”(一)不排除多个这样的要素的存在。本发明可以通过包 括若干不同的元件的硬件,以及通过被适当编程的计算机来实现。在枚举若干个装置的 设备权利要求中,这些装置中的多个可以通过一个或同一个硬件来实施。在相互不同的 从属权利要求中列举某些方案的这一事实并不表示这些方案的组合不能被有利地使用。
权利要求
1.一种密码系统(100),包括 函数的白盒实现(102);密码算法的实现(104);以及用于根据所述函数的结果并根据所述密码算法的结果建立密码处理了的数据的组合 操作的实现(106)。
2.根据权利要求1所述的密码系统,其中,所述组合操作包括将所述密码算法的结果 与所述函数的结果组合。
3.根据权利要求1所述的密码系统,其中,所述组合操作包括将所述函数的结果与接收到的数据元组合,以获取组合结果;以及 将所述密码算法应用到所述组合结果。
4.根据权利要求1所述的密码系统,其中,给定所述函数的结果的特定值,所述组合 操作定义所述密码算法的结果和所述组合操作的结果之间的一一对应的关系。
5.根据权利要求1所述的密码系统,还包括信号发生器,用于生成包括所述组合操作的结果的表示的信号。
6.根据权利要求5所述的密码系统,其中,所述信号发生器被布置用于将到所述第一 函数的输入的表示包括在所述信号中。
7.根据权利要求6所述的密码系统,其中,所述组合操作的实现被布置用于将所述函 数的单一结果与所述密码算法的多个结果组合。
8.根据权利要求7所述的密码系统,还包括信号发生器,用于生成如下的信号,所述 信号包括表示到所述第一函数的输入的值和所述第二函数的所述多个结果。
9.根据权利要求1所述的密码系统,其中,所述白盒实现包括查询表和XOR操作。
10.根据权利要求1所述的密码系统,其中,所述白盒实现包括 用于访问标识设备和/或用户的数据以获取标识数据的装置,以及 用于根据所述标识数据确立所述函数的输出的装置。
11.一种密码系统(300),所述密码系统包括加密器(301),所述加密器包括 -第一函数的实现(102);-第一密码算法的实现(104);以及_第一组合操作的实现(106),用于根据所述第一函数的结果并根据所述第一密码算 法的结果建立加密的数据;_输出端(114),用于将表示所述第一组合操作的结果的信息提供到解密器; 所述密码系统还包括所述解密器(350),所述解密器包括 -输入端(212),用于获取所述表示所述第一组合操作的结果的信息; -第二函数的实现(202),被布置用于将所述第二函数应用到与到所述第一函数的输 入相对应的值;-第二密码算法的实现(204),被布置用于将所述密码算法应用到基于所述表示所述 第一组合操作的结果的信息的至少一部分的数据;以及_第二组合操作的实现(206),用于根据所述第二函数的结果并根据所述第二密码算 法的结果建立解密的数据;其中,下述的实现中的至少一个包括白盒实现所述第一函数的实现和所述第二函数的实现。
12.—种密码处理的方法,包括通过函数的白盒实现将该函数应用(402)到第一值; 将密码算法应用(404)到第二值;以及应用(406)组合操作,所述组合操作用于根据所述函数的结果并根据所述密码算法 的结果确定密码处理了的数据。
13.包括用于使处理器执行根据权利要求12所述的方法的指令的计算机程序产品。
全文摘要
一种密码系统(100),其包括函数的白盒实现(102);密码算法的实现(104);以及用于根据函数的结果并根据密码算法的结果建立密码处理了的数据的组合操作的实现(106)。所述组合操作包括将密码算法的结果与函数的结果组合。替代地,所述组合操作包括将函数的结果与接收到的数据元组合,以获取组合结果,并将密码算法应用到所述组合结果。
文档编号G06F21/14GK102016871SQ200980115038
公开日2011年4月13日 申请日期2009年3月2日 优先权日2008年3月5日
发明者P·M·H·M·A·戈里森, W·P·A·J·米希尔斯 申请人:耶德托公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1