密码系统和方法与流程

文档序号:11779763阅读:840来源:国知局
密码系统和方法与流程

本发明涉及密码系统和方法。



背景技术:

已知在例如由于软件购买、评估试验或软件升级向客户分发软件包时要建立与软件拥有者的绑定。此外,已知要采取预防措施以确保仅授权客户可以访问软件包。完成这一点的一种已知方式是通过借助于例如是aes或des这样的标准化暗码(cipher)对包或其接口进行加密。该方法的缺点在于,恶意用户可以使用官方密钥对包进行解密,并且然后容易地利用他选择的另一密钥对包进行重新加密(因为恶意用户知道使用的暗码的密钥编排),并且在极端情况下,恶意用户可以在对包进行重新加密之后就像程序是他的或者她的一样对应用进行再次销售。

在proceedingsac2002revisedpapersfromthe9thannualinternationalworkshoponselectedareasincryptography,第250-270页,斯普林格伦敦,英国中由s.chow、p.a.eisen、h.johnson和p.c.vanoorschot所著的“white-boxcryptographyandanaesimplementation”公开了一种被称为白盒密码学的方法,其中,密钥被扩展成作为暗码的实现的不可分割的部分的一个或多个查找表。可能地使用不同的编码对这些查找表的输入和输出进行编码,以使理解查找表表示的过程步骤更加困难。



技术实现要素:

具有一种改进的密码系统将是有利的。为更好地解决该问题,本发明的第一方面提供了一种系统,所述系统包括:

消息单元,用于提供第一消息表示,其中所述第一消息表示是消息的表示;

密钥单元,用于提供密钥表示,其中所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中所述第一密码算法可以与所述第二密码算法不同;

步骤单元,用于基于所述第一消息表示和所述密钥表示执行所述第一密码算法的步骤和所述第二密码算法的步骤以获得第二消息表示,其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示。

这种通过获得所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示来使两种密码算法交织的方式允许扩大密钥空间,因为所述两个密钥均对所述密钥空间做出贡献。进一步地,该系统允许同时对数据执行两种密码算法,与此同时用加密格式保持所述结果。

步骤单元可以包括用于在查找表或者查找表的网络中查找所述第二加密表示的查找单元,其中所述查找表或者查找表的网络包括从第一消息表示与密钥表示的组合到对应的第二消息表示的映射。这是可以如何利用所述结果的加密表示同时执行所述两种密码算法的步骤的示例。

所述第一密码算法的所述步骤和所述第二密码算法的所述步骤可以涉及相同的操作,其中所述第一密码算法的所述步骤的所述操作的至少一个参数与所述第二密码算法的所述步骤的对应参数不同。这是一种创建与所述第一密码算法的暗码相比不同的用于第二密码算法的暗码的方便方式。

第一密码算法可以包括第一多个步骤,并且第二密码算法可以包括第二对应多个步骤,其中,所述第一多个步骤中的步骤(或者每个步骤)与所述第二多个步骤中的每个对应步骤相差至多一个或多个参数值。这是一种创建与所述第一密码算法的暗码相比不同的用于第二密码算法的暗码的方便方式。

所述第一密码算法可以包括步骤的第一序列,并且所述第二密码算法可以包括步骤的对应的第二序列,其中所述消息单元被配置为提供所述第一消息表示,其中所述第一消息表示是从另外的步骤单元获得的所述第一密码算法的前一步骤的结果和所述第二密码算法的前一步骤的结果的加密表示,所述另外的步骤单元用于基于消息表示和密钥表示执行所述第一密码算法的所述前一步骤和所述第二密码算法的所述前一步骤。这允许在加密的域中执行所述两种密码算法的步骤的序列。

所述系统可以包括有效性验证单元,用于基于所述第二密码算法的结果验证所述密钥表示的有效性。所述第二密码算法的所述结果可以被用于确定所述密钥表示是否满足特定条件。

所述有效性验证单元可以被配置为将所述第二密码算法的输出与输入消息进行比较。这是验证所述密钥表示的有效性的一种示例方式。例如,所述第二密码算法可以被配置为如果所述第二密钥是被允许的密钥的预定集合中的元素,则输出所述输入消息的副本或所述输入消息的简单变换,并且如果所述第二密钥不是被允许的密钥的该预定集合中的元素,则输出别的东西。有效性验证单元可以被配置为通过将所述第二密码算法的输出与输入消息进行比较来检查第二密码算法的输出是否等于输入消息或输入消息的简单变换。因为恶意用户不知道被允许的密钥的该集合,因此难以找到被允许密钥的该集合中的元素。

有效性验证单元可以被配置为在暗码块模式下将所述第二密码算法的输出与另外的第一消息表示组合。该另外的第一消息表示可以是暗码块模式下的将被处理的数据的下一个块。可以将所述第二密码算法的所述输出与所述下一个块组合以创建暗码块链结的模式。

步骤单元被隐藏在白盒密码实现中。这允许隐藏所述步骤的内部工作方式。例如,以这种方式隐藏“被允许的”密钥的所述集合。

在另一方面中,提供了上面阐述的系统中的两个系统:第一系统和第二系统。所述第一系统的第一密码算法可以与所述第二系统的第一密码算法相同,并且所述第一系统的第二密码算法可以与所述第二系统的第二密码算法不同。可以存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的多个第二密钥,并且可以存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法给出不同结果的多个第二密钥。这允许利用不同密钥确定不同的受众为目标。通过使用与由被该受众使用的第二密码算法允许的密钥的集合相对应的第二密钥,对这些不同的受众进行寻址。

根据另一方面,提供了一种密码处理的方法。所述方法包括:

提供第一消息表示,其中所述第一消息表示是消息的表示;

提供密钥表示,其中所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中所述第一密码算法与所述第二密码算法不同;以及

基于所述第一消息表示和所述密钥表示执行所述第一密码算法的步骤和所述第二密码算法的步骤以获得第二消息表示,其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示。

在另一方面,提供了一种提供用于密码处理的系统的方法。所述方法包括:

提供用于提供第一消息表示的单元,其中所述第一消息表示是消息的表示;

提供用于提供密钥表示的单元,其中所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中所述第一密码算法与所述第二密码算法不同;

提供用于基于所述第一消息表示和所述密钥表示执行所述第一密码算法的步骤和所述第二密码算法的步骤以获得第二消息表示的步骤单元,其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示;以及

保持所述第二算法的至少一部分是秘密的。

由于保持所述第二算法的至少一部分是秘密的,攻击者难以找到可以与所提供的系统一起工作的另一密钥。

所述方法可以进一步包括提供用于密码处理的第二系统,其中所述第一系统的所述第一密码算法与所述第二系统的所述第一密码算法相同,并且其中所述第一系统的所述第二密码算法与所述第二系统的所述第二密码算法不同,其中存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的多个第二密钥,并且存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有不同结果的多个第二密钥。这允许利用不同的系统确定不同的受众为目标。由于保持所述系统和第二系统二者的第二算法是秘密的,攻击者难以找出该系统可以使用哪些密钥。

所述方法可以包括:如果所述两个系统均被允许访问消息,则使用对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的第二密钥提供消息,以及如果所述第一系统或所述第二系统不被允许访问消息,则使用对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有不同结果的第二密钥提供消息。

本文中阐述的方法可以借助于包括用于使得处理系统执行相关方法的指令的计算机程序产品来实现。附加于例如作为被计算机实现的方法在计算机上被实现,本文中阐述的方法也可以用专用硬件或者用这二者的组合来实现。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括被存储在计算机可读介质上的用于在所述程序产品在计算机上被执行时执行根据本发明的方法的非暂时性程序代码装置。

在优选的实施例中,所述计算机程序包括适于在所述计算机程序在计算机上运行时执行根据本发明的方法的全部步骤的计算机程序代码。优选地,所述计算机程序被体现在计算机可读介质上。

本领域的技术人员应当领会到,本发明的上面提到的实施例、实现和/或方面中的两个或更多个可以用任何被认为有用的方式进行组合。

本领域的技术人员可以基于本说明实现与所述系统的所描述的修改和变型相对应的图像捕获设备、工作站、系统、方法和/或计算机程序产品的修改和变型。

附图说明

本发明的这些和其它方面是从下文中描述的实施例中明显的,并且将参考下文中描述的实施例被阐明。

图1是用于密码处理的系统的方框图。

图2是密码处理的方法的流程图。

图3是提供密码系统的方法的流程图。

具体实施方式

本公开中公开的示例包含出于仅图示的目的被提供的许多细节。这些细节不旨在限制本公开的范围。本文公开的单元中的若干单元可以例如借助于作为用于计算设备的程序一部分的软件单元被实现。

图1图示了用于密码处理的系统的示例。系统包括被配置为提供消息表示3的消息单元1。例如,消息表示3是加密的消息。消息单元1可以被配置为例如使用本领域中本身已知的通信和/或存储技术从外部源接收或检索消息表示。进一步地,系统包括密钥单元2。密钥单元2被配置为提供密钥表示4。该密钥表示4是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示。

这些密码算法典型地是不同的密码算法。在具体示例中,第一密码算法可以被配置为对消息表示进行解密,而所述第二密码算法可以被配置为执行对解密的附加的有效性验证。第二密码算法在其具有与诸如des或aes这样的加密或者解密算法相似或相同的结构的意义上是密码算法。术语‘结构’指诸如是xor运算或在算法中执行的任何s盒这样的运算。诸如由s盒执行的特定排列这样的第二算法的参数将不被看作密码算法的“结构”的一部分。

密钥表示4可以表示采用加密形式的第一密钥和第二密钥。例如,随机双射可以被用于将第一密钥与第二密钥的组合映射到唯一的被随机地确定的比特串,以获得采用加密形式的密钥表示4。这样,对于攻击者来说,将与第一密钥有关的比特和与第二密钥有关的比特分离是尤其困难的。对第一和第二密钥的其它加密也可以被用于获得密钥表示4。

步骤单元5被配置为执行两种密码算法的第一步骤。任一种密码算法的示例步骤包括例如应用x盒或xor运算。步骤单元5将消息表示3和密钥表示4作为输入,并提供中间消息表示6作为输出。中间消息表示6包含第一密码算法的步骤的输出和第二密码算法的步骤的输出。中间消息表示6包含采用加密形式的这些输出。与用使得难以将与第一密钥有关的比特和与第二密钥有关的比特分离的方式对密钥进行加密的方式类似,可以用不能容易地将与第一算法的步骤的输出有关的信息和与第二算法的步骤的输出有关的信息分离的方式对这些输出进行编码。例如,随机双射可以被用于将第一算法的步骤的可能输出与第二算法的步骤的可能输出的任何组合映射到唯一的、随机地确定的比特串,以获得中间消息表示6。

可以对于密码算法的接下来的步骤重复该过程。然而,输入是略有不同的,因为在第一步骤中,消息单元1提供输入消息的消息表示3,并且步骤单元5用加密形式输出表示第一密码算法的步骤的输出和第二密码算法的步骤的输出这二者的中间消息表示6。

消息单元7将该中间消息表示6提供给步骤单元10。步骤单元10执行两种密码算法的第二步骤,并且因此其需要第一密码算法的第一步骤的输出和第二密码算法的第一步骤的输出。该信息由消息单元7以加密形式借助于中间消息表示6提供。进一步地,步骤单元10可能需要每种密码算法的密钥,例如轮密钥。这些密钥可以由密钥单元2以密钥表示9的形式提供。密钥表示9表示采用加密形式的那些(轮)密钥。可选地,密钥表示9由步骤单元5生成并被转发给密钥单元2。

步骤单元10输出进一步的中间消息表示11。该中间消息表示11表示第一密码算法的第二步骤和第二密码算法的第二步骤的输出。

如由点21一般地指示的,可以提供另外的消息单元和步骤单元,以实现两种密码算法的接下来的步骤。可以用与消息单元7和步骤单元2相同的方式实现这些步骤。进一步地,密钥单元2可以提供密钥表示9和密钥表示14作为步骤单元10和步骤单元n的输入。这些密钥表示9、14可以包含例如经编码形式的两种算法的轮密钥。当然,每个单元的实际内容可以不同,因为它们实现第一密码算法的步骤和第二密码算法的步骤。然而,对两种算法的步骤进行组合的方式与借助于例如双射对中间结果进行加密的方式是相同的。

消息单元12接收由这样的步骤单元生成的中间消息表示,并且将其提供给步骤单元15,步骤单元15实现两种密码算法的最后一个步骤。步骤单元15进一步从密钥单元2接收密钥表示14(例如表示如上面阐述的两种密码算法的轮密钥)。步骤单元15输出最终消息表示16。最终消息表示16可以表示第一密码算法的最后一个步骤的输出和第二密码算法的最后一个步骤的输出。最终消息表示16可以表示如上面公开的采用加密形式的这些输出。

有效性验证单元17执行最终消息表示16的有效性验证。该有效性验证基于第二密码算法的最后一个步骤的输出被执行,该输出在最终消息表示中以加密形式可用。借助于步骤单元5、10、15实现的第二密码算法被配置为与有效性验证单元协作,使得有效性验证对于第二密钥的预定集合成功而对于第二密钥的另一预定集合失败。如果有效密钥的集合(有效性验证对于其成功)与全部可能的密钥的集合相比较小,则攻击者难以猜到有效密钥。更具体地,难以猜到与系统一起工作的密钥表示4。可以用若干种方式完成有效性验证。因此,存在如何实现有效性验证单元17的若干不同的可能。

在第一示例中,有效性验证单元17接收消息表示3(由箭头19图示),并执行消息表示3与第二密码算法的输出的比较。在这种情况下,有效性验证单元17可以被配置为如果比较具有合适的结果,则递送可能地借助于如上面阐述的双射被编码的第一密码算法的输出作为经处理的消息18。如果比较没有合适的结果,则有效性验证单元17可以被配置为递送错误消息作为经处理的消息18。该错误消息例如可以由随机比特组成,或者可以包括预定的串。该比较和合适的输出(经处理的消息18)的生成可以例如借助于查找表或查找表的网络被实现。查找表可以将消息表示3与最终消息表示16的组合映射到对应的经处理的消息18。

在第二示例中,有效性验证单元17如由箭头20图示的那样将第二算法的输出提供给消息单元1。消息单元1可以被配置为将从有效性验证单元17接收的数据与输入数据的下一个块组合。输入数据的该下一个块可以被系统以与如上面描述的相同的方式处理。即,在消息单元1已将输入数据的下一个块与第二算法的输出组合之后,该组合的结果作为消息表示3被提供给步骤单元5等。基于本领域中本身已知的暗码块链结方案,将第二算法的输出反馈到下一个数据块的其它可能对于本领域的技术人员将是明显的。有效性验证单元17因此可以被配置为将第一密码算法的输出与第二密码算法的输出分离。第一密码算法的输出可以作为经处理的消息18被输出。经处理的消息18可以如上面描述的那样使用双射被加密。尽管不论有效性验证如何,经处理的消息18可以包含第一密码算法的输出,但如果第二密码算法的输出不是预期输出,则对下一个数据块的密码处理将由于第二密码算法的输出与下一个数据块组合的事实而失败。组合的另一种示例方式是借助于xor运算组合。

步骤单元5、10、15可以借助于查找表来实现。例如,相应的步骤单元包括用于在查找表或查找表的网络中查找第二加密表示的查找单元,其中,查找表或查找表的网络包括从第一消息表示与密钥表示的组合到对应的第二消息表示的映射。这些查找表可以例如借助于随机双射使它们的输入和输出被编码(加密)。随机双射可以在每次查找操作之后改变。这样,可以借助于随机双射对(多个)密钥表示和消息表示二者进行加密。这样的过程被称为白盒实现。操作的白盒实现本身是从chow等人获知的。

在一个示例中,第一密码算法的步骤和第二密码算法的步骤涉及相同的操作,但第一密码算法的步骤的操作的至少一个参数与第二密码算法的步骤的对应参数不同。例如,两种算法中的操作可以是应用s盒,但在两种算法中均被使用的s盒的内容(其是参数值)可以不同。

如在上面的示例中公开的,第一密码算法可以包括步骤的第一序列,而第二密码算法可以包括步骤的第二对应序列。两种算法的步骤可以是相同的、相似的,或替换地可以是不同的。例如,第一算法可以包括应用xor的步骤,其中第二算法可以包括应用s盒的步骤。消息单元7、12被配置为,将消息表示提供给其步骤单元10、15,所述消息表示是从前一步骤单元获得的第一密码算法的前一步骤的结果和第二密码算法的前一步骤的结果的加密表示。例如,步骤单元5是执行关于被步骤单元10执行的步骤的前一步骤的步骤单元。可以由多个步骤单元5、10、15执行密码算法的连续步骤。

可以提供多个如上面描述的系统。例如,这些系统可以被分发给不同的用户。系统的白盒编码可以不同或相同。第一系统实现的第一密码算法与第二系统实现的第一密码算法相同。然而,第一系统的第二密码算法可以与第二系统的第二密码算法不同。使第一系统的第二密码算法与第二系统略有不同,使得存在对于其第一系统的第二密码算法和第二系统的第二密码算法递送相同结果的多个第二密钥,以及存在对于其第一系统的第二密码算法和第二系统的第二密码算法递送不同结果的多个第二密钥。

在具体示例中,以使得有效性验证将仅对于第二密钥的预定集合成功的方式修改每个被分发的系统的第二密码算法。该预定集合可以对于每个系统不同。替换地,一组用户可以被提供有同一系统(将与密钥的同一集合一起工作),并且其他组的用户可以被提供有相应的不同的系统,使得每个用户组具有将工作的第二密钥的唯一集合。第二密钥的这些集合可以是重叠的。以这样的方式,内容分发器可以利用与被允许访问内容的一个或多个组一起工作的密钥对内容进行加密。

典型地,用于密码处理的系统包括执行被存储在系统设备中的合适软件的微处理器(未单独示出);例如,该软件可能已被下载和/或被存储在对应存储器中,所述存储器例如是诸如ram这样的易失性存储器或诸如闪存(未单独示出)这样的非易失性存储器。消息单元、密钥单元、步骤单元、查找单元和有效性验证单元中的一个或多个可以被配备有微处理器和存储器(未单独示出)。

在实施例中,系统包括消息单元电路、密钥单元电路、步骤单元电路。系统可以包括附加的电路,例如查找单元电路和有效性验证单元电路。电路实现本文中描述的对应单元。电路可以是处理器电路和存储电路,该处理器电路执行在存储电路被电子地表示的指令。

图2图示了密码处理的方法。在步骤201中,提供第一消息表示。第一消息表示是消息的表示。在步骤202中,提供密钥表示。密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中第一密码算法与第二密码算法不同。在步骤203中,基于第一消息表示和密钥表示执行第一密码算法的步骤和第二密码算法的步骤以便获得第二消息表示。第二消息表示是第一密码算法的步骤的结果和第二密码算法的步骤的结果的加密表示。可以例如借助于计算机程序实现该方法。

图3图示了提供用于密码处理的系统的方法。在步骤301中,分发器为用户提供用于提供第一消息表示的单元。第一消息表示是消息的表示。在步骤302中,分发器为用户提供用于提供密钥表示的单元。密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中第一密码算法与第二密码算法不同。在步骤303中,分发器提供用于基于第一消息表示和密钥表示执行第一密码算法的步骤和第二密码算法的步骤以获得第二消息表示的步骤单元。第二消息表示是第一密码算法的步骤的结果和第二密码算法的步骤的结果的加密表示。应当指出,步骤301、302和303可以通过提供如上文中关于图1描述的系统而被实现。在步骤304中,分发器保持第二算法的至少一部分是秘密的。潜在的攻击者因此不知道第二算法的密钥编排(keyschedule),使其更难以找到替换的工作的密钥。

方法可以包括:在步骤305中,确定是否应当提供用于密码处理的第二系统。如果是这种情况,则方法从步骤301进行以提供该第二系统。第一系统的第一密码算法与第二系统的第一密码算法相同。如果第二系统应当能够与第一系统使用相同的密钥,则第一系统的第二密码算法可以与第二系统的第二密码算法相同。然而,分发器还可以提供其中第一系统的第二密码算法与第二系统的第二密码算法不同的第二系统。在后一种情况下,第二密码算法和有效性验证单元被选择或设计使得存在对于其第一系统的第二密码算法和第二系统的第二密码算法具有相同结果的多个第二密钥,以及存在对于其第一系统的第二密码算法和第二系统的第二密码算法具有不同结果的多个第二密钥。如果不需要提供另外的系统,方法在步骤306处进行。

方法可以进一步包括:在步骤306处,如果两个系统均被允许访问消息,则使用对于其第一系统的第二密码算法和第二系统的第二密码算法具有相同结果的第二密钥提供消息,以及如果第一系统或第二系统不被允许访问消息,则使用对于其第一系统的第二密码算法和第二系统的第二密码算法具有不同结果的第二密钥提供消息。步骤306可以进一步包括:将消息和表示第一密钥和被使用的第二密钥的密钥表示传送给所提供的系统。

由于诸如aes和des这样的暗码是公知的并且因此它们的密钥编排也众所周知的事实,出现以下问题:恶意客户可以—在使用官方地预期用于他们的密钥对包进行解密之后—利用他们自己选择的不同密钥对包进行重新加密,并且甚至可以声明包来自他或她。本公开描述了用于限制对特定的软件分发工作的密钥的数量的方式。这使对于恶意用户来说找到替换的工作的密钥而不减小所使用的加密算法的有效密钥空间在密码学上更加困难。

在白盒密码学中,密钥被扩展为作为暗码的实现的不可分割的部分的一个或多个查找表。区分是可能的,因为具有特定的密钥的密码算法可以使用数据的不同随机编码被扩展到查找表中。然而,由恶意用户执行的chow的线路中的另一困惑可能已使软件的制造商难以将其识别为是其自身。利用密钥进行签名或者散列化是可能的,但这不一定足够地保护软件的源,因为这些方法将允许该软件被解包并用不同的方法和密钥重新打包和签名。

本公开的一个方面在于,以使得密钥中仅具有特定样式的密钥工作同时保持该样式秘密的方式操纵暗码。加载器然后将包含例如利用非标准s盒略做修改的暗码,并且该被修改的暗码将仅对于相匹配的密钥正确地进行解码。例如,软件包的制造商可以强加密钥的最后四个比特是0101以工作。他甚至可以使用该机制来区分他的受众,因为他可以针对客户的另一集合使用例如样式1001。只要样式保持秘密,这就使恶意用户难以生成替换的有效密钥。然而,在该过程(包括用于有效密钥的样式)变得已知时,暗码的密钥空间被有效地减小。对于某些暗码,产生的密钥空间可以因而变得如此小,以至穷尽搜索是可行的,并且因此,它们不再提供它们曾经针对其被标准化、并初始地被内置在应用中的安全性。

根据本公开,可以在密码学上不可分地将已知暗码与未知暗码配对,而同时利用用于未知暗码的密钥扩展用于已知暗码的密钥。可以将这两个密钥不可分地配对,使得不可能从被不可分地配对的密钥中提取单独的密钥的值。两个经被配对的暗码的组合被做出,使得如果添加的密钥满足特定条件,它仅可以被用来执行其密码功能(例如,基于不可分的密钥对对暗码文本进行解密)。由于被添加的暗码是未知的,其密钥编排也是未知的,并且因此,在密码学上攻击者难以猜到正确的替换密钥。以这种方式,可以对包作为整体进行加密。通过将该方案并入包的接口中,可以几乎持续地检查一致性。

这可以例如使用安全虚拟机(svm)技术和分段等价暗码被实现。我们将首先详细说明后者,并且然后示出可以如何将这些功能应用于svm设置中。

贯穿本公开,术语“分段等价暗码”被定义如下。如果存在暗码的全部可能密钥的域的子域,使得对于该子域中的全部密钥,暗码a和暗码b提供相同的输出,并且对于不在该子域中的全部密钥,暗码a和暗码b提供不同的输出,则暗码a和暗码b被称为分段等价的。

换句话说,分段等价暗码是在密钥空间的特定子集上是等价的的暗码。有可能通过将暗码a的软件实现分发给第一受众并将暗码b的软件实现分发给第二受众来应用这些暗码以与预期受众通信。在消息被预期用于两个受众时,使用在其上暗码等价的子域中的密钥。在仅允许第一受众或仅第二受众访问消息时,使用处在该子域之外的密钥。在具体示例中,甚至可以广播密钥和消息二者,并且仅预期受众(即,具有正确的凭证的受众)能够根据密钥对其进行解密。该方案可以被用于识别受众(客户)、更新软件、密钥和分段等价暗码(撤销)。

考虑具有密钥k的暗码c。根据本公开的一个方面,c被与另一暗码c’混合,使得仅当c’正确表现时c才正确表现。更正式地,暗码c被与另一暗码c’混合,同时以这样的方式利用密钥k’扩展密钥k,以使得当且仅当密钥k’满足特定条件时组合c|c’在功能上等价于单独暗码c(即,有可能使用c|c’执行具体密码运算)。

在具体示例中,对于任何文本x

等式1

现在,可以设计一个或多个暗码,对于,其中n为正整数,其中,每个c’分段等价。即,存在对于其的密钥空间的子集。可以针对每个暗码不同地选择该子集,使得可以生成将仅与具体的暗码(对于i的具体的值)一起工作的密钥。分发器然后可以分发这些暗码和密钥的软件实现,其中,(对于)被选择为是与c’分段等价的。

有可能以这样的方式设计暗码c’和,对于,使得由可能的密钥形成的密钥空间具有以下特征:猜测替换的密钥(例如,满足等式1的“给定条件”的)至少与根据猜测k一样困难。还应当指出,根据本公开的一个方面,通过暗码和密钥空间的该扩大,原始暗码不受影响,也没有变得更易于猜测任何事情。

在下面,呈现了函数c|c’的可能的构造。假设暗码c是混淆-扩散暗码。合适的混淆-扩散暗码的示例包括但不限于des、3des和aes。取在结构上等价的暗码c’,其是在结构上与c等价但具有某种修改。例如,可以通过依照c的s盒中的至少一个改变混淆来创建c’

假设是笛卡尔积,即,即输出大小加倍。当且仅当的输出是预期的输出(即,满足特定的条件)时,输出可以通过将输出限于而被缩减。

在该方面中,示例条件是,或更一般地,示例条件为是x的预定函数。替换地,对是否满足条件的检查可以是隐性检查,例如通过将的结果与下一数据块进行组合来使用的结果,密码运算被应用到所述下一数据块。这样的过程例如被称为暗码块链结(cbc)模式。这样,的结果可以被用作随机数(nonce)。的结果可以以本身在本领域中已知的方式被用作会话密钥。对于攻击者,难以猜到对于哪个(子)密钥,条件被满足,因为通过s盒的改变,c’已经成为了“未知”函数。

创建关于密钥空间的分段等价暗码可以通过设计操纵密钥材料分段等价物的函数来完成。在aes和des二者中,操纵密钥材料的函数之一是xor,对于其的一个自变量是(轮)密钥,该密钥在本段落中记作k,并且另一自变量与正被处理的数据/消息有关。我们可以将该函数称为。考虑暗码c’涉及运算,则对于某个i,分段等价暗码可以通过创建对于的分段等价的函数从c’被导出。对于的分段等价的函数的示例是:

应当指出,这仅是一个示例,其中对于除4之外的k的所有值,等于。应当指出,如果我们在中在一轮中用取代仅一个,则该新暗码仅当相关的(子)密钥材料等于k时在功能上与c’等价。由于密钥编排是可逆的,所以技术人员可以确定对于其暗码和c’分段等价的全部密钥k’。

在安全虚拟机(svm)实现中,c之间的链接可以通过在单个表内建立该链接而被完美地隐藏。如本领域中已知的,该表可以合并其输入和输出的编码。例如见例如从chow等人获知的白盒技术。

为实现该情形,可以将暗码的每个步骤与暗码c的步骤组合。可以对步骤的中间结果进行编码;即,可以将与暗码c的步骤的输入和输出有关的信息分别和与暗码的对应步骤的输入和输出有关的信息混合。也可以在该经编码的域中执行对关于的输出的条件的检查,使得如果尚未满足条件,则攻击者不能容易地提取c的输出。这里,它有助于c’在结构上与相等。同样地,通过加密/编码将密钥k和k’混合,并且这确保攻击者不具有经组合的密钥k|k’中的比特与他正在猜测的组成密钥kk’的比特之间存在什么关系的任何线索。通过kk’的加密,这些值对攻击者变成不可分的。

在今天的信用卡和电话上的支付应用中,我们具有平常被使用的有效性验证密钥。如果用如上面描述的扩展的密钥k|k’替代这样的有效性验证密钥,不能在其它信用卡上在没有复制卡的其它方面的情况下容易地使用密钥。与白盒技术类似,有效性验证密钥可以是对于每个人不同的,但本文中公开的解决方案中的至少一些与现有白盒实现相比在所使用的存储空间方面可以具有更小的覆盖区。此外,本文中公开的解决方案中的至少一些解决方案具有对于攻击者未知并且每次不同的随机功能性。

在下面的条款中阐述了针对生物计量验证的有利实施例。申请人特此给出公告,在检举本申请或者从其导出的任何进一步的申请期间,新的权利要求可以被构想成这样的条款和/或这样的条款的组合和/或取自本说明的特征。在下面的条款中被介绍的装置可以例如被实现为如本文中阐述的相应的对应单元。

1.一种用于密码处理的系统,包括:

消息装置(1、7、12),用于提供第一消息表示(3、6、11),其中所述第一消息表示是消息的表示;

密钥装置(2),用于提供密钥表示(4、9、14),其中,所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中所述第一密码算法与所述第二密码算法不同;

步骤装置(5、10、15),用于基于所述第一消息表示(3、6、11)和所述密钥表示执行所述第一密码算法的步骤和所述第二密码算法的步骤以获得第二消息表示(6、11、16),其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示。

2.根据条款1所述的系统,其中所述步骤装置(5、10、15)包括用于在查找表或者查找表的网络中查找所述第二加密表示的查找装置,其中所述查找表或者查找表的网络包括从第一消息表示与密钥表示的组合到对应的第二消息表示的映射。

3.根据条款1所述的系统,其中所述第一密码算法的所述步骤和所述第二密码算法的所述步骤涉及相同的操作,其中所述第一密码算法的所述步骤的所述操作的至少一个参数与所述第二密码算法的所述步骤的对应参数不同。

4.根据条款1所述的系统,其中所述第一密码算法包括步骤的第一序列,并且所述第二密码算法包括步骤的对应的第二序列,其中所述消息装置(7)被配置为提供所述第一消息表示(6),其中所述第一消息表示(6)是从另外的步骤装置(5)获得的所述第一密码算法的前一步骤的结果和所述第二密码算法的前一步骤的结果的加密表示,所述另外的步骤装置(5)用于基于消息表示(3)和密钥表示(4)执行所述第一密码算法的所述前一步骤和所述第二密码算法的所述前一步骤。

5.根据条款1所述的系统,进一步包括有效性验证装置(17),用于基于所述第二密码算法的结果验证所述密钥表示的有效性。

6.根据条款5所述的系统,其中所述有效性验证装置(17)被配置为将所述第二密码算法的输出与输入消息进行比较。

7.根据条款5所述的系统,其中所述有效性验证装置(17)被配置为在暗码块模式下将所述第二密码算法的输出与另外的第一消息表示(3)组合。

8.根据条款1所述的系统,其中所述步骤装置(5、10、15)被隐藏在白盒密码实现中。

9.根据条款1所述的两个系统,其中所述第一系统的第一密码算法与所述第二系统的第一密码算法相同,并且其中所述第一系统的第二密码算法与所述第二系统的第二密码算法不同,其中存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的多个第二密钥,并且存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法给出不同结果的多个第二密钥。

10.一种密码处理的方法,包括:

提供(201)第一消息表示,其中所述第一消息表示是消息的表示;

提供(202)密钥表示,其中所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中,所述第一密码算法是与所述第二密码算法不同的;以及

基于所述第一消息表示和所述密钥表示执行(203)所述第一密码算法的步骤和所述第二密码算法的步骤以便获得第二消息表示,其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示。

11.一种提供用于密码处理系统的方法,包括:

提供(301)用于提供第一消息表示的装置,其中所述第一消息表示是消息的表示;

提供(302)用于提供密钥表示的装置,其中所述密钥表示是第一密码算法的第一密钥和第二密码算法的第二密钥的加密表示,其中所述第一密码算法与所述第二密码算法不同;

提供(303)用于基于所述第一消息表示和所述密钥表示执行所述第一密码算法的步骤和所述第二密码算法的步骤以获得第二消息表示的步骤装置,其中所述第二消息表示是所述第一密码算法的所述步骤的结果和所述第二密码算法的所述步骤的结果的加密表示;以及

保持(304)所述第二算法的至少一部分是秘密的。

12.根据条款11所述的方法,包括(305)提供用于密码处理的第二系统,其中所述第一系统的所述第一密码算法与所述第二系统的所述第一密码算法相同,并且其中所述第一系统的所述第二密码算法与所述第二系统的所述第二密码算法不同,其中存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的多个第二密钥,并且存在对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有不同结果的多个第二密钥。

13.根据条款12所述的方法,进一步包括:如果所述两个系统均被允许访问消息,则使用对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有相同结果的第二密钥提供(306)消息,以及如果所述第一系统或所述第二系统不被允许访问消息,则使用对于其所述第一系统的所述第二密码算法和所述第二系统的所述第二密码算法具有不同结果的第二密钥提供消息。

14.一种计算机程序产品,包括用于使得处理系统执行根据条款10所述的方法的指令。

将领会到,本发明还适用于适于将本发明付诸实践的计算机程序,具体地说,载体之上或者之中的计算机程序。程序可以采用源代码、目标代码、诸如采用部分被编译的形式或者采用任何其它的适于在根据本发明的方法的实现中使用的形式的代码中间源和目标代码。还将领会到,这样的程序可以具有许多不同的架构设计。例如,实现根据本发明的方法或者系统的功能性的程序代码可以被细分成一个或多个子例程。在这些子例程中分发功能性的许多不同的方式对于技术人员将是明显的。子例程可以一起被存储在一个可执行文件中以便形成自包含的程序。这样的可执行文件可以包括例如是处理器指令和/或解释器指令(例如,java解释器指令)这样的计算机可执行指令。替换地,子例程中的一个或多个子例程或者全部子例程可以被存储在至少一个外部库文件中,并且例如在运行时被静态地或者动态地与主程序链接在一起。主程序包含对子例程中的至少一个子例程的至少一个调用。子例程可以还包括对彼此的调用。与计算机程序产品有关的实施例包括与本文中阐述的方法中的至少一种方法的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以被静态地或者动态地链接的一个或多个文件中。与计算机程序产品有关的另一实施例包括与本文中阐述的系统和/或产品中的至少一个系统和/或产品的每个单元相对应的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以被静态地或者动态地链接的一个或多个文件中。

计算机程序的载体可以是任何能够携带程序的实体或者设备。例如,载体可以包括存储介质,诸如例如是cdrom或者半导体rom这样的rom或者例如是闪存驱动器或者硬盘这样的磁性记录介质。此外,载体可以是诸如是电或者光信号这样的可传输的载体,其可以经由电或者光缆或者通过无线电或者其它手段被传达。在程序被体现在这样的信号中时,载体可以由这样的电缆或者其它设备或者装置构成。替换地,载体可以是程序被嵌入在其中的集成电路,所述集成电路适于执行相关方法或者在执行相关方法时被使用。

本发明的一个方面涉及具有包括计算机程序的可写部分的计算机可读介质,所述计算机程序包括用于使得处理器系统执行根据实施例的密码处理的方法的指令。所述计算机程序可以作为物理标记或者借助于所述计算机可读介质的磁化被体现在所述计算机可读介质上。然而,任何其它合适的实施例也是可设想的。所述计算机可读介质可以是光盘或者任何合适的计算机可读介质,诸如硬盘、固态存储器、闪存等,并且可以是非可记录或者可记录的。计算机程序1020包括用于使得处理器系统执行所述方法的指令。

在实施例中,所述系统或者所述步骤单元是处理器系统。所述处理器系统包括一个或多个集成电路。例如,电路可以包括:例如是cpu这样的处理单元,用于运行计算机程序构件以用于执行根据实施例的方法和/或实施其模块或者单元;用于存储编程代码、数据等的存储器。所述存储器的一部分可以是只读的。所述电路可以包括通信元件,例如天线、连接器或者这二者等。所述电路可以包括用于执行所述方法中定义的处理中的一部分处理或者全部处理的专用集成电路。所述处理器、存储器和可选的专用ic和通信元件可以经由例如是总线这样的互连被连接到彼此。所述处理器系统可以被布置为用于分别使用天线和/或连接器执行的接触和/或无接触通信。

应当指出,上面提到的实施例说明而不限制本发明,并且本领域的技术人员应当能够设计许多替换的实施例,而不脱离所附权利要求的范围。在权利要求中,任何被放在括号之间的附图标记不应当理解为限制权利要求。对动词“包括”及其词形变化的使用不排除在权利要求中被指出的那些元素或者步骤之外的元素或者步骤的存在。在元素之前的冠词“一(a)”或者“一个(an)”不排除多个这样的元素的存在。本发明可以借助于包括若干不同的元件的硬件和借助于经合适地编程的计算机被实现。在枚举若干单元的设备权利要求中,这些单元中的若干单元可以由同一硬件项体现。特定措施在相互不同的从属权利要求中被记载的仅有事实不指示这些措施的组合不能被使用以获利。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1