指数模糊的制作方法

文档序号:6594070阅读:162来源:国知局
专利名称:指数模糊的制作方法
技术领域
本发明涉及对指数值进行模糊处理。本发明还涉及执行求幂运算。本发明还涉及 作为密码算法的一部分的求幂。
背景技术
当今,例如借助互联网、广播介质或者借助数字数据载体(例如,CD或DVD),用户 可以获得越来越多的数字格式的内容。消费电子(CE)产品(例如,电视机、机顶盒和音频 设备)配备有用于呈现这些数字内容的数字数据处理功能。针对版权内容使用互联网和其它数字分布介质对确保内容提供商的利益提出了 挑战。特别地,希望具有可以加强内容提供商的版权和商业模型的技术手段。CE装置越来 越多地使用装载了合适软件的处理器来工作。这种软件可以包括用于呈现(回放)数字内 容(例如,音频和/或视频)的主要功能部分。控制回放软件是一种加强内容所有者的利 益(包括可使用内容的条款与条件)的方式。传统上许多CE平台(除PC和PDA以外)通 常是封闭的,然而现今越来越多的平台至少部分是开放的并且允许计算机程序员检查软件 并对软件进行修改。在这些开放系统(包括个人计算机)中,可以假设一些用户能够对于 对内容提供访问的硬件和软件进行完全控制。另外,一些用户可以具有大量的时间和资源 来攻击并绕过任何内容保护机制。因此,内容提供商必须经由并非所有用户或装置能够被 信任的社区的敌意网络向合法用户传送内容。已经引入数字版权管理系统来控制向合法用户分发数字内容。通常,数字版权管 理系统使用加密技术,该加密技术仅允许合法用户对内容进行解密。可以对消费装置中的 这些加密技术的实现进行模糊化,使得攻击者更难找到密钥的值。许多不同种类的应用常 用的密码的例子是DES、AES、RSA和在W09967918中公开的方法。关于密钥处理,为了进行回放,介质播放器必须从许可数据库获取解密密钥。于 是,必须将这个解密密钥存储在存储器中的某个地方,用于对加密的内容进行解密。这给了 攻击者对密钥进行攻击的两个选项。首先,许可数据库访问函数的反向工程使得攻击者可 以从所有许可数据库获取资产密钥。第二,通过在内容解密期间观察对存储器的访问,可以 获取资产密钥。在这两种情况下,可以认为密钥泄露。"White-Box Cryptography and an AES Implementation”, by Stanley Chow, Philip Eisen,Harold Johson,and Paul C. Van Oorschot,in Selected Areas in Cryptography :9th Annual International Workshop, SAC 2002, St.John* s Newfoundland, Canada, August 15-16,2002, and "AWhite-Box DES Implementation for DRM Applications,,,by Stanley Chow, Phil Eisen, Harold Johnson,and Paul C. van Oorschot, in Digital Rights Management :ACM CCS-9Workshop, DRM 2002, Washington, DC, USA, November 18,2002 (在下文中,这两个公幵文献将被统称为“Chow”)公幵了通过用 表示构成而非各个步骤的随机双射对密钥的表进行加密以及通过将密码术边界进一步推 出到包含应用中来延伸密码术边界的组合,来试图隐藏密钥的方法。
Chow中公开的技术使得可以执行软件中的密码运算,而不会向能够充分调试该软 件的人暴露密码密钥。在Chow的方案中,通过使用查找表而非数学运算,隐藏了密码密钥, 其结果是不需要原样存储数学运算的操作数。可以使用随机双射对这些表进行编码以进一 步对它们进行模糊化。一个表的编码可以通过对另一个表的编码而撤消或者可以在程序中 的其它地方撤消。然而,并非所有的运算都能容易地通过查找表进行表示。

发明内容
采用对更广范围的运算进行模糊化的方式是有利的。为了更好解决这个问题,在 本发明的第一方面中,提出了一种对指数进行模糊化的方法,包括识别针对在密码处理中要用作求幂的底数值的多个元素χ使得λ > O且χλ = 1 成立的值入;识别大于λ的模糊化的指数y ;以及提供表示模糊化的指数y的信息。这样提供了大于计算求幂严格需要的模糊化的指数y。本发明的这个方面使用了 如下见识针对小于λ的指数,存在大于λ并且当执行求幂时给出相同结果的对应指数 值。使用这个性质,可以使指数值变成希望的那样大,这是有利的,因为这可以更好地对指 数值进行模糊化以防检查和未授权复制。可以在有限代数结构中执行求幂χλ = 1,并且例如在代数结构包括元素{0, 1,...,η-1}的情况下可以按模η执行求= 1。可以提供表示模糊化的指数y的信息用于密码处理。例如,模糊化的指数y可以 提供给包括密码系统的装置。通过向该装置提供模糊化的指数y,可使该装置在随后的求幂 运算中使用指数y。这种密码系统例如实现了诸如RSA的非对称密码。在一实施例中,模糊 化的指数y取决于非对称密码的私钥。这可以更好地保护私钥。在本发明的另一个方面中,提出了一种执行具有模糊化的指数的求幂的系统,包 括底数识别装置,用于识别求幂的底数X,其中,χ是具有η个元素的集合中的元素;指数识别装置,用于识别表示指数y的数据,指数y大于针对所述集合中的所有元 素ξ使得λ > 0且ξ λ = 1成立的值λ ;以及求幂器,用于通过计算χ的y次幂的结果从而获得求幂的结果,来执行密码算法的 至少一部分。已经通过增加指数的大小(size)对指数进行了模糊化。这基于如下见识针对 小于λ的任何指数a,可以发现大于λ并且给出相同的求幂结果的对应指数值y。因此, 这个较大值y可用于替代a,并且仍然提供相同的求幂结果。因此,能够执行求幂而不用向 执行求幂的装置提供相对小的值a。y的比特表示通常大于a的比特表示。此外,例如通过 将足够大倍数的λ与指数a相加,可以选择大于任何给定大小的这种值y。由于可以将值 y选择为希望的那样大,所以还可以使它的对应比特表示变成希望的那样大,而不会改变求 幂的结果。这使得复制值y更加困难。这使得对于密码的密钥中的比特数增加,这增加了 由该密码提供的安全性。例如,可以利用这种求幂方法建立非对称密码的白盒实现。在一实施例中,该系统包括用于将底数值χ与值β相乘并且将求幂结果与i3_y相乘的装置。这两个乘法可用于对底数X和求幂Xy的结果的值进行模糊化。可以在别处在 使用求幂运算的数据处理系统的其它模块中执行这些乘法,以防止攻击者通过监视求幂器 的输入和/或输出而发现X和/或Xy的真正值。在一实施例中,通过适当选择要于指数a相加的λ的倍数,给定的比特串s可以 包括在模糊化的指数y的比特表示中。这使得可以将关于现有信息(诸如,口令、哈希值或 硬件标识符)的信息加入表示指数的信息中。执行求幂的系统可以编程为通过访问所述现 有信息来获取比特串S。例如,服务器可以提供表示指数的信息的其余部分。在独立权利要求中定义了本发明的其它方面。从属权利要求定义了有利的实施 例。


将参照附图进一步说明和描述本发明的这些和其它方面,在附图中图1示出了执行求幂的系统的图;图2示出了执行求幂的处理;图3示出了产生指数值的处理;图4示出了产生指数值的系统;以及图5示出了硬件架构。
具体实施例方式密码算法的白盒实施方式是一种软件实现,在这种软件实现中,可以向攻击者隐 藏密码密钥。可以假设攻击者可以完全访问该实现并且可以完全控制执行环境。有利的是, 采用执行求幂XaHiodn的方案,χ为变量,使得对攻击者隐藏值a。由于RSA包含这种从密钥 推导出a的求幂,所以这种方案能够用于例如推导RSA的白盒实现。Chow等给出了针对对称块密码AES和DES的白盒实现。Chow等采用的思想还能 够在一定程度上用于推导其它对称块密码的白盒实现。然而,使用在Chow等中公开的方 法很难推导非对称密码(例如,RSA和EIGamal)的白盒实现。在这个说明中,公开了用于 推导求幂ax的白盒实现的方案,其中,a可以是常数,χ可以是变量。这种求幂例如发生在 EIGamal公钥密码中。最频繁使用的公钥密码RSA也基于求幂。消息m的加密对应于计算 c = nfmodn,其中,值由公钥给出。密文c的解密对应于计算m = (Aiodn,其中,值d 由私钥给出;值η由质数P和q的P · q给出,并且能够从η的因式分解和e计算值d。要 注意,在这两种求幂过程中,底数值不是常数,而是取决于消息的内容。因此,需要一种执行 求幂xa(x为变量)的方案,从而使得对攻击者隐藏值a。例如,这允许推导RSA的加密和解 密侧的白盒实现。另外,基于这个方案,能够使RSA签名模式的签名产生和签名验证例程进 行白盒化。图1示出了用于执行求幂的系统100的实施例。由系统100执行的求幂可以具有 模糊化指数。例如,这种系统可以内置到能够对使用数字版权管理(DRM)或密码术进行保 护的内容进行处理的装置中。示例装置是音乐播放器、机顶盒、数字调谐器、数字电视机、 DVD播放器。该实施例使求幂处理的指数可由相对大的数据表示(例如,大量的比特)进行 表示,同时使得希望危害系统的人难以采用较小数据表示替换该大数据表示。例如,还可以借助软件在个人计算机中实现该系统。该系统可以包括底数输入部108,用于接收表示求幂运算的底数的数据。例如, 这个底数输入部108可被安排用于接收加密的内容的数字内容流。然而,这并非限制。例 如,底数输入部108另选地可被安排用于接收密码事务数据或识别数据(包括数字签名数 据)。底数输入部108还可以对接收的数据执行预处理操作,例如,对数据进行解析并且可 以按照与加密的数据部分不同的方式对未加密的数据部分进行处理。例如,可以从可移动 介质、内部存储装置(诸如硬盘、闪存或RAM)或者从网络连接(诸如有线、卫星(例如使用 DVB-S))或互联网获取数据。未加密的数据可以被转发至另一个模块(未示出)。加密的 数据可以被转发至底数识别装置102。底数识别装置102从底数输入部108接收表示底数值χ的数据。这个数据用于识 别求幂的底数X。例如,底数识别装置102从底数输入部108接收这个值X。或者,底数识 别装置对从底数输入部108接收的数据进行解析以识别包含底数值χ的数据字段。通常, 底数值χ是定义了乘法运算的代数结构(通常是有限结构)的成分。当执行求幂时,这个 乘法运算也适用。该系统还包括指数输入部110。这个输入部110按照与底数输入部108相似的方 式获取数据。指数输入部110可以从与底数输入部108相同的数据源或者从不同的数据源 获得它的输入。这取决于应用。例如,可以提供单独的密钥服务器,其不时地向指数输入部 110发送更新的密钥。指数输入部110可以执行几个预处理步骤并且可以具有比在本说明 书中描述的要多的功能。然而,指数输入部110基于它的输入生成关于指数的数据,并且将 这个数据发送至指数识别装置104。指数识别装置104被安排用于识别表示指数y的数据。可以在从指数输入部110 和/或从一个或多个其它源112(这将在下文中进行更加详细的讨论)接收的数据中识别 该数据。指数识别装置104还可以从识别的数据中提取指数y的实际值。例如,从指数识 别装置104接收的数据可以以预定方式与从其它源112获得的数据进行组合。指数识别装 置104被安排用于识别相对大的指数值y。这里假设对于由底数识别装置102识别的底 数值X,存在使χλ = 1成立的值λ。指数识别装置104被安排用于识别大于值λ的指数 值y。为此,可以提供足够大的存储位置以存储大指数值y。此外,通过允许从指数输入部 110和/或其它源112接收比λ大的指数y的值,识别装置104能够接收这种更大值。由 于鉴于密码安全性而增大指数值是有利的,所以这些值y可以比λ大超过十倍。甚至识别 的指数值y的比特长度可以比λ的比特长度大超过十倍。由底数识别装置102识别的底数χ和由指数识别装置104识别的指数y可以提供 给求幂器106。这种求幂器可以计算底数值χ的y次幂。可以以现有技术中已知的方法执 行这个计算。例如,可以采用现有技术中已知的平方相乘算法以高效方式计算相对大指数 值y的求幂。求幂器106还适合处理比λ大的指数值y。为了使求幂器106适合处理这 些大的指数值,可以用更大的存储位置和/或可以采用特别适合计算大指数y的求幂的算 法。求幂的结果(即Xy的结果)被提供给后处理单元114,后处理单元114可以对求幂的 结果进行附加处理。这种后处理单元114可以依赖于应用,并且准备从求幂器106获得的数 据以用于系统中的进一步处理。例如,如果求幂的结果包括解密的多介质内容,则这种进一 步处理可以包括在显示器和/或音频系统上呈现视频和/或音频内容。例如,后处理单元114可以将求幂运算的一个或多个结果安排成能够由系统的其余部分进行处理的格式以执 行这种呈现。在一实施例中,由指数识别装置104识别的数据可以表示一个或更多的值y1;..., ym,其中,1,并且其中,求幂器被安排用于依赖于值yi,...,ym执行多个求幂,其中,这多 个求幂形成计算χ的1次幂的中间步骤。例如,该数据可以表示一个或更多指数. .,ym
m
的序列,其中,1,其中,该指数的序列的乘积Π·^等于y。在这种情况下,求幂器可以至
i=\
m
少通过两种不同方式进行求幂计算首先,它可以首先计算乘积 ·^以获得y,然后执行单
i=\
个求幂xy以获得期望结果。在这种情况下,必须计算相对大指数值y的求幂。其次,它可 以根据Z1 = 1和^+1 计算多个求幂。这得到Zm+1 = ,而不实际计算大指数值的求幂。在一实施例中,在底数输入部108中或者在系统的负责向底数输入部108提供数 据的部分中,提供了用于通过将预定值g与值β相乘来计算X的装置。例如,预定值g可 以取决于待解密的加密内容。这样一来,可以监视系统(尤其是单元102、104和106)的数 据流的攻击者不会看见值g。相似地,在后处理单元114或者在系统中的别处,可以提供将 求幂的结果与β _y相乘的装置。这得到值i3_y(i3g)y = gy。因此,不在底数识别装置102、 指数识别装置104和求幂器106暴露值g或gy,就可以计算gy。可以从对于特定装置和/或用户唯一或者对于一组装置和/或用户唯一的信息导 出表示指数y的数据的至少一部分。例如,这种信息可以基于硬件标识符、用户标识符或者 硬件特性(诸如处理器的时钟频率或者盘访问时间)。可以提供用于提供表示指数y的数 据的至少一部分的装置112。装置112可被安排为访问存储有这种数据的存储位置并且将 该数据提供给指数识别装置104。装置112还可以安排用于计算相关数据的哈希值并且将 该哈希值提供给指数识别装置104。例如,该哈希值可以是待解密的某内容或者计算机程序 代码的哈希值。这使得指数数据可以依赖于相对大的数据块(chunk)。装置112可以安排 为例如经由发送至硬件装置(例如,硬盘或处理器)的控制命令来访问包括该硬件装置的 硬件ID的存储位置。这使得在其它系统上成功地执行求幂更加困难,这是因为其它系统具 有其它硬件标识符,这会导致在求幂中使用错误的指数y。求幂运算是RSA解密和加密中的重要步骤。可以使用阐述的技术对这些步骤进行 模糊化。此外,RSA中的密钥与指数值y紧密相关。阐述的技术允许使用更大值和/或使 用多个值表达指数,这使得存储指数所需的比特的总数更大。此外,不知道密钥的攻击者很 难发现更小并提供相同求幂结果的对应指数值。结果,可以与RSA和其它密码算法结合地 使用包括更多数据比特的更大密钥。由于在RSA中解密密钥通常是最秘密的并且大尺寸是 有利的密钥,所以有利地可在RSA解密系统中执行阐述的求幂运算。阐述的技术可以被包括在消费电子装置(诸如PDA、音乐播放器、数字调谐器等) 中。它们提供难以进行反向工程并且可以防止未授权复制和/或分发的数字版权管理技 术。阐述的技术也可以用于交易处理、数字签名和其它密码处理和系统。图2示出了执行具有模糊化的指数的求幂的方法。例如,响应于接收到加密的数 据包或者响应于用户命令,该方法在步骤200中开始。在步骤202中,识别求幂运算的底数 χ。在步骤204中,识别表示指数y的数据。指数y大于使λ > 0且χλ = 1成立的值λ。在步骤206中,通过计算χ的y次幂从而获得求幂的结果,来执行密码算法的至少一部分。 该过程在步骤208中结束并且可以在步骤200开始进行重复,以处理新的底数值X。图3示出了对用于密码处理的指数进行模糊化的方法。在步骤302中,可以识别 密码处理的求幂运算的指数值a。例如,可使用现有技术中已知的密钥产生器来选择密码密 钥。指数值a可以依赖于该密钥。例如,指数值a可以等于该密钥。在步骤304中,建立对于代数结构的多个元素χ使λ > 0且χλ = 1成立的值λ。 Χλ = 1的多个元素X包括可用于加密的消息中的潜在值。为了实现能够得到支持的消息中 的较大灵活性,可以建立对于代数结构的所有X,χλ = 1为真的值λ,其中,该代数结构可 以是模N乘法的集合{0,1,2,3,...,Ν-1}。可以以现有技术中已知的方法计算这个值入。在步骤306中,识别模糊化的指数y,其中,y = a+b λ,其中,b是正整数。例如,可 以通过步骤302和304建立a和λ,并且b可以是从与模糊化的指数y的期望近似比特长 度对应的值范围中随机选择的正整数。在步骤308中,提供表示模糊化的指数y的信息。例如,将它与加密的内容一起存 储在可移动介质上,或者经由数字网络将它发送至客户机装置。另外,表示底数值的信息 (例如,加密的内容)可以提供给客户机装置。在步骤310中,该处理终止。例如,当正在产生新的密钥时,该处理可以在步骤300 重新开始。可以建立一个或更多的值y1; ...,ym,其中,m彡1,并且其中,值y1; ...,ym使得 通过执行依赖于值...,ym的多次求幂而能够计算y次幂的求幂,其中,所述多次求幂形 成计算χ的y次幂的中间步骤。这样一来,使用相对小的指数值y” ...,ym能够执行模糊
m
化。例如,选择多个值yi,...,ym,其中,m彡1,其中,指数序列的乘积
权利要求
1.一种对指数进行模糊化的方法,包括针对在密码处理中要用作求幂的底数值的多个元素X,识别(304)使得λ >0且?= 1成立的值入;识别(306)大于λ的模糊化的指数y;以及提供(308)表示用于所述密码处理中的模糊化的指数y的信息。
2.根据权利要求1的方法,其中,识别(306)模糊化的指数的步骤包括以下步骤 建立密钥值a,其中,a < λ ;选择正整数b;以及 计算 y = a+b λ。
3.根据权利要求1的方法,还包括建立一个或更多值...,ym,其中,m^ 1,并且其 中,值...,ym至少表示形成计算χ的y次幂的中间步骤的多个求幂。
4.根据权利要求2的方法,其中,要用于所述密码处理中的所述多个元素χ是具有η个 元素的代数结构的元素,并且其中,模糊化的指数y大于η。
5.根据权利要求2或1的方法,还包括 识别比特串s;以及选择模糊化的指数y或值...,ym以使得模糊化的指数ι或者值...,ym的比特 表示包括比特串S。
6.根据权利要求2的方法,其中,识别(304)值λ的步骤包括选择值λ以使得将λ 因数分解成质数包括至少一个至少64比特的质数;并且其中,识别(306)模糊化的指数y 的步骤包括选择满足以下条件的模糊化的指数y 针对由e · y = ImodA定义的值e和由 e · y-Ι = α . λ定义的值α,将α因数分解成质数只包括至少64比特的质数。
7.一种执行具有模糊化的指数的求幂的系统,包括底数识别装置(102),用于识别求幂的底数X,其中,χ是具有η个元素的集合中的元素;指数识别装置(104),用于识别表示指数y的数据,指数y大于针对所述集合中的所有 元素ξ使得λ > 0且ξ λ = 1成立的值λ ;以及求幂器(106),用于通过计算χ的y次幂的结果从而获得求幂的结果,来执行密码算法 的至少一部分。
8.根据权利要求7的系统,还包括用于通过将预定值与值β相乘来计算χ的装置;以及 用于将求幂的结果与β _y相乘的装置。
9.根据权利要求7的系统,还包括用于从用于识别装置或用户的数据导出表示指数y 的数据的至少一部分的装置(112)。
10.根据权利要求7的系统,其中,所述密码算法至少部分基于RSA。
11.一种消费电子装置,包括根据权利要求7的系统。
12.—种执行具有模糊化的指数的求幂的方法,包括识别(202)求幂的底数X,其中,χ是具有η个元素的集合中的元素; 识别(204)表示指数y的数据,其中该指数y大于针对所述集合中的所有元素ξ使得 λ > 0且ξ λ = 1成立的值λ ;以及通过计算χ的y次幂的结果从而获得求幂的结果,来执行(206)密码算法的至少一部分。
13.一种用于对指数进行模糊化的系统,包括指数下限识别装置,用于识别针对由密码系统作为求幂的底数值进行处理的多个元素 X使得λ > 0且χλ = 1成立的值λ ;模糊器004),用于识别大于λ的模糊化的指数y;以及 指数提供器G06),用于向密码系统提供表示模糊化的指数y的信息。
14.一种包括密码密钥的信号,所述密码密钥包括表示指数y的数据,该指数y大于针 对要用于密码处理中的多个元素χ使得λ >0且^ = 1成立的值入。
15.一种计算机程序产品,包括使得处理器执行根据权利要求2或1的方法的指令。
全文摘要
提供了一种对指数进行模糊化的方法。该方法包括识别针对要用于密码处理的多个元素x使得λ>0且xλ=1成立的值λ。该方法还包括识别(306)大于λ的模糊化的指数y;以及提供(308)表示模糊化的指数y的信息。该方法包括建立密钥值a,其中,a<λ,选择正整数b,并且计算y=a+bλ。
文档编号G06F7/72GK102099780SQ200980124757
公开日2011年6月15日 申请日期2009年5月5日 优先权日2008年5月7日
发明者P·M·H·M·A·戈里森, W·P·A·J·米希尔斯 申请人:爱迪德有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1