用于相关数据的消息认证码的高效计算的制作方法

文档序号:15929547发布日期:2018-11-14 01:29阅读:171来源:国知局

本文中所公开的各个示例性实施例大体上涉及用于相关数据的消息认证码(messageauthenticationcode;mac)的高效计算,以及在存在mac的情况下的低熵数据的高效传输。

背景技术

在通信系统中,用于确保经交换消息的完整性和真实性的标准加密方法是向每个消息添加消息计数器和消息认证码(mac)。在许多状况下,有必要针对相似消息计算许多此类mac。举例来说,常见的是在消息中包括接收器id。如果装置想要将广播消息发送到许多接收器,那么合理的是假定大部分消息将保持相同,但接收器id将改变。如果存在小的预期发送器集合,那么其它可能的低熵部分是前述计数器或发送器id。在常规途径中,需要针对每个传出消息计算mac。这在受约束装置上可能并不可行,受约束装置是例如具有有限处理能力、有限内存或有限存储的装置。

另外,在通信信道的带宽极低或必须被节约地使用时,在这种情形下的标准优化技术是只发送固定选择的mac位。



技术实现要素:

下文呈现各个示例性实施例的简要概述。可在以下概述中做出一些简化和省略,这意在突出和介绍各个示例性实施例的一些方面,但并不限制本发明的范围。在稍后的章节中将详细地描述适于允许本领域的普通技术人员获得和使用本发明概念的示例性实施例。

各个示例性实施例涉及一种使用受约束处理器来计算用于具有共同部分和独立部分的消息的消息认证码(mac)的方法,包括:使用第一秘密密钥而对所述消息的所述共同部分执行mac函数以产生第一输出;使用第二密钥而对所述消息的所述独立部分执行伪随机函数以产生第二输出,其中所述伪随机函数的计算时间显著地小于所述mac函数的计算时间;以及组合所述第一输出和所述第二输出以产生用于所述消息的经计算mac。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一和第二输出执行散列函数。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一输出和所述第二输出进行异或运算,且对所述异或运算的输出执行交错生成器(alternatingstepgenerator)。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将所述第一输出和所述第二输出输入到缩减循环分组密码(reducedroundblockcipher)。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将具有缩减数目个初始化循环的流密码应用于所述第一输出和所述第二输出。

描述各个实施例,进一步包括:连同消息mac一起接收所述消息;以及比较所述消息mac与所述经计算mac。

描述各个实施例,进一步包括:接收所述消息;将所述消息mac附加到所述消息;以及传输所述消息和所述经附加消息mac。

描述各个实施例,其中使用第二密钥而对所述消息的所述独立部分执行伪随机函数以产生第二输出进一步包括:针对所述消息的所述独立部分的已知值集合预计算所述伪随机函数;存储所述经预计算的第二输出值;在所述消息的所述独立部分是所述已知值集合中的值时选择对应的经预计算的第二输出值;以及比较所述消息mac与所述经计算mac。

描述各个实施例,其中在接收到n个广播消息时,其中n是整数,组合所述第一输出和所述第二输出以产生用于所述消息的经计算mac进一步包括:组合所述第一输出与对应于所述多个广播消息中的每个广播消息的所述n个经预计算的第二输出中的每个经预计算的第二输出。

另外的各个示例性实施例涉及一种使用受约束处理器来计算用于具有标头、有效负载以及具有最高有效位(mostsignificantbit;msb)和最低有效位(leastsignificantbit;lsb)的计数器的消息的消息认证码(mac)的方法,包括:使用第一秘密密钥而对所述标头、有效负载和lsb执行mac函数以产生第一输出;使用第二密钥而对所述msb执行伪随机函数以产生第二输出;以及组合所述第一输出和所述第二输出以产生用于所述消息的经计算mac;以及传输所述标头、有效负载、lsb和所述经计算mac,其中所述伪随机函数的计算时间显著地小于所述mac函数的计算时间。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一和第二输出执行散列函数。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一输出、所述第二输出和交错生成器进行异或运算。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将所述第一输出和所述第二输出输入到缩减循环分组密码。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将具有缩减数目个初始化循环的流密码应用于所述第一输出和所述第二输出。

另外的各个示例性实施例涉及一种使用受约束处理器来计算用于具有标头、有效负载以及计数器的最高有效位(msb)和最低有效位(lsb)的经接收消息的消息认证码(mac)的方法,包括:连同消息mac一起接收所述消息;使用第一秘密密钥而对所述标头、有效负载和lsb执行mac函数以产生第一输出;使用第二密钥而对所述msb执行伪随机函数以产生第二输出,其中所述伪随机函数的计算时间显著地小于所述mac函数的计算时间;以及组合所述第一输出和所述第二输出以产生用于所述消息的经计算mac;以及比较所述消息mac与所述经计算mac。

描述各个实施例,进一步包括:在所述经计算mac不等于所述消息mac时,重复直到经计算mac等于所述消息mac或直到已执行m次迭代,其中m是整数;将所述msb的值递增1;使用第二密钥而对所述经递增msb执行伪随机函数以产生所述第二输出;组合所述第一输出和所述第二输出以产生用于所述消息的所述经计算mac;以及比较所述消息mac与所述经计算mac。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一和第二输出执行散列函数。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括对所述第一输出和所述第二输出进行异或运算,且对所述异或运算的输出执行交错生成器。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将所述第一输出和所述第二输出输入到缩减循环分组密码。

描述各个实施例,其中组合所述第一输出和所述第二输出以产生用于所述消息的mac包括将具有缩减数目个初始化循环的流密码应用于所述第一输出和所述第二输出。

附图说明

为了更好地理解各个示例性实施例,参考附图,其中:

图1示出用于具有共同数据和独立数据的消息的mac的两步骤计算;

图2示出图1的变化,其中存在可使用的已知独立数据值集合;

图3示出用于只包括消息计数器的最低有效位的消息的mac的两步骤计算;且

图4示出用于实施mac的计算的示例性硬件图解400。

为了促进理解,已使用相同附图标号来指定具有基本上相同或相似结构和/或基本上相同或相似功能的元件。

具体实施方式

描述和附图示出了本发明的原理。因此应了解,本领域的技术人员将能够设计出各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本发明的原理且包括在本发明的范围内。此外,本文中所叙述的所有例子主要明确地意在用于教学目的以辅助读者理解本发明的原理和由本发明人所贡献的概念,从而深化本领域,且所有例子不应被认作限于此类特定所叙述的例子和条件。另外,如本文中所使用,术语“或”是指非独占的或(即,和/或),除非另有指示(例如“否则”或“或在可替换的方案中”)。并且,本文中所描述的各个实施例未必相互排斥,这是因为一些实施例可与一个或多个其它实施例组合以形成新的实施例。

为了保证系统中的消息由特定实体发送,可使用消息认证码(mac)。mac将消息认证为由拥有特定秘密密钥的某人发送。将mac函数应用于消息内容,从而产生mac,且接着与消息一起发送mac。mac函数可以是使用应用于消息的秘密密钥以产生mac的加密操作。接收方也拥有秘密密钥。接收方使用相同秘密密钥将相同mac函数应用于经接收消息。如果经计算mac与经接收mac相同,那么接收方能够校验消息。mac的使用有助于防止在网络上发送的消息的窜改,这是因为攻击者对消息的任何改变将引起接收器计算与附加到消息的mac值不同的mac值。mac函数被设计成使得在不知道秘密密钥的情况下计算用于消息的mac并不可行。在mac函数以特定目的实施于受约束嵌入式处理器上时,相较于处理器意在用于的其它任务,mac函数的评估是昂贵的。因此,在具有受约束计算资源的环境中使用mac变得困难。

各种mac函数和协议已被开发且为我们所熟知。各种标准机构已定义了mac函数和协议。这些mac函数和协议中的任何mac函数和协议都可用于本文中所描述的实施例。

描述实施例,其中计算用于消息的mac的计算密集型操作针对消息的共同部分只进行一次,且伪随机函数(pseudorandomfunction;prf)用于消息的独立数据,例如不同发送器id。prf的计算时间比mac的计算时间快得多。接着组合用于消息的共同部分的mac的计算与消息中的独立数据上的prf的输出,从而产生用于消息的mac。

描述其它实施例,其中省略消息的低熵部分。举例来说,消息可包括计数器值以防止重放攻击。此计数器的最高有效字节是将为了缩减消息大小而被省略的最高有效字节。这些计数器字节可由接收器以最小开销从mac恢复。因此,即使在大范围的计算并不可行的具有实时要求的极端受约束环境中也允许使用mac。虽然本文中将消息计数器用作例子,但所述技术还可扩展到消息的任何种类的低熵部分。

如上文所论述,对于极端受约束装置,计算mac可以是代价极高的操作。然而,在广播情境中,可能有必要计算用于具有相似内容的许多消息的mac。本文中所描述的实施例通过以下操作来改进此情形:首先只将消息的共同部分用作到典型mac函数的输入,且接着在第二步骤中将prf应用于消息的独立部分,其中prf的计算可被单独地计算,且对于经合适选择的prf来说,prf的计算快于针对完整消息计算mac函数。prf是伪随机函数,即,无法与随机地从全部函数的集合中挑选的函数区别的函数。用于消息的两个部分的单独计算还允许并行化、预计算和高速缓冲。然后,将两个输出组合成用于整个消息的mac。这有效地在两步骤过程中计算mac,其中对消息的改变部分执行的第二步骤快得多。

可通过使用两步骤mac计算过程来快速地计算相关mac。首先,对共同部分执行预计算。在第二步骤中,组合独立部分的函数与此经预计算值。第二步骤较快,或同样可在某些情形下被预计算。

图1示出用于具有共同数据和独立数据的消息的mac的两步骤计算。输入消息100可具有共同数据105和独立数据110。举例来说,在将某些数据广播到数个不同位置和/或用户时,将存在被发送到每个位置和/或用户的共同数据,且接着将存在识别例如所述位置和/或用户的独立数据,其对于每个广播消息将不同。

可使用第一秘密密钥115将第一prf120应用于共同数据105。第一prf120可以是使用秘密密钥的任何已知mac函数。第一prf的输出是r_c125。可使用第二秘密密钥130将第二prf135应用于独立数据110。第二prf135的输出是r_i140。接着可将组合函数150应用于r_c125和r_i140以产生输入消息105的mac155。

第二prf135可以是许多已知prf中的一个prf。中给出用于此类prf的可能实例化:http://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-108.pdf。可通过计算多项式来实施此类prf以基于特定密钥和输入值而给出伪随机输出。第二prf相比于第一prf将是计算密集型低得多的,使得mac功能性可实施于受约束计算环境中。相比于将是典型mac函数的第一prf,第二prf可被执行得快1.5倍、2倍、3倍、5倍、10倍或甚至更多倍。因此,第二prf的计算时间显著地小于第一prf的计算时间。

组合函数可以是例如散列函数的各种函数。标准化散列函数的例子是如fips180-4中所标准化:http://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf。

图2示出图1的变化,其中存在可使用的已知独立数据值集合。在这个例子中,存在独立数据210a到210d可采取的四个不同值。举例来说,如果正将数据广播到四个不同位置,那么用于四个位置的独立数据是已知的且可被预计算。在图2中,独立数据210a、210b、210c、210d存在四个不同值。使用第一密钥130将这些值中的每个值输入到第一prf135。因此产生四个不同r_i值240a、240b、240c、240d。可存储这些r_i值240a到240d。接着,在选择各个独立数据值时,可由组合函数150选择和使用对应的经预计算的r_i值240a到240d。随着将相同数据广播到对应于四个独立数据值210a到210d的四个位置中的每个位置,接着第二prf120只必须被计算一次,从而产生可与四个r_i值240a到240d中的每个r_i值组合而产生四个mac值255a、255b、255c、255d的rc125。这导致在计算环境受到约束时产生用于消息的mac值所需要的计算资源进一步缩减。

第二步骤的可能实施例将是将第二prf135应用于独立数据110,且使用异或运算和交错生成器来组合来自第二prf135的输出与用于共同数据105的第一prf120的输出,以使结果杂乱。举例来说,在密码术中,交错生成器(alternatingstepgenerator;asg)是意在用于流密码的加密伪随机数生成器。

另外,组合来自第一prf120的输出与来自第二prf135的输出可包括使用循环缩减分组密码(例如具有较少循环以增加性能的aes)或具有缩减数目个初始化循环的流密码。

在另一实施例中,可从消息中省略消息的任何低熵部分,且从mac重构消息的任何低熵部分。这在此类带宽受到约束时可节省网络带宽。

为了避免系统中的重放攻击-其中攻击者存储其已拦截的消息且稍后重新发送所述消息-常见的是在所述消息的经认证部分中包括计数器。这允许接收器存储当前计数器值且放弃具有较低值的消息,即,旧消息。为了防止消息重放,此计数器必须足够大以在装置的使用寿命期间不会覆盖。在受约束带宽情境中,发送此额外的计数器值“c”的代价可相当高。因此,描述实施例,其中对于某一位长度k只传输此计数器的较低“k”个位,即,cmod2k。计数器的剩余最高有效位,即,c/2k,可存储于正在通信且只需要偶尔被更新的装置中。每当c增加时,此策略就会产生问题,使得cmod2k=0(即,计数器的k个最低有效位“覆盖”)。在此状况下,经存储的计数器值变得不正确。因为接收器现在使用不正确的计数器值来计算mac,所以有效消息将似乎无效。这可通过尝试用于经存储的计数器的若干值予以补偿。假设经存储的计数器值是“n”,那么接收器可针对某一参数“i”尝试“n”、“n+1”、“n+2”、…、“n+i”。这在计数器的经发送部分覆盖时将防止接收器丢失消息。不幸的是,对于极端受约束装置,针对每个经接收消息计算“i”个mac值可能并不可行。因此,可使用与上文所描述的两部分过程相似的两部分过程来计算mac。

图3示出用于只包括消息计数器的最低有效位的消息的mac的两步骤计算。在这个实施例中,消息可包括标头301、计数器最低有效位(lsb)303、有效负载305和mac307。可使用第一秘密密钥115将第一prf120应用于共同数据105。如上文所描述,第一prf120可以是使用秘密密钥的任何已知mac函数。第一prf的输出是r_m325。可使用第二秘密密钥130将第二prf135应用于计数器最高有效位(msb)110。第二prf135的输出是r_msb340。接着可将组合函数150应用于r_m325和r_msb340以产生输入消息的mac307。第一prf120、第二prf135和组合函数130可与上文所描述的相同。

图3中所描述的步骤可由接收消息和关联mac的装置实行。将比较经计算mac与经接收mac。如果它们不匹配,那么可递增由接收装置维持的计数器msb的值,且重新计算用于r_msb的值,并且重新计算mac且比较mac与经接收mac。这可被重复直到经接收mac与经计算mac相等或高达i次迭代。如果没有发现匹配,那么拒绝消息且维持计数器msb310的值。如果发现匹配,那么接受消息。如果在计数器msb310上不需要迭代,那么使计数器msb310的值保持相同,否则基于发现匹配所需要的迭代的数目而更新计数器msb310。

图4示出用于实施mac的计算的示例性硬件图解400。示例性硬件400可执行图1到图3中所示出的mac过程。可在执行图1到图3中所示出的mac过程的网络节点或装置中发现此类硬件。如所示出,装置400包括处理器420、存储器430、用户接口440、网络接口450和存储装置460,它们经由一个或多个系统总线410而互连。应理解,在一些方面,图4构成抽象,且装置400的组件的实际组织可比所示出的组织更复杂。

处理器420可以是能够执行存储于存储器430或存储装置460中的指令或以其它方式处理数据的任何硬件装置。因而,处理器可包括微处理器、现场可编程门阵列(fieldprogrammablegatearray;fpga)、专用集成电路(application-specificintegratedcircuit;asic)或其它相似装置。如上文所描述,处理器420可具有有限处理能力。另外,处理器420可以是安全处理器。

存储器430可包括例如l1、l2或l3高速缓冲存储器或系统存储器的各种存储器。因而,存储器430可包括静态随机存取存储器(staticrandomaccessmemory;sram)、动态ram(dynamicram;dram)、快闪存储器、只读存储器(readonlymemory;rom),或其它相似存储器装置。

用户接口440可包括用于使能够与例如管理员的用户或网络管理系统或主机装置通信的一个或多个装置。举例来说,用户接口440可包括显示器、鼠标和键盘以用于接收用户命令。在一些实施例中,用户接口440可包括可经由网络接口450而呈现给远程终端的命令行接口或图形用户接口。

网络接口450可包括用于使能够与其它硬件装置通信的一个或多个装置。举例来说,网络接口450可包括被配置成根据以太网协议而通信的网络接口卡(networkinterfacecard;nic)。另外,网络接口450可实施tcp/ip堆栈以用于根据tcp/ip协议而通信。用于网络接口450的各种可替换的或额外的硬件或配置将是显而易见的。网络接口450可与具有受约束带宽的网络介接。

存储装置460可包括一个或多个机器可读存储媒体,例如只读存储器(read-onlymemory;rom)、随机存取存储器(random-accessmemory;ram)、磁盘存储媒体、光学存储媒体、快闪存储器装置或相似存储媒体。在各个实施例中,存储装置460可存储用于由处理器420执行的指令,或可供处理器420操作的数据。举例来说,存储装置460可存储用于控制硬件400的各种基本操作的基本操作系统461。另外,存储装置460可存储计算如上文所描述的mac的mac计算指令462。并且,存储装置460可以是抵抗未经授权方的窜改或读取的安全存储装置。

将显而易见的是,另外或可替换的是,被描述为存储于存储装置460中的各种信息可存储于存储器430中。在这方面,存储器430还可被视为构成“存储装置”,且存储装置460可被视为“存储器”。各种其它布置将是显而易见的。另外,存储器430和存储装置460都可被视为“非暂时性机器可读媒体”。如本文中所使用,术语“非暂时性”应被理解为排除暂时性信号,但包括所有形式的存储装置,包括易失性存储器和非易失性存储器两者。存储器430也可以是防窜改且防止未经授权存取的安全存储器。

虽然主机装置400被示出为包括每个所描述组件中的一个组件,但在各个实施例中可重复各个组件。举例来说,处理器420可包括多个微处理器,所述微处理器被配置成独立地执行本文中所描述的方法,或被配置成执行本文中所描述的方法的步骤或子例程,使得多个处理器合作以实现本文中所描述的功能性。举例来说,第一prf120和第二prf135可实施于两个不同微处理器中或实施于微处理器的核心中。

根据本发明的实施例的方法可在计算机系统上实施为计算机实施方法。用于根据本发明的方法的可执行代码可存储于计算机程序媒体上。计算机程序媒体的例子包括存储器装置、光学存储装置、集成电路、服务器、在线软件等等。因此,本文中所描述的密钥递送系统可包括实施计算机程序的计算机。此类系统还可包括其它硬件元件,包括存储装置、用于运用外部系统以及在密钥递送系统的元件当中传输数据的网络接口。

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

在处理器上运行以实施本发明的实施例的特定软件的任何组合构成特定专用机器。

如本文中所使用,术语“非暂时性机器可读存储媒体”应被理解为排除暂时性传播信号,但包括所有形式的易失性和非易失性存储器。另外,如本文中所使用,术语“处理器”应被理解为涵盖多种装置,例如微处理器、现场可编程门阵列(field-programmablegatearray;fpga)、专用集成电路(application-specificintegratedcircuit;asic)和其它相似处理装置。在处理器上实施软件时,组合变成单个特定机器。

本领域的技术人员应了解,本文中的任何框图表示体现本发明的原理的说明性电路系统的概念图。

尽管已特定地参考各个示例性实施例的某些示例性方面而详细地描述了各个示例性实施例,但应理解,本发明容许其它实施例,且本发明的细节容许在各种明显方面的修改。对于本领域的技术人员来说易于显而易见的是,可实现变化和修改,同时保持在本发明的精神和范围内。因此,前述公开、描述和附图仅出于说明性目的且并不以任何方式限制本发明,本发明仅由权利要求书限定。

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