则存在至少一个使h(v) #hs(v)的半字节ν。这将导 致当σ的值不在W中时,白箱实现不正确地运行。
[0106] 图7示出了如相关申请所述的绑定白箱实现的第二实施例。在该实施例中,可基 于σ或s对白箱实现中的第一函数的输出进行扰动。然后,在第二函数的输出中,可分别 使用σ或s对扰动进行补偿。令&、¥2、%、%为由4个0表720、722、724、726计算的4个 半字节。对于在查找表Q(1\,3,2720之后计算的值Vl,经由查找表?\ 750添加值h(〇,Vl), 其中h是具有8比特输入和4比特输出的任意函数。从而,7\(σ,h) =h十/l〇,h)。 现在的想法是如何在σ=s时对添加h(〇,Vl)进行补偿。这可按如下来完成。在添加!\ 75〇之后,网络计算值_^\Φ.奴2: ?省3φ??4φ"(几'1?1),同时衫:1 ?甘2Φ及3:Φ%需要 被计算。为了对其进行补偿,可以添加查找表Τ2 752和XOR查找表736,其中Τ2计算值h(s, Vi),XOR表将h(S,Vl)添加到1?十v2十v3十y4十/ι(σ,y!)。这给出了一种实现,其中 当且仅当所述实现接收到参数σ=s时才保证计算出正确值。再次,可按如上所述对图7 中的查找表进行模糊处理,以获得最终的白箱实现。
[0107] 现在将提供将图7的实施例扩展至包括多个绑定串的描述。假设白箱实现针对任 何串σew正确工作,其中W包括多个4比特串。在上述实施例中,h被定义为从8比特 到4比特的任意函数。现在将h定义为具有以下性质的任意函数:针对所有〇ew,h(v, σ) =h(v,s),否则,h(v,σ)辛h(v,s)。这导致以下性质,当且仅当〇eW时,白箱实现 才针对整个消息空间正确工作。
[0108] 可通过修改图7中所述的白箱实现来实现这一功能,如下所述。可修改表?\ 750, 使得对于W中的任意标识串值σ,定义h。,使得对于全部半字节ν都满足h(v,σ) =h(v, s)。另一方面,如果标识串值〇不在W中,贝ljh(v,σ)辛h(v,s)。这将导致当σ的值不 在W中时,白箱实现不正确地运行。
[0109] Michiels描述了一种使用绑定串s来指定在白箱实现中使用的查找表或软件代 码的一部分的方法。因此,仅当存在与绑定串s相等的串〇时,白箱实现才能正确工作。然 后,查找表或软件代码将正确地运行。否则,当串σ不等于绑定串s时,可能获得不正确的 输出值。
[0110] 现在,为将Michiels的实施例扩展至适应多个绑定串s,令妒g24为串集合,并 且令sew。则如果5?说,那么白箱实现的计算受到干扰。可使用与上文所述相似的技 术来使用Michiels的实施例得到相似的结果。
[0111] 根据本发明的实施例的方法可作为计算机实现方法实现于计算机上。针对根据本 发明的方法的可执行代码可存储在计算机程序介质上。计算机程序介质的示例包括存储器 设备、光存储设备、集成电路、服务器、在线软件等。从而,白箱系统可包括实现白箱计算机 程序的计算机。这种系统还可包括其他硬件元件,其中包括存储设备、用于与外部系统以及 在白箱系统的元件之间进行数据传输的网络接口。
[0112] 在本发明的一种实施例中,计算机程序可以包括适于当计算机程序运行于计算机 上时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,计算机程序嵌入在非 瞬时计算机可读介质上。
[0113] 此外,由于白箱密码通常是非常复杂的和/或模糊的,所以由人来写入过于冗繁。 因此,具有一种用来以自动化的方式创建根据本发明的实施例的密码系统的方法是有利 的。
[0114] 创建根据本发明的密码系统的方法可作为计算机实现方法实现于计算机上或实 现于专用硬件中或在两者的组合中。针对根据本发明的方法的可执行代码可存储在计算机 程序介质上。在这种方法中,计算机程序可包括适于在计算机程序运行在计算机上时执行 所述方法的所有步骤的计算机程序代码。计算机程序具体实现在非瞬时计算机可读介质 上。
[0115] 图8是示出了将白箱实现绑定到绑定串的方法的流程图。首先,方法开始(805)。 然后,产生或接收密码操作的白箱实现(810)。这可如上所述的使用多种方法和实现来产 生。接下来,可以接收标识使seW的串集合的信息(815)。串s可提供到特定软件实例集 合或特定硬件系统集合的绑定。然后,可基于串s的集合修改白箱实现(820),使得:当接 收到的输入σ是绑定串值的集合中的一个绑定串值时,白箱实现针对由白箱实现实现的 密码操作产生正确的输出;以及当接收到的输入σ不是绑定串值的集合中的一个绑定串 值时,白箱实现针对由白箱实现实现的密码操作产生不正确的输出。上文讨论的多种实施 例提供可在白箱实现中实现该能力的不同方式。然后,所述方法可以结束(825)。
[0116] 本文所述的密码系统可实现在用户设备上,例如移动电话、平板电脑、计算机、机 顶盒、智能电视等。内容提供商(例如,电视网络、视频流服务、金融机构、音乐流服务等)可 向用户设备提供软件,以便从内容提供商接收加密内容。该软件中可以嵌入如上所述的加 密密钥,并且还可包括如上所述的绑定串。然后,内容提供商可向用户设备发送加密内容, 然后用户设备可使用所提供的软件进行解密并使用内容。
[0117] 用来实现本发明的实施例的处理器上运行的特定软件的任意组合构成特定的专 用机器。
[0118] 本文所使用的术语"非瞬时机器可读存储介质"将被理解为排除瞬时传播信号,但 是包括所有形式的易失性和非易失性存储器。此外,本文所使用的术语"处理器"将被理解 为涵盖多种设备,比如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)以及其 它类似的处理设备。当软件实现在处理器上时,所述组合变成单个特定机器。
[0119] 本领域技术人员应该理解的是,本文中的任意框图表示实现本发明的原理的说明 性电路的概念视图。
[0120] 虽然参考特定示例性方面详细描述了多种示例性实施例,但应该理解的是,本发 明能够具有其它实施例,并且能够在多种显然的方面修改其细节。对本领域技术人员明显 的是,在保持在本发明的精神和范围之内的同时,可以进行各种变形和修改。从而,前述公 开、描述和附图只是说明性的,而决不用来限制本发明,本发明只由权利要求限定。
【主权项】
1. 一种在密码系统中使用密码实现执行密码操作的方法,包括: 由所述密码系统接收标识串值; 由所述密码系统接收输入消息; 由所述密码系统执行将所述输入消息映射到输出消息的带密钥密码操作,其中当所述 标识串值是绑定串值的集合中的一个绑定串值时,所述输出消息是正确结果,其中所述集 合包括多个绑定串值。2. 根据权利要求1所述的方法,其中,当所述标识串值不在所述绑定串值的集合中时, 存在输出消息是不正确结果的输入消息。3. 根据权利要求1所述的方法,其中,所述标识串值基于所述密码实现的标识。4. 根据权利要求1所述的方法,其中,所述标识串值基于所述密码系统中的码的一部 分的散列。5. 根据权利要求1所述的方法,其中,所述标识串值基于所述密码系统的标识。6. 根据权利要求1所述的方法,其中,所述标识串值基于用户密码。7. 根据权利要求1所述的方法,其中,所述密码实现包括多个函数,所述多个函数包括 第一函数和第二函数,并且所述方法还包括: 基于所述标识串值对所述第一函数的输出进行编码;以及 对所述第一函数的经编码的输出执行所述第二函数,其中所述第二函数包括使用所述 绑定串值的集合对所述第一函数的经编码的输出进行解码。8. 根据权利要求1所述的方法,其中,所述密码实现包括多个函数,所述多个函数包括 第一函数和第二函数,并且所述方法还包括: 使用所述绑定串值的集合对所述第一函数的输出进行编码;以及 对所述第一函数的经编码的输出执行所述第二函数,其中所述第二函数包括基于所述 标识串值对所述第一函数的经编码的输出进行解码。9. 根据权利要求1所述的方法,其中,所述密码实现包括多个函数,所述多个函数包括 第一函数和第二函数,并且所述方法还包括: 使用所述标识串值对所述第一函数的输出进行扰动;以及 对所述第一函数的经扰动的输出执行所述第二函数,其中所述第二函数包括使用所述 绑定串值的集合补偿所述第一函数的输出的扰动。10. 根据权利要求1所述的方法,其中,所述密码实现包括多个函数,所述多个函数包 括第一函数和第二函数,并且所述方法还包括: 基于所述标识串值在所述第一函数的计算中引入扰动;以及 基于所述绑定串值的集合在所述第二函数的计算期间补偿所述第一函数的所述计算 中的扰动。
【专利摘要】一种用于引入白箱实现对串集合的依赖性的方法。一种在密码系统中使用密码实现执行密码操作的方法,包括:由所述密码系统接收标识串值;由所述密码系统接收输入消息;由所述密码系统执行将输入消息映射到输出消息的带密钥密码操作,其中当所述标识串值是绑定串值的集合中的一个绑定串值时,输出消息是正确结果,其中所述集合包括多个绑定串值。
【IPC分类】H04L9/00, H04L9/06
【公开号】CN105281893
【申请号】CN201510349391
【发明人】W·P·A·J·米歇尔斯, 简·胡格布鲁格
【申请人】恩智浦有限公司
【公开日】2016年1月27日
【申请日】2015年6月23日
【公告号】US20150372989