生成消息认证码的生成器、生成消息认证码的方法、程序代码以及计算机可读介质的利记博彩app

文档序号:7636341阅读:310来源:国知局
专利名称:生成消息认证码的生成器、生成消息认证码的方法、程序代码以及计算机可读介质的利记博彩app
技术领域
本发明涉及数据传输领域。本发明特别涉及用于生成消息认证码的生成器、生成消息认证码的方法、程序代码以及计算机可读介质。

背景技术
几乎所有的消息认证码(MAC)算法都是基于下列基本算法组中的一个构造的无加密的哈希函数,例如SHA-1、RIPEMD-160、MD5,以及块密码器(block cipher),例如DES、AES、IDEA等。
在所有情况下,这些方案的实现需要通过哈希函数或者块密码算法的至少一次执行来处理消息的每个比特。尽管这可以在专用硬件上通过深流水线设置来有效地实现,但这种方法导致了以下缺陷 第一,大量的逻辑门会耗费相当多的硅面积,这是驱动芯片制造成本增加的主要因素之一。
第二,在消息的最末比特被提供给消息认证码引擎后,获取最终结果时存在显著的延迟。
第三,由于成千上万的晶体管在消息的整个处理过程中同时进行开关切换,从而导致较高的功率消耗。
尽管深流水线方式使所述第一个缺陷恶化,但是后两个缺陷在所有的硬件实现中是不变的,而是这些算法本身所固有的。
具体地,对于以下系统,后两个缺陷使有效实现变得非常复杂,并且在一些设置下完全阻止有效实现 -要求非常高效的电源管理的系统,例如总是开启的独立医疗设备。
-最大通信速度极为重要的系统,例如在因特网主干中操作的超高速路由器。
-需要在运行时对其外部存储状态进行严格的完整性检查的系统,例如在外部RAM中存储工作数据的安全微处理器。
因此,希望提供在硬件方面优化的MAC。


发明内容
根据本发明的实施例,上述希望可以通过用于生成消息认证码的生成器来实现,所述生成器包括第一电路,用于执行第一数据集合的去线性化的第一电路,以产生第二数据集合,其中第一数据集合包括原始码(即明文),并且其中去线性化是基于线性反馈移位寄存器结构和伪随机输入的。
有利地,根据本发明的范例实施例,提供了新的使用线性反馈移位寄存器(LFSR)作为其主要安全引擎的MAC生成器。由于该发明机制用于对线性反馈移位寄存器所生成的流进行调节,所以当前用于攻击这些方案的专门技术无法直接应用于该新设计。
根据本发明的另一范例实施例,生成器还包括第二电路,用于生成第二数据集合的检错码,以产生第三数据集合(即消息认证码),其中第一电路包括第一线性反馈移位寄存器,并且第一电路与第二电路不同。
换言之,通过连续地影响按照不可再用伪随机序列来混合明文(即第一数据集合)的线性反馈移位寄存器的行为,获得去线性化。有利地,根据本发明的该范例实施例,并不使用线性反馈移位寄存器来计算检错码,而是由不同的第二电路计算检错码。
根据本发明的另一范例实施例,第一电路包括至少一个低权值级和至少一个高权值级,其中第一数据集合的去线性化包括生成第一数据集合的任意延迟的混合副本,将所述副本与第一数据集合进行异或。而且,所述至少一个低权值级(lower weight stage)用于确保第一数据集合的每个比特的效果传播通过第一电路的所有后续状态,并且按照伪随机数序列阻塞(jam)所述至少一个高权值级(higher weight stage),其中伪随机数序列生成所述至少一个低权值级的状态的任意延迟的逻辑子序列(subsequence)。
以这种方式,虽然所有的明文比特影响检错码计算,但是它们中的大多数还在不可能被不利对方猜到的延迟随机位置处影响检错码计算。
根据本发明的另一范例实施例,生成器还包括第四电路,所述第四电路包括用于生成伪随机数的伪随机数生成引擎,其中第四电路用于将生成的伪随机数提供给第一电路。
因此,有利地,第一电路可以将外部生成的伪随机数用于明文或原始码的去线性化。有利地,可以由与混合或去线性化电路不同的电路来执行伪随机数的生成。
根据本发明的其它范例实施例,伪随机数生成引擎是选自包括至少一个第二线性反馈移位寄存器的组合和/或以计数器模式操作的块密码器的组。而且,所述至少一个第二线性反馈移位寄存器组合的初始状态可以是随机选择的,并可以不再用于生成针对多于一个的消息的消息认证码,其中所述初始状态用于执行伪随机数的生成。
有利地,根据本发明的该范例实施例,可以使“加密(keying)线性移位反馈寄存器”连续地运行,也就是说,使用在消息(i)的处理进入消息(i+1)的处理的初始状态时所获得的LFSR的最终状态。
而且,根据本发明的其它范例实施例,第二电路包括循环冗余校验电路,其中检错码的生成是基于由第二电路执行的循环冗余校验结构的。
有利地,循环冗余校验结构在计算检错码时特别有效,而且,它能够非常有效地以硬件实现。事实上,它是在诸如用于1Gps以太网的高速联网设备中所选择的用于检错码的电路。而且,循环冗余校验结构易于缩放,以生成不同大小(也即检错强度)的码。
根据本发明的另一范例实施例,在执行去线性化之前,向第一数据集合加垫(pad)前缀和后缀中的至少一个。
因此,有利地,假设在最末阶段不发生阻塞,则可以避免重点在于改变明文的最后一个或数个比特并计算相应的密码文本的攻击。
根据本发明的另一范例实施例,公开了生成消息认证码的方法,该方法包括步骤由第一电路执行对第一数据集合的去线性化,以产生第二数据集合,其中第一数据集合包括原始码,并且其中去线性化是基于线性反馈移位寄存器结构的。
有利地,该方法使用更少的硬件资源和更少的计算功率或电源,可以提供快速的、硬件优化的MAC生成。
本发明还涉及计算机可读介质和存储于所述计算机可读介质中的生成消息认证码的程序代码。当被处理器执行时,程序代码用于执行由第一电路对第一数据集合进行去线性化以产生第二数据集合的步骤。例如,程序代码可以为总是开启的独立医疗设备或者在因特网的主干中操作的超高速路由器中的一部分。优选地,根据本发明的范例实施例,可以将程序代码载入数据处理器的工作存储器中。因此,可以配置数据处理器可以执行本发明方法的范例实施例。可以用任何适合的编程语言(例如C++)来编写计算机程序,并且计算机程序可以存储在计算机可读介质中,例如CD-ROM。此外,计算机程序可从例如万维网(World Wide Web)等网络获得,并可以从网络下载到处理器或任何适合的计算机中。
本发明的其它范例实施例在从属权利要求中阐述。
本发明的方面可以是用于生成消息认证码的生成器是基于线性反馈移位寄存器的,所述线性反馈移位寄存器用于通过执行对原始码的去线性化过程而生成安全的MAC。
本发明的以上的和其它方面将从显而易见并参照下文所述实施例得以阐明。



参照附图,描述本发明的范例实施例,附图中 图1示出了根据本发明范例实施例的SN-MAC生成器的示意图; 图2示出了根据本发明另一范例实施例的另一SN-MAC生成器的示意图; 图3示出了根据本发明范例实施例、具有可加载触发器的加密(keyed)明文混合引擎的示意图; 图4示出了根据本发明另一范例实施例的混合引擎的示意图; 图5示出了根据本发明、用于生成消息认证码的方法的范例实施例的流程图; 图6示出了根据本发明、用于执行本发明方法的范例实施例的处理器的范例实施例; 图7示出了根据本发明范例实施例的收缩(shrinking)线性有限状态机(LFSM); 图8示出了根据本发明范例实施例的自收缩(self-shrinking)线性反馈移位寄存器(LFSR); 图9示出了根据本发明范例实施例的SN-MAC,特别地,在将明文馈入由块900形成的混合引擎之前,通过将明文与电路901生成的伪随机数序列进行异或,对明文进行预处理,最后,在受到循环冗余校验电路902处理之前,由非线性函数电路903生成自收缩LFSR900输出。

具体实施例方式 附图中的示例是示意性的。在不同的附图中,相似或者相同元件具有相同的附图标记。
图1示出了根据本发明范例实施例的SN-MAC生成器的示意图。根据图1描述的实施例,MAC生成器包括三个主操作组,也即由“加密LFSR”块实现的伪随机数生成器组1。此外,所述生成器包括由五级LFSR(加载控制的触发器(flip-flop)LFSR)23、24、25、26、27、多项式生成异或22、41、33、34、35、43以及明文混合异或21实现的中央明文混合器组2。作为第三主操作组,所述生成器包括由执行标准32位循环冗余校验(CRC-32)过程的CRC-32块实现的校验和生成块3。
应该注意的是,根据本发明的方面,该生成器不包括最末的CRC级3,而只包括电路1和电路2。
伪随机数生成器组1包括负载输入14、初始输入15、时钟13、新比特输入16和由馈送至LFSR级26和27的比特输出12。
时钟信号13经由线44、45、46、47、48馈送至伪随机数生成器组1和五个LFSR级23-27的每一级。
新比特16经由元件18提供给伪随机数生成器组1和校验和生成模块3。
负载输入14还经由线49-53分别提供给五个LFSR级23-27的每一级。
校验和生成模块3还包括安全CRC输出31和就绪引脚(readypin)32。
非门18有助于在处理输入明文11和产生输出MAC31之间建立正确的工作模式。
异或门21在计算多项式结果41之后将明文11引入LFSR状态。
虽然CRC-32算法很适合检测明文的随机变化,包括高达32比特的错误猝发(burst)和所有影响奇数位的错误猝发(假设使用在IEEE802中定义的CRC-32多项式(X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1),如在A.S.Tanenbaum,ComputerNetworks,第四版中公开的,作为参考合并于此),但是它肯定不能防止未检测到的对明文的故意修改。但是,在攻击者不知道秘密值(即密钥)而无法猜到内部流的内容的情况下,通过将明文11重新混合到该内部流中,可以利用这种众所周知的算法来生成安全MAC。这种流在图1中表示为“秘密流”28。
输出“秘密流”28的混合块通过生成与输入混合块2的明文11本身进行异或、明文11的任意延迟的混合副本来进行操作。混合引擎2包括两个主要的子部分 -混合LFSR的低权值级,用于确保明文11的每个比特的结果传播通过混合引擎2的所有后续状态。注意,这些级以隔离形式形成最大长度LFSR(对于图1,使用本原多项式X3+X+1)。
-按照伪随机序列被“阻塞”的高权值级,用于生成LFSR低权值级的状态的随机延迟的逻辑子序列,以及通过扩展生成明文11本身的随机延迟的逻辑子序列。
以这种方式,虽然所有的明文比特均影响CRC-32计算,但是它们中的大多数还在不可能被不利对方猜到的延迟的随机位置处影响CRC-32计算。
应该指出的是,图1所示的连接多项式并非唯一可能的选择,实际上可以使用任何具有用于初始级的另一本原多项式的本原连接多项式(使用非本原子多项式也可以是安全的)。而且,虽然图1描述了仅有五级的混合引擎2,但是根据本发明可以实现更多的或更少的级。
最后,“加密LFSR”块1可以是具有本原多项式的标准LFSR,并且可通过其输出流12对混合块2的高权值级进行计时。
应该指出的是,图1示出了加载控制而非时钟控制;但是,从算法的角度看来它们是等同的,虽然前者易于以硬件实现。“加密LFSR”的初始状态是MAC密钥和应保密的方案的单个部分。可产生安全32比特MAC的最小LFSR长度可以是64比特。当然允许更长的长度,并且如果CRC级的产生多于32比特,则需要更长的长度。当然,更小的长度同样也是可能的,并且在本发明的范围之内。
显然,为了安全,生成时钟的LFSR的初始状态应该是随机选择的,并且不应再用于针对多于一个的消息生成MAC(也即秘密不重性)。但是,可使“加密LFSR”连续地运行,也就是说,使用在消息 (i)的处理进入消息(i+1)处理的初始状态时获得的LFSR的最终状态。
当重新发动该引擎时,应该将混合块和CRC-32块清零(为获得原象抵抗性(pre-image resistance),这可能是必需的)。
明文消息的最前几个比特可能受到混合引擎影响的机会很小,因此可能容易成为未检测到的消息修改的目标。为了避免发生这种情况,用一些额外量的比特作为消息的前缀可能是必需的。这种加垫不应该是秘密的,而可以是固定的算法参数。任何具有0和1的平衡混合的、大于混合引擎大小的序列就足够了。对于五级的混合引擎大小,可以使用由字节AAhex表示的序列。
最后,明文消息的最末几个比特以不可预测的方式影响混合引擎状态的可能性很小,因此容易成为未检测到的消息修改的目标。为了避免发生这种情况,向消息加垫一些额外量的比特可能是有利的。这种加垫不应是秘密的,而可以是固定的算法参数。可以使用任何等于或大于CRC输出级的序列。因此,对于16比特的CRC,可以使用16个零比特的序列。
图2示出了根据本发明的另一范例实施例的另一SN-MAC生成器的示意图,所述SN-MAC生成器包括第二伪随机生成器4和另一随机输出流42。
图2描述了根据本发明的生成器的更安全的实施例,其仅需要添加相对少量的硬件。图2为该可选结构的表示。
在该版本的算法中,混合块的每个随机化的级的时钟是由不同的伪随机数生成器LFSR控制的。
LFSR长度可以为互质的,并且对于基于CRC-32的输出,其长度可为61和67。在这种配置下,MAC密钥可长128比特。
可应用与上述相同的对安全操作的基本要求。
图3示出了根据本发明范例实施例、带有可加载触发器的加密明文混合引擎的示意图。
假设图3为分离的混合引擎基本块,通过将这个基本块构架成如图4的例子中描述的更复杂的结构,可以构架可选的、可能更加安全的变体。
图4示出了根据本发明的另一范例实施例的混合引擎的示意图。
应该指出的是,上述的实施例是高度可定制的。实际上,本发明可以广义地扩展到下文所述的结构。
如图3所示,提供随机流12和明文流11的引擎生成第三流28,所述第三流28为明文流11的全状态(state-full)非线性函数。
根据本发明的实施例,生成器可包括 任意数量的级,和/或 任意数量的、驱动最高有效位级的输入随机流,最高有效位级将LFSR的特征多项式中的相应的指数设置为1,和/或 取代与图3所示的、从第一触发器级的输入中提取的输出,并将最高有效位级的异或与明文输入的异或进行合并,和/或 被计算为所有LFSR级的输出的(非)线性组合函数的输出,具体使用弹性函数(resilient function)(P.Camion和A.Canteaut.Correlation-immune and resilient functions over a finite alphabet andtheir applications in cryptography.Designs,Codes and Cryptography,(16)121-140,1999,作为参考合并于此),和/或 任何类型的特征多项式,和/或 附加的清零和/或置位信号,和/或 附加的LFSR的并行加载和/或读取,和/或 混合引擎的组成,其中将明文11分配到数个混合引擎1000、1100,如图4所示,这是由次级(secondary)输入随机流100、200、300控制的。次级输入随机流100、200、300可全部来自独立的LFSR。
注意,当使用上述的非线性组合函数时,可能重用伪随机加密流。在这种情况下,去线性化不是通过混合引擎(或其组合)执行的,而是通过非线性组合函数而独有地执行。这样的优点在于当在双方之间互换多个异步的消息时大大地简化了MAC函数的密钥管理。
在图4中,完全非线性明文混合电路500的最终输出为每个混合引擎的输出12、42的异或400。注意,异或400输出混合函数能够由任何其它布尔函数和/或上述的弹性函数代替。
(多)级的“加密LFSR”可以由任何伪随机生成引擎代替,特别是由任何以计数器和/或输出反馈模式操作的块密码器、或者任何LFSR的组合代替。
而且,输出的级“CRC-32”可以由任何能够生成检错码的块代替,特别是由任何检错码(特别是任何长度的CRC与校验和代替),由加密消息检测码(MDC)函数例如SHA-1和RIPEMD-160代替,或者由同余生成器代替,或者由通常用于对数据进行有效索引的哈希函数代替,或者由下文所述的电路代替 获取混合引擎的最终状态,将其用作自收缩生成器LFSR的初始状态。
运行自收缩生成器LFSR,直到获得所期望大小的MAC输出。
下面提供关于LFSR和CLC的更详细的信息。
下面提供了关于线性反馈移位寄存器、线性有限状态机、循环冗余码、自收缩生成器以及非线性滤波生成器的更详细的信息。
现在总结线性反馈移位寄存器(LFSR)的主要特性。本文中将考虑二进制域F。长度为n的LFSR包括n个存储单元,其共同形成状态(S0,S1,...,Sn-1)。我们将所述存储单元也称为D触发器。LFSR定义输出序列{Si}i≥0,所述输出序列是由递归关系定义的 k≥0或者等同地,k≥0,(1) 其中定义cn=1。使s(i)在时间i定义线性反馈移位寄存器的状态,也即s(i)=(Si,Si+1,...,Si+n-1)。
则所述状态的同样的关系保持为 k≥0 (2) 系数ci为所谓的反馈系数,如果ci=0则相应的开关打开,而如果ci=1则该开关闭合。将总是假设c0=1,否则输出的序列只是当c0=1时的序列的延迟的版本。
照常地使所谓的特征多项式f(x)与LFSR关联,所述特征多项式f(x)的定义如下 其中定义cn=1,假设c0=1。f(x)的倒数多项式的定义如下 我们将幂级数与序列{Si}i≥0 关联。已知s(x)由S0,S1,...,Sn-1唯一地确定的,并且f(x)的依赖关系明确地描述如下 其中 如果多项式 g(x)∈F[x] 不能被因子分解为多项式F[x]环中具有较小正次数(positive degree)的多项式,则称g(x)在F上不可约分。注意,由于禁止零状态,所以没有线性递归能够迭代经过所有的2n个状态。另一方面,当从非零状态开始并且递归迭代经过所有的2n-1个非零状态时,这样的LFSR(序列)称为最大长度LFSR(序列),并且相应的特征多项式称为本原的。那么这样的最大长度序列的周期T为T=2n-1。注意,每个本原多项式是不可约分的。
表示为L的序列线性复杂度为生成该序列的最短LFSR的长度。线性复杂度可由Berlekamp-Massey算法判定,如同在作为参考合并于此的“J.Massey.Shiftregister synthesis and BCH decoding,IEEE Thrans.On Inform.Theory 15(24),1969,pp.122-127”中所公开的,给定至少2L的输出符号,则所述算法有效地计算特征多项式。因此单的纯LFSR并非好的密码流生成器。可以以长度为n的LFSR为例,其生成长度为2n-1的最大长度序列,但是在已知明文的攻击中,Berlekamp-Massey算法仅需要2n个连续的比特以完全确定反馈多项式和初始状态,以及因此判定整个序列。
n比特的线性有限状态机(LFSM)为n×n矩阵M提供的特定线性算子的实现或实施。LFSM的内部状态由n比特的向量v∈Fn描述。在时间上的演变由n比特的向量的序列v(i)=(v0(i),v1(i),...,vn-1(i)),i≥0描述,满足 v(i+1)=Mv(i) (6) 这里,v(0)为初始状态。具有二进制域F中的项的矩阵M的特征多项式定义为多项式 char(M)=det(xI-M)∈F[x],(7) 其中I通常表示所述n×n单位矩阵。众所周知,如果M的特征多项式是在F上是本原的(不可约分的),则每个序列{Vj(i)}i≥0(j=0,1,…,n-1)的周期为2n-1。定义由(3)给定的多项式f(x)的伴随矩阵为矩阵 最常见的LFSM的子集为LFSR的和细胞自动机(CA,CellularAutomata)。细胞自动机是定义矩阵M是三对角(tridiagonal)的LFSM。具有由(3)给定的特征多项式f(x)的LFSR是定义矩阵设为由(8)给定的f(x)的伴随矩阵的矩阵。
定理1.使f(x)为方阵M的特征多项式,f(x)的伴随矩阵表示为L。如果f(x)是不可约分的,则存在可逆矩阵T,满足 TMT-1=L 在这个定理中出现的矩阵T不是唯一的。定理1可用于将LFSM简化为LFSR。回想由(6)给定LFSM内部状态的演变,如果LFSM的初始状态为v(0),则状态v(i)给定为 v(i)=Miv(0) 相似地,如果由f(x)(矩阵L)定义的LFSR的初始状态为s(0),则状态s(i)给定为 s(i)=Lis(0) 如果所述初始状态满足关系式s(0)=Tv(0),则(根据定理1),可通过以下简单线性等式,使用相关联的LFSR的内部状态s(i),计算LFSM的当前状态v(i) v(i)=T-1s(i) 因此,即使LFSM似乎比LFSR更为复杂得多,二者仅相差简单的线性变换。
使g(x)为次数为s的可约分的多项式。下面将显式地或者隐式地将每个二进制串S与具有与S的比特相应的系数的F上的多项式S(x)关联。使B为长度为m的消息,因此B(x)为相应的次数为m的多项式。那么(基于g(x)的)CRC值可定义为满足以下关系式的次数为s-1的多项式C(x) C(x)=xsB(x)mod g(x) (9) 也即xsB(x)+C(x)可被g(x)除尽。容易导出以下引理。
引理1.根据针对给定多项式g(x)和C(x)的以上表示,存在2m-s个满足(9)的多项式B(x)。
在作为参考合并于此的“D.Coppersmith,H.Krawczyk,Y.Mansour.The shrinking generator,CRYPTO’93,LNCS773,1993,pp.22-39”中,提出了概念上的简单密钥流生成器,即所谓的自收缩生成器。它仅组合两个LFSR其中一个控制另一个的输出,并且因此输出密钥流为最大长度序列经不规则地抽取后的子序列。一年后,Meier和Staffelbach在“W.Meier,O.Staffelbach.The self-shrinking generator,EUROCRYPT’94,LNCS905,1994,pp.205-214”中提出了更加高级的结构-自收缩生成器。实际上,自收缩生成器中的两个LFSR组合为一个LFSR,该LFSR输出划分为比特对的序列。选择比特通常为第一个比特,其确定另一比特,即有效比特(active bit)是用于输出密钥流还是要丢弃。如同Meier和Staffelbach所指出的,自收缩生成器在功能上等同于收缩生成器。注意,根据自收缩生成器的选择逻辑,平均上丢弃由LFSR生成的4个比特中的3个,而对于收缩生成器,平均2个比特中有1个比特被丢弃。自收缩生成器的周期T满足2[n/2]≤T≤2n-1,但是实验结果指示所述周期总是取最大的可能值。还示出了线性复杂度满足T/2 ≤ L≤2n-1~(n-2)(参见“S.Blackburn.Thelinear complexity of the self-shrinking generator,IEEE Trans.On Inform.Theory,45(6),1999,pp.2073-2077”)。因此,如果T=2n-1,则L=O(2n-1)。
自收缩生成器的密码分析经常采用已知的反馈多项式。使用较长的O(20.5n)观察密钥流,攻击的计算复杂度可以从O(20.5n)变化高达O(20.75n)。同样地,在“E.Zenner,M.Krause,S.Lucks.Improvedcryptanalysis of the self-shrinking generator,ACISP’01,LNCS2119,2001,pp.21-35”中提出了计算复杂度为O(20.69n)但是使用长度非常短的观察密钥流的攻击。后一种攻击在“H.Krawczyk.LFSR-based Hashingand Authentication,CRYPTO’94,LNCS839,1994,pp.129-139”中得到改进,仍使用长度非常短的观察密钥流序列,但是将复杂度降至O(20.64n)。对于特定类的弱(稀疏的)反馈多项式可能存在更为有效的攻击。
非线性滤波生成器包括单个(长度为n的)LFSR和非线性函数f(x),所述非线性函数f(x)的r个输入(r≤n)是取自某些移位寄存器级,以计算输出。
对于代数次数k的布尔运算,密钥流的线性复杂度很可能至少为并且其周期

保持等于2n-1。有数种攻击,例如(快速)相关、反转(inversion)、代数的。为了抵抗这些攻击,所述布尔函数应该是高度非线性的、具有高次数的、相关免疫的以及代数免疫的。
根据本发明范例实施例,描述数个基于线性有限状态机的密码本原元件(cryptographic primitive),也即受到连续馈送的线性反馈移位寄存器、阻塞线性反馈移位寄存器、收缩线性有限状态机以及自收缩线性反馈移位寄存器。
考虑长度为n的LFSR,序列 其中P(j)(x)=pnj+pnj+1+...+pn-1 (10) 是次数为n-1的多项式。以P(j)=(pnjpnj+1,...,pnj+n-1)表示与P(i)(x)相对应的n比特矢量。回想由特征多项式f(x)(矩阵L)定义的LFSR的内部状态是通过s(i)=Ls(i-1)计算,其中s(0)=P(0)。将进一步使用P(j)(x)作为用于采用相同LFSR来生成新的序列S(j)(x)的初始状态。换言之,并非馈送一次LFSR并生成序列S(x)(如同在上文“线性反馈移位寄存器”中所描述的),而是周期性地进行馈送。这可通过以下两种方式完成 1.通过改变当前状态s(nj)←s(nj)+P(j)(这是第j次馈送),在每个第n时间帧,馈送LFSR。通过这种方式,在每次这样的馈送中,LFSR将生成新的附加序列(以S(j)(x)表示)。因此结果序列 是所述序列的移位的和。
2.通过用一新的值对当前的状态进行异或,在每个时间帧馈送LFSR。对某些j使i=n(j-1)+1,对k=0,…,n-1,重复以下的过程s(i+k)←S(i+k)+(pni+n-1-k,0,…,0)以及S(i+k+1)=Ls(i+k)。作为结果,LFSR将生成新的附加序列, 以

表示。但是现在 其中多项式

来自n个馈送和移位(也即 ),并且S(j)(x)是与先前的情况中相同的序列,参见(11)。因此,结果序列为 (11)和(12)的区别是在(12)中对每个新的序列添加多项式。在两种情况下,幂级数S(j)(x)和

是由它们的初始状态P(j)(x)、通过与上文在“线性反馈移位寄存器”中定义的相同的方式所唯一确定的。现在给出正式定义并导出一些基本特性。
定义1.给定LFSR和输入序列P(x)。当LFSR通过使用输入序列周期性地更新(异或)其内部状态来生成输出序列S(x)时,将其称为连续馈送的LFSR。
引理2.考虑长度为n的连续馈送的LFSR。假设输出序列S(x)和连续馈送的LFSR(也即f(x)或L)为已知的。则在第一种情况(11)下,可以有效地重建输入序列P(x)能,而在第二种情况(12)下,还需要知道P(x)的n个连续比特。
假设输出序列S(x)为已知的,但f(x)为未知的。则为了应用Berlekamp-Massey算法以及为了重建整个输入序列P(x),在第一种情况(11)下攻击者需要P(x)的n个连续比特,而在第二种情况(12)下需要P(x)的2n个连续的比特。
以下面的众所周知的定义开始。
定义2.给定序列{σi}i≥0。如果(在时间i)序列值σi=0,重复先前的单元状态并忽略输入,而如果σi=1,输入替换单元状态,则D触发器(单元)称为1比特(1位)寄存器。在两者情况下,输出是先前的单元状态。
换言之,1比特寄存器作为正常的D触发器(正如延迟元件)工作,除了当序列的相应值为零时,在这种情况下称为存在阻塞。将序列{σi}i≥0称为收缩序列。
定义3.如果LFSR的一个或多个单元(D触发器)由1比特寄存器替换,则称为LFSR阻塞。
考虑长度为n的LFSR。照常地,假设LFSR生成序列{Si}i≥0,并假设固定第l(l≤n)D触发器,也即由1比特寄存器替换的LFSR单元。为了具有1比特寄存器,需要对何时阻塞触发器单元进行控制。假设在时间i的LFSR的状态为 s(j)=(si,si+1,...,si+l-2,si+l-1,si+lsi+l+1,,...si+n-1) 并且LFSR(其第l触发器)被阻塞,则LFSR在时间i+1的下一个状态将为 s(i+1)=(si+1,si+2,...,si+l-1,si+l,si+l,si+l+2,...si+n) 因此保持s(i+1)=L′s(i),其中伴随矩阵L改变为如下的L′ 因此,单元的每次阻塞生成新的序列,其给出了这次阻塞引入的与正常状态(无阻塞)的差异。假设正常序列如下计算 si+n+1=c0si+1+c1si+2+...+cl-1si+l+clsi+l+1+...+cn-1si+n, 当第l触发器阻塞时,该序列改变为 因此它们的差别为 因此新的附加序列有以下的初始状态结论是每个阻塞生成新的序列Sjam(i)(x)(移位到阻塞发生时的时间)。因此如果在时间i发生阻塞,则LFSR的输出为S(x)+xiSjam(i)(x)。结果得到根据LFSR的初始状态计算的并依赖于收缩序列的阻塞LFSR的输出。因此阻塞LFSR的输出将具有以下形式 其中i以及因此Sjam(i)(x)的初始状态依赖于收缩序列{σi}i≥0。回想当且仅当σi=0时在时间i发生堵塞(也即Sjam(i)(x)存在)。
考虑阻塞LFSR的内部状态序列{Si}i≥0,并且考虑(8)和(13),注意到
内部状态改变的方式(15)导致下文将描述的广义化。
从收缩LFSM的正式定义开始。
定义4.假设具有收缩序列{σi}i≥0。假设内部状态长度为n。考虑两个LFSM,其具有相应的n×n矩阵M和M′,具有本原特征多项式。如果LFSM具有共同的内部状态并且通过依赖于收缩序列而应用LFSM中的一个来计算下一状态,则称所述LFSM为收缩的。
图7示出了根据本发明范例实施例的收缩线性有限状态机(LFSM)。收缩LFSM包括类似LFSR的寄存器700,其中输入并非由一个多项式确定,而是由使用两个多项式的1比特多路复用器701、702、703确定。加密LFSR控制选择哪个多项式。
假设收缩LFSM的内部状态序列为并使收缩序列为则{V(i)}j≥0下面的关系式成 {σi}j≥0立
因此, 其中序列{σi}j=ii+k包括i1个0,随后为i2个1、i3个0、等等,并以il个1结束。基于这些关系可以证明下面的定理。
定理2.假设(秘密的)收缩序列具有周期TD。假设收缩LFSM具有长度为n的内部状态v。那么收缩LFSM的每个的输出序列vi(0≤i≤n-1)具有周期T=cTD,其中c为1≤c≤2n-1的常数,并且线性复杂度L=nTD。
证明 假设收缩序列包{σj}j=0TD括i1个0,随后为i2个1、i3个0、等等,并以il个1结束。定义矩阵 则 对于v(iTD)+j和v(j)(对于0≤j≤TD)使用相应的矩阵M″可以得出类似的关系。由这些关系得出输出序列包括TD个子序列的结论,证明了该定理。
为使M″具有最大长度(也即c=2n-1),在对收缩序列没有任何要求的情况下,M和M″应该满足哪些条件仍是未决的问题,。
推论1.假设(秘密的)收缩序列{σi}i≥0具有周期TD。攻击者需要收缩LFSM的2L=2nTD个输出比特,以恢复初始状态和收缩序列。
证明通过将Berlekamp-Massey算法应用于每个长度为2n的子序列,攻击者能够恢复生成该子序列的相应的LFSR。因此,攻击者获得初始状态,并使用来自“J.Hong,D.Lee,S.Lee,P.Sarkar.Vulnerability of nonlinear filter generators based on linear finite statemachine,FSE′04,LNCS3017,2004,pp.193-209”的结果来计算矩阵M″。然后通过对所有TD个子序列进行检查,他能够恢复收缩序列。
当使用数个收缩序列来控制内部状态的计算方式时,将收缩LFSM的思想广义化到数个(多于2)LFSM是简单直接的。
注意,阻塞LFSR并非收缩LFSR。尽管有两个由矩阵L和L′定义的LFSR(LFSM),第二个矩阵L′并非具有最大长度。甚至更差的,它的行列式为0,因此从某个角度来说,序列成为全0,这是所不期望的。另一方面,阻塞LFSR类似于自收缩LFSR,也即,它如同依赖于收缩序列的两个不同的LFSR而行动。因此,这里使用阻塞LFSR具有的简单结构,构造基于收缩LFSR的自收缩线性LFSR。回到在等式(13)中对L′的定义,注意到,取决于(由(3)所定义的)本原多项式f(x)和在由1比特寄存器(也即l)替换的触发器的位置处,下面的矩阵可以具有最大长度
注意,L'和

的区别仅在于第l行中,其中将1加入到第(l+1)列中。现在可以定义自收缩LFSR如下 定义5.给定收缩序列。当认为LFSR是具有矩阵L和

(分别由(8)和(17)给出)的收缩LFSR时,具有本原多项式f(x)(由(3)给出)的LFSR称为自收缩LFSR。这在图8中示出。
图8示出了根据本发明范例实施例的自收缩LFSR,其示出了图1的独立电路(没有CRC级)的替代,其中收缩流800由加密LFSR确定。
注意,要求两个矩阵L和

具有本原特征多项式。因此,对于自收缩

,定理2和推论1也成立。
消息认证码 首先提供单向哈希函数(OWHF,One-way hash function)和抗冲突哈希函数(CRHF,Collision resistant hash function)的非正式定义。OWHF是公共函数h,其具有任意长度的变量X和固定长度的输出h(X),并满足以下条件给定h和X,“容易”计算h(X),但是给定在h的象(image)中的Y,“难以”找到满足h(X)=Y的X,并且给定X和h(X),“难以”找到满足h(X)=h(X′)的X′。CRHF是额外还抗冲突的OWHF,这意味着“难以”找到哈希运算为相同输出的两个不同的变量。记住在“理想的安全”的情况下,生成(第二)原象需要2n次运算,而生成冲突需要2n/2次运算(n为哈希长度)。OWHF和CRHF也称为弱单向哈希函数和强单向哈希函数。
MAC是接受两个变量的函数h。该函数是公众所知的,第一变量X(文本)也是公众所知的并且可具有任意长度,第二变量K(密钥)是唯一的秘密并且具有固定的长度,该函数的输出具有固定的长度。对不知道秘密密钥K的人而言,MAC应为单向函数并且是抗冲突的。而且当攻击者已经选择较大的变量{Xi}集合并且已经得到相应的{Xi,h(XiK)}对的集合时,对任何X′≠X,必然“难以”确定密钥K或者计算h(X′,K)的。最后一个称作自适应选择明文攻击。假设密钥的长度表示为n,MAC的标签(tag)的长度表示为s。回想具有安全参数n和s的MAC应提供对复杂度为O(2min(n,s))的可能攻击的抵抗。
根据本发明范例实施例,公开了消息认证码的一般设计。与基于具有固定输入大小的压缩函数迭代的标准方法相反,提出了更适合于流的构建MAC的不同的方法。
考虑长度为n的自收缩LFSR,其特征本原多项式为f(x),伴随矩阵为L和L′。还给定收缩序列{σi}i≥0。如上文所述,这样的自收缩LFSR的输出序列为 其中

为(无阻塞的)LFSR的通常输出。回想S3jam(i)(x)在时间i由LFSR唯一确定的。如上文在“连续馈送LFSR”中所述的,连续馈送该LFSR。假设具有以下的输入序列(参见(10)) 其中S1(j)(x)是次数为n-1的多项式。则如上文在“连续馈送LFSR”中所述的第二种情况,得到输出序列(参见(12)) 回想S2(j)(x)是由相应的初始状态S1(j)(x)所唯一确定的。现在将(18)和(20)放在一起,得到当用序列S1,(x)连续地馈送时,自收缩LFSR生成 其中S2(j)(x)是由相应的初始状态S1(j)(x)所唯一确定的,并且S4jam(i)(x)是由LFSR在时间i的状态所唯一确定。回想在时间i发生阻塞(也即S4jam(i)(x)存在),并且仅当σi=0时,(21)也能重写为如下 注意,如果将连续馈送自收缩LFSR和收缩序列应用于两个输入序列如S′1(x)和S′1(x),并且生成相应的两个输出序列(表示为S′4(x)和S″4(x)),则由于计算是线性的,输出序列S′4(x)+S″4(x)与输入序列S′1(x)+S″1(x)相对应。
引理3.假设(秘密的)收缩序列{σi}i≥0具有周期TD。考虑长度为n的连续馈送自收缩LFSR。该LFSR的输入序列表示为,输出序列表示为S(x)。则攻击者需要P(x)的2nTD个连续输入比特以及其来自S(x)的相应的输出比特,以恢复收缩序列。收缩序列的获知允许攻击者进一步根据S(x)计算整个序列P(x)。
如上文所述地考虑长度为n的连续馈送自收缩LFSR。假设收缩序列为{σi}i≥0,输入序列为S1(x)。回想连续馈送自收缩LFSR具有长度为n的内部状态。假设f为具有r≤n个输入的非线性函数。按照标准的方法(参见上文的“非线性滤波生成器”部分),通过将LFSR的级(抽头)作为函数的输入,将函数f应用于LFSR的内部状态。以这种方法,标准的LFSR输出S4(x)(22)变换为新的序列。将这种变换表示如下 S5(x)←fS4(x) (23) 注意,通过应用非线性函数f(x),达到两个目的首先,破坏输入和输出之间的线性依赖关系;其次,新的序列S5(x)与S4(x)的周期相同,但是其线性复杂度提高了。布尔函数f的算术次数表示为deg(f)。注意,f的非线性性暗示deg(f)≥2。强调函数f也应该具有在上述的“非线性滤波生成器”部分中列举的多种其它特性。因此能够改进引理3。
定理3.假设(秘密的)收缩序列{σi}i≥0具有周期TD。考虑具有非线性滤波函数f的、长度为n的连续馈送自收缩LFSR。LFSR的输入序列表示为P(x),f生成的输出序列表示为S(x)。则攻击者需要P(x)的至少个连续输入比特及来自S(x)的相应的输出比特,以恢复收缩序列。对收缩序列的获知允许攻击者根据S(x)进一步计算整个序列P(x)。
图9示出了根据本发明范例实施例的SN-MAC。
将介绍包括图9中描述的以下构建块的SN-MAC算法-两个次数为3的本原多项式f3(x)和

,其定义自收缩LFSR900(也即具有相应的伴随矩阵L和

)。
-次数为n1的本原多项式f1(x),其定义生成加密序列的自收缩生成器901。
-次数为n2的本原多项式f2(x),其定义生成收缩序列{σi}i≥0904的LFSR。
-次数为s的不可约分的多项式g(x),其定义CRC902。
-具有期望的特性903的非线性(滤波)函数f(x)。
SN-MAC具有长度n=n1+n2的密码并生成长度为s的抽头,也就是说,它是具有安全参数n和s的MAC。SN-MAC是用于MAC算法的一般性框架而非固定的结构。因此我们将不固定这个方案的任何参数,允许用户选择最适合于他的应用的参数。SN-MAC的核心是具有非线性滤波函数的连续馈送自收缩LFSR(参见上述的“将非线性滤波器应用于连续馈送自收缩LFSR”部分)。进一步将其称为混合引擎。SN-MAC算法可如下描述 1.假设明文表示为特定次数的多项式P(x)。要求明文具有最小长度2s-2n3。
2.向明文添加长度为2n3的固定前缀(例如0)。加垫后的明文表示为PP(x),假设它为次数为m的多项式。
3.通过将加垫后的明文PP(x)与自收缩生成器所生成的加密序列进行异或,对加垫后的明文PP(x)加密。加密后的文本表示为S1(x)。
4.S1(x)为混合引擎的输入序列(参见(19))。
5.针对混合引擎的收缩序列{σi}i≥0由具有特征本原多项式f2(x)的LFSR生成。
6.混合引擎的输出序列表示为f2(x)(参见(2))。
7.最后的步骤是根据S5(x)计算CRC值(基于g(x))。该长度为s的CRC值是MAC的输出,也即其抽头。
现在已经解释了根据本发明范例实施例的一些设计选择。注意,每个阻塞将区别传播到明文的结束,因此从攻击者的观点来看,如果他改变明文的最末(数个)比特,则有更高的成功可能性。为了避免这种攻击,需要向明文加垫固定的后缀。
由于加垫后的明文PP(x)是次数为m的多项式,则相应的输出S5(x)也是次数为m的多项式。回想对于给定的S5(x)和g(x),存在2m-s个满足(9)的多项式,参见引理1。因此,要求加垫后的明文具有长度m≥2s,以对于给定的抽头,具有至少2s个相应的不同(对于S5(x)的)选择。
注意,生成收缩序列的LFSR具有周期因此从定理3可得出混合引擎输出序列的线性复杂度为至少O(2n3(2n2-1))。另一方面,自收缩生成器生成的加密序列具有周期2n1-1和线性复杂度O2n1-1。由于两种密钥子序列(加密和收缩)具有互质的周期,所以密钥序列的周期为而且,为了得到密钥,也就是说,为了破坏混合引擎和自收缩生成器,攻击者需要相应的输入/输出对(也即PP(x)/S5(x))的至少 个比特。注意,在这个计算中,使用来自引理3的结果而非来自定理3的更强结果。
由于SN-MAC是面向流的MAC算法,当处理特定量的信息时,使用与流密码器相同的方法来改变密钥。基于上述的计算,当处理2n-2比特的信息时,需要替换当前的SN-MAC密钥。注意,后者并非暗示着只允许每个密钥一个MAC,而是如同流密码器所作的,可以加密(计算MAC标签)数次而不重置密钥序列。应该强调,允许以一个密钥处理的信息等于密钥序列周期,并且已经示出了它是攻击者为揭示密钥所需要的最小量的信息。
对于基于类似块密码器或者专用哈希函数的原语或者基于哈希范例的算法,经常获得对MAC算法的安全性的严格证明。提出的算法是特别针对流而设计的,因此它不依赖于底层压缩函数的标准方法。将单向哈希函数/抗冲突哈希函数的定义扩展到对任意长度的输入计算同样长度的输出(而非固定长度的输出)的函数,并且将这样的函数称为具有任意长度的单向哈希函数/抗冲突哈希函数。将SN-MAC算法示意性地表示为 F:PP(x)→S5(x)(24) G:S5->标签 换句话说,将不包括最后步骤(CRC计算)的SN-MAC作为函数F,对于给定的(任意长度的)输入PP(x),函数F计算具有同样长度的S5(x)的输出。类似地将最后步骤定义为函数G,其对任意长度的输入生成固定长度的输出。因此,如同所示出的,(具有固定密钥的)函数F为具有任意长度的单向哈希函数。对F也是具有任意长度的抗冲突哈希函数的证明是正在进行中的工作。有趣的未决问题是当给定任意长度的CRHF F时,怎样选择G,使得G或F的组成是CRHF。选择G为检错码,以达到这个目的。
因此,根据本发明范例实施例,公开了消息认证码的新的设计SN-MAC,以向高度受限设备提供足够的安全级别,并且将与流密码器一起使用。它是针对无电源设备的硬件优化的MAC算法。将单向(抗冲突)哈希函数的定义扩展为具有任意长度的函数。此外,公开了数个新的用于对称加密方案的具有独立效果的构建块。
因此,公开了以下结构; A.图1的独立电路减去最后的CRC级(带阻塞的可加载LFSR,由另一LFSR加密)。该电路的输出不能视为“照原样(as is)”,而是生成消息认证码的整个电路所需要的基本信息。
B.图1的独立电路,包括CRC电路3。
C.根据(A)的电路,使用与用于生成有效的查找表和路由算法的哈希函数相同的哈希函数。
D.根据(A)的电路,使用两个加密LFSR1、4(参见图2)。
E.根据(A)的两个电路1000、1100(如图4所描述的),其中输入300、100、200都来自独立的加密LFSR。
F.根据(A)的电路的替代(如图7所描述的),通过一个类似LFSR的寄存器700实现,其中输入并非由一个多项式确定,而是由使用两个多项式的1比特多路复用器701、702、703决定。加密LFSR控制选择哪个多项式。
G.根据(A)的电路的替代,在图8中实现,其中收缩流800由加密LFSR确定。
H.如图9所描述的全部电路。
I.如图9所描述的电路,不包括伪随机数生成器901和相关的明文加密异或。
J.一旦明文全部馈送至电路A(或其替代D、F、G之一),将A中的LFSR的最终状态作为下一级的输入。使用该状态作为大小与电路A相同的SSG(参见上述的“自收缩生成器”)的初始状态。运行自收缩生成器,直到获得具有初始状态大小的输出(例如对于64比特的LFSR的64比特的输出)。该输出为最终的MAC。
图5示出了根据本发明的用于使用生成器生成消息认证码的方法的实施例的流程图。该方法开始于获得发送至混合引擎的明文数据的步骤S1。在步骤2,由伪随机数生成引擎执行伪随机数的生成,并且将伪随机数发送至混合引擎。在步骤S3中,包括LFSR的混合引擎基于线性反馈移位寄存器结构以及所生成的伪随机数,执行去线性化。然后在步骤S4,基于已去线性化的数据集合,生成校验和或检错码,然后在步骤5执行MAC的生成。
应该注意的是,明文数据的去线性化、伪随机数的生成以及检错码的计算可由不同的硬件部件执行。
图6描述了根据本发明的用于执行根据本发明方法范例实施例的处理设备的实施例。图6中所描述的设备包括与用于存储第一、第二或第三数据集合的存储器152连接的中央处理单元(CPU)151。数据处理器151可与数个输入/输出网络设备连接,例如键盘或者计算机断层照相装置。数据处理器151还可与用于显示信息或存储于处理器151中的明文的显示装置154连接,例如计算机监视器。操作者或用户可通过键盘155和/或其它未在图6中描述的输出装置与处理器151交互。
而且,通过总线系统153,还可以将处理器151与例如用于接收编码数据流的接收站连接。
如上述所介绍的,本发明可以容易地用于实现以下通用领域中的抗篡改的通信 -需要非常有效的电源管理的系统,例如总是开启的独立医疗设备; -最大通信速度极为重要的系统,例如在因特网的主干中操作的超高速路由器。
此外,本发明可用于优化需要在运行时对其外部存储状态的进行严格完整性检查的系统,例如在外部RAM中存储工作数据的安全微处理器。
而且,本发明可以有利地应用于 -嵌入式设备中固件和操作系统的认证; -开放移动联盟数字版权管理(OMA DRM)。
应该注意的是,术语“包括”并非排除其它元件或步骤,冠词“一”并非排除多个,并且单个处理器或系统可以实现权利要求中描述的数个装置或单元的功能。此外,可以组合与不同的实施例相关的的元件。
还应该注意的是,权利要求中的任何附图标记不应解释为对权利要求范围的限制。
权利要求
1.一种用于生成消息认证码的生成器,所述生成器包括
第一电路(2),用于执行对第一数据集合的去线性化,以产生第二数据集合;
其中第一数据集合包括原始码;以及
所述去线性化基于线性反馈移位寄存器结构和伪随机流。
2.如权利要求1所述的生成器,还包括
第二电路(3),用于执行第二数据集合的检错码的生成,以产生第三数据集合;
其中第一电路(2)包括第一线性反馈移位寄存器;以及
第一电路(2)与第二电路(3)不同。
3.如权利要求1所述的生成器,其中第一电路(2)包括
至少一个低权值级;
至少一个高权值级;
其中第一数据集合的所述去线性化包括生成与第一数据集合进行异或的、第一数据集合的任意延迟的混合副本;
所述至少一个低权值级用于确保第一数据集合的每个比特的结果传播通过第一电路(2)的所有后续状态;
按照伪随机数序列阻塞所述至少一个高权值级;以及
所述至少一个高权值级由伪随机数序列驱动,并生成所述至少一个低权值级的状态的任意延迟逻辑子序列。
4.如权利要求1所述的生成器,还包括
第四电路(1),包括用于执行第一伪随机数的生成的第一伪随机数生成引擎;
其中第四电路(1)用于向第一电路提供所生成的第一伪随机数。
5.如权利要求4所述的生成器,
其中伪随机数生成引擎是选自由至少一个第二线性反馈移位寄存器的组合、以计数器形式操作的第一块密码器、以及以输出反馈模式操作的第二块密码器组成的组。
6.如权利要求5所述的生成器,
其中所述至少一个第二线性反馈移位寄存器的组合的初始状态是随机选择的,并且不重用于针对多于一个的消息来生成消息认证码;
所述初始状态用于执行伪随机数的生成。
7.如权利要求2所述的生成器,
其中第二电路(3)包括循环冗余校验电路;
检错码的生成基于由第二电路执行的循环冗余校验结构。
8.如权利要求2所述的生成器,
其中第二电路(3)是选自由循环冗余校验电路、密码消息检测码函数电路、以及同余生成器组成的组。
9.如权利要求2所述的生成器,
其中第二电路(3)是选自由用于执行对数据的有效索引的哈希函数和用于执行对联网数据集合的有效路由的哈希函数所组成的组。
10.如权利要求2所述的生成器,
其中通过提取第一电路(2)的最终状态、将所述最终状态用作自收缩生成器电路的初始状态、并操作自收缩生成器电路直到获得期望大小的输出,来实现第二电路(3)。
11.如权利要求2所述的生成器,
其中通过使用弹性非线性函数对第一电路(2)的状态进行采样、然后将采样结果馈送至循环冗余校验结构,来实现第二电路(3)。
12.如权利要求2所述的生成器,
其中通过使用弹性非线性函数对第一电路(2)的状态进行采样、然后将采样结果馈送至选自由用于执行对数据的有效索引的哈希函数和用于执行对联网数据集合的有效路由的哈希函数所组成的组中的函数,来实现第二电路(3)。
13.如权利要求1所述的生成器,
其中,在执行去线性化之前,向第一数据集合加垫后缀和前缀中的至少一个。
14.如权利要求4所述的生成器,还包括
第五电路(4),包括用于执行第二伪随机数的生成(42,200)的第二伪随机数生成引擎,;
第五电路用于将所生成的第二伪随机数提供给第一电路(2)。
15.如权利要求4所述的生成器,还包括
第三伪随机数生成引擎,用于执行第三伪随机数的生成(300);
其中第一电路(2)包括第一混合引擎(1000)和第二混合引擎(1100)。
16.如权利要求4所述的生成器,还包括1比特多路复用器(701,702,703);
其中第一电路包括先入先出寄存器(700);
所述1比特多路复用器(701,702,703)用于使用第一和第二多项式确定先入先出寄存器(700)的输入;
第一伪随机数生成引擎用于控制对第一和第二多项式的选择。
17.如权利要求16所述的生成器,
其中通过提取第一电路(2)的最终状态、将所述最终状态用作自收缩生成器的初始状态、并操作自收缩生成器电路直到获得期望大小的输出,来实现第二电路(3)。
18.如权利要求16所述的生成器,
其中通过使用弹性非线性函数对第一电路(2)的状态进行采样、然后将采样结果馈送至循环冗余校验结构,来实现第二电路(3)。
19.如权利要求16所述的生成器,
其中通过使用弹性非线性函数对第一电路(2)的状态进行采样、然后将采样结果馈送至选自由用于执行对数据的有效索引的哈希函数和用于执行对联网数据集合的有效路由的哈希函数所组成的组中的函数,来实现第二电路(3)。
20.如权利要求4所述的生成器,
其中第一伪随机数生成引擎用于确定收缩流。
21.一种用于生成消息认证码的方法,所述方法包括以下步骤
由第一电路(2)执行对第一数据集合的去线性化,以产生第二数据集合;
其中第一数据集合包括原始码;
所述去线性化基于线性反馈移位寄存器结构和伪随机流。
22.如权利要求21所述的方法,还包括以下步骤
由第二电路(3)执行第二数据集合的检错码的生成,以产生第三数据集合;
其中第一电路(2)包括第一线性反馈移位寄存器;
第一电路(2)与第二电路(3)不同。
23.如权利要求21所述的方法,还包括以下步骤
由包括伪随机数生成引擎的第四电路(1)执行伪随机数的生成;
将所生成的伪随机数提供给第一电路(2)。
24.如权利要求21所述的方法,
其中通过对第一电路的状态执行非线性函数、并将结果馈送至循环冗余校验电路,来实现第二电路。
25.如权利要求21所述的方法,
其中通过对第一电路的状态执行非线性函数、并将结果馈送至选自由用于执行对数据的有效索引的哈希函数和用于执行对联网数据集合的有效路由的哈希函数所组成的组中的函数,来实现第二电路。
26.如权利要求21所述的方法,
其中通过提取第一电路的状态、将所述状态用作自收缩生成器电路的初始状态、并操作自收缩生成器电路直到获得期望大小的输出,来实现第二电路。
27.一种用于生成消息认证码的程序代码,用于在由处理器(151)执行时执行以下步骤
由第一电路(2)执行第一数据集合的去线性化,以产生第二数据集合;
其中第一数据集合包括原始码;
所述去线性化基于线性反馈移位寄存器结构和伪随机流。
28.一种计算机可读介质,其中存储有用于生成消息认证码的计算机程序,当由处理器(151)执行时,所述计算机程序执行以下步骤
由第一电路(2)执行第一数据集合的去线性化,以产生第二数据集合;
其中第一数据集合包括原始码;
所述去线性化基于线性反馈移位寄存器结构和伪随机流。
全文摘要
为了实时地处理消息,当前MAC算法对系统性能的要求很高。根据本发明的典型实施例,提供了硬件实现的用于生成MAC的生成器,从而有效地改善了对实时地处理消息所需的硬件性能要求。该引擎基于用于生成安全MAC的线性反馈移位寄存器。
文档编号H04L9/32GK101147354SQ200680006532
公开日2008年3月19日 申请日期2006年2月24日 优先权日2005年3月1日
发明者马克·沃克莱尔, 雅维耶·塞雷特阿维拉, 韦茨斯拉夫·尼科夫 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1