用于加密/解密消息的块加密方法以及实现该方法的密码设备与流程

文档序号:11637076阅读:391来源:国知局
用于加密/解密消息的块加密方法以及实现该方法的密码设备与流程

本发明涉及消息加密领域,利用块密码模式的运算用于认证加密(ae),以及利用相反模式的运算进行消息解密。更具体地,本发明涉及认证密码方案,并且尤其涉及所谓计数器密码反馈(ccfb)方案的改进。在变型例中,本发明也包括利用相关联的数据对于认证加密方案(aead)的扩展,尤其涉及ccfb+h方案的改进。最后,本发明也涉及利用相同方案的相反密码运算。



背景技术:

当敏感消息必须要从第一实体发送到第二实体时,保护消息的私密性及其完整性/真实性是普遍的。过去,因为考虑到,通常通过使用消息认证码(mac)或数字签名进行处理的完整性保护,是应当通过完全不同的方式来实现的目的,因此这两个安全目的是分开进行处理的。

在观察到利用分开的认证模式来实现保密模式是困难且易于出错之后,推荐的是提供将保密性和完整性/真实性组合为单个密码方案的运算模式。操作模式能够被视为用于增强加密算法效果的技术,尤其是基于对称加密方案的任何算法。认证加密(ae)方案被设计为以单个紧凑模式的运算来同时保护被处理消息的私密性和完整性/真实性。作为示例,当供应商想要向客户发送敏感信息时,需要数据私密性以确保信息保持机密。另外,进一步需要完整性和真实性以确保已发送信息的主体确实是前述供应商,并且信息在传送期间未被修改。

ae模式能够根据它需要在数据上通过的次数来进行分类。一些ae模式在数据上只使用一次通过,而其他的使用两次通过。单次通过模式在单个处理消息之后提供认证加密。两次通过模式在两个阶段处理数据(加密和认证仍使用一个密钥)。

当消息通过这样的“集成”认证-加密方案进行加密时,密文可以与附加信息一同进行发送。这意味着能够将未加密报头附加到你的加密消息。这样的分组报头(明文报头受限于明文消息)需要与消息一同进行认证,但是不需要被加密。实际上,通常在网络分组中,有效载荷应当被加密和认证,但是报头应当只被认证(即,它应当保持不加密)。原因是,路由器必须能够读取分组报头,从而得知如何适当地按路线发送它们。一些运算模式尤其适合有效地认证与明文消息相关联的数据。这样的模式被称为具有相关联数据的认证加密(aead)。它们允许相关联的数据作为输入包括在它们的方案中。

ae和aead的缺点之一在于,它们易于遭受一阶微分功耗分析(dpa)的攻击。功耗分析是一种边信道攻击(非侵入式攻击)的形式,其中黑客研究密码设备的功耗。这样的设备能够是指微处理器卡、徽章、密钥、印刷电路板的集成电路芯片、解扰器模块内的安全模块或者能够仅以软件形式实施的功能。通过研究电路的电流和电压输入和输入(或者设备的计时或者甚至电磁发射),能够发现秘密信息,诸如正常设备运算期间所使用的密码密钥。实际上,一些运算需要更多的功耗。因此,通过使用数字示波器和常规的个人计算机,变化和尖峰的分析能够为解码分析员带来有价值的信息。

简单功率分析(spa)通过设备功耗的直接观察来复原密钥,而dpa攻击采用统计技术以从多个功耗测量提取密钥信息。dpa是高级形式的功耗分析,其允许通过统计地分析从多个密码运算(通常来自数千次运算)收集到的数据来计算密码计算内的中间值。dpa攻击具有信号处理和错误修正性质,其能够从利用spa待分析的包括过多噪声的测量提取秘密。使用dpa攻击,黑客能够通过分析来自脆弱密码系统上所执行的多个密码运算的功耗测量来获得密钥。

为了解决这种边信道攻击,开发了对策。这些对策中的一些包括密码算法的修改,例如通过使密码运算存活的数学关系对于真实值相关的数据执行密码运算。一种方法包括随机化密码系统所操作的数据同时仍产生正确结果的遮蔽参数。将不可预料的信息并入到中间值之中,从而减小功率损耗测量(边信道)与原始中间值之间的相关性。根据另一方法,可以通过有意地减小信号的振幅从而减低信噪比(s/n)来掩盖原始信号。在变型例中,也能够将振幅或者暂时噪声添加到功耗测量来降低s/n比。其他的对策可以包含硬件修改,例如通过改变芯片的内部时钟频率从而使电信号去同步化,或者可以包含密码协议修改,例如通过在密码系统的使用期内持续刷新和更新秘密。

然而,由于即使功耗中的微小变化也能够导致可利用的弱点,防御dpa攻击是非常具有挑战性的。另外,由于专利所赋予的保护,这样的对策通常不是免费获取的。因此,为了至少部分克服这些缺陷,需要提供新的ae方案。



技术实现要素:

代替提供新的对策以保护密码系统防御dpa攻击,本发明提出了改进的运算模式,同时考虑到dpa攻击。为此,本发明涉及基于ccfb方案的运算模式,其更适于缓解dpa攻击。更具体地,本发明提供了一种使用循环重复的块加密方法,用于从明文消息提供密文消息和用于认证所述密文消息的全局标签。明文消息被转换(特别是分开,以及填充(如有))为均具有相同比特长度的多个有序的明文块。每个密文块在循环期间以有序的方式作为当前密文块被连续地进行处理。该方法包括如下动作:

-将第一数据加载在寄存器中,

-通过执行以下步骤来运行该循环:

-第一步,用于将输入数据输入到块加密算法,这样的输入数据包括寄存器的数据和可重复数据,例如计数器数据或任何其他的可重复数据系列,

-第二步,用于在块加密算法内,通过使用单个密钥使输入数据加密来计算密码电文,该密码电文包括第一区段和第二区段,后者被定义为认证局域标签,

-第三步,通过使用第一区段、当前明文块以及第二区段作为运算数来执行第一运算来计算密文块,

-只要该循环中上述明文块未全部经过处理,就在通过重新启动所述第一步来运行新循环之前,将最后计算出的密文块重新加载到寄存器并且将更新函数(例如,递增函数)施加到可重现数据,

-通过将所有循环提供的密文块按顺序进行链接来确定密文消息,优选地采用上述的有序方式,然后

-在只执行所述循环的前两个步骤之前,将最后计算的密文块重新加载到寄存器,并且将更新函数施加到可重现数据,然后

-利用所有计算出的认证局域标签作为运算数,通过第二运算来计算全局标签。

从以上方法,应当注意的是,本发明的新运算模式基于计数器密码反馈(ccfb)方案。严格来说,ccfb方案是两次通过(two-pass)ae方案,其结构与单次通过方案极其相似。所公开的创新方法优选地采用两个运算模式的不寻常组合,也就是计数器模式(ctr)和密码反馈(cfb)模式,用于提供加密和认证两者。根据该实施例,源于密码电文的第二区段的计算的认证局域标签不仅在二次通过期间用于计算全局标签,而且也在第一通过期间有利地用于计算每个密文块。因此,提出的是,能够实现对于安全计算系统的运行的改进,包括但不限于防御已知的攻击。

另外的实施例描述用于实现上述方法的设备。优选地,这些设备中的一个设备特别地专用于加密消息,而其他设备专用于相反过程。假设它们包括相同的组件,这些设备都非常类似,并且将在以下详细的说明中详细地进行描述。

由于与独立的方法权利要求的主题相一致的密码方法,并且由于与其他独立的设备权利要求的主题相一致的设备,实现了本发明的目的和优点。

其他的优点和实施例将在以下的详细说明中呈现。

附图说明

通过附图将更好地理解本发明,其中:

图1示意性示出明文消息到密文消息的转换过程,

图2是示出本发明的密码方法的示例实施例的流程图,尤其是加密阶段,

图3示出根据基于图2的方法的部分说明的另一实施例,

图4与图2完全相似,但涉及解密阶段,

图5示出用于实施本发明的密码方法的任何实施例的设备的实施例,尤其用于设施本发明的任何阶段(加密或解密)的设备。

具体实施方式

参考图1,后部示意性示出本发明所处理的带有附加输入数据20的明文信息(m)10、带有所述输入数据20的明文信息10的主要转换步骤,以及从该过程输出的带有补充数据52的密文消息(c)50。可选地,明文消息10能够具有关联数据(ad)15,关联数据(ad)15通常涉及明文消息10的报头。

根据优选实施例,上述输入数据20包括第一数据21,例如初始化向量(iv),以及能够初始化(重置)为任何默认值的可重现数据22。该可重现数据优选地是计数器数据(cdt),也就是诸如计数器所提供的值的数据。然而,由于不需要将这样的数据严格地限制为计数器所提供的数据,所以其被称为所谓的可重现数据。术语“可重现”排除任何的随机数据,除非在使用前进行预先定义。因此,应当理解的是,上述可重现数据是指如下的任何数据:诸如由于可重现过程或函数(可视为更新函数或恢复函数)能够重现的值。例如,这样的过程或功能可以涉及哈希函数或施加到初始值的递增或递减函数。也可以是指以确定的顺序被连续作为可重复数据的随机或伪随机数的预定义列或系列。优选地,为了避免任何重复,所有这些数字都不相同。在本描述中,根据优选实施例使用术语“计数器数据”,即作为非限制性示例。全局标签52涉及标签,尤其是从多个局域标签确定的全局标签(tg),随后进一步说明。全局标签52用作认证数据,用于在过程结束时认证密文消息50。

如图1所示,明文消息10被转换为多个明文块(m1,m2,m3,…mi)。在该图中,这些明文块的每个都由共同的附图标记11来表示。用于将明文块消息10转换为多个明文块11所使用的转换过程主要意图将明文消息10分为具有相同比特长度的块。在明文消息10具有不是明文块的比特数量的倍数的比特长度的情况下,转换过程将进一步包括利用至少一个默认比特(例如,例如等于零的比特)来填充两端的明文块中的至少一个明文块(例如,最后的明文块和/或第一个)的步骤。填充步骤的目的是提供与其他块的比特长度相同的端部块。

明文块11必须以特定的顺序进行处理,以便在旨在解密密文消息的相反过程期间能够使用相同的顺序。因此,明文块11以有序的方式排列。可替换地,为了确定这一特定顺序,每个块被指定可识别的位置。由于这些块的顺序,将可以从密文消息50重建明文消息10。优选地,当将明文消息10分为块11时,后者未被混合在一起,而是保持它们被分开的顺序。保持这样的顺序能够通过例如将块的内容以及在消息10内的位置存储在记录中来实现。在变型例中,索引能够与每个块的内容相关联,所以由于其索引1,2,3,…i,能够获取任意块m1,m2,m3,…mi的适当位置。

然后,在本发明的循环r期间,本发明的这些明文块11被以有序的方式连续地处理为所谓的当前明文块。在每个循环结束时,获得与当前明文块11对应的密文块51。例如,图1中所示的明文块m1在该循环的输出端提供密文块c1。

每个循环也提供标签,尤其是同一循环输出的与相关的密文块51对应的局域标签32。允许计算密文块51的迭代组包括本发明的第一通过。在一个实施例中,第二通过旨在通过使用已经计算出的所有局域标签32来确定全局标签52。

通过将所有的密文块51组合在一起,尤其是进行链接从而根据上述有序的方式来形成链,来获得密文消息50,从而保持明文消息10内的块11与密文消息50内的对应块51之间的各自位置。假设关联数据15通常能够是消息10的报头,因此它保持未加密,仅仅是附加到密文消息50。在过程结束时,密文消息50、其关联数据15(如果有)以及全局标签52共同形成三个联合相关的实体。

现在将参考图2详细说明实现本发明的优选方法,图2示出通过多次迭代(it1,it2,it3,….iti),加密过程中所采取的动作和步骤。在一组步骤和行动结束时,这些迭代中的每一个提供一个密文块51。

第一动作是将第一数据21加载到寄存器23。优选地并且如图2所描述的实施例所示,第一迭代it1的第一数据21是能够通过任何随机或伪随机发生器来生成的初始化向量iv。下一个动作意图通过执行以下三个主要步骤来运行方法的循环。

该循环的第一步用于将输入数据20输入到块密文算法(e)35。该算法是能够参考des、idea、aes或任何其他块密文算法的一般的加密方案。输入数据20包括载入到寄存器23中的数据,即第一数据21和计数器数据(cdti)22。计数器数据22参考计数器(ctr)25所提供的值。该计数器由于被更新,也就是每次进行新的迭代itn时递增(或递减),可视为更新器(即,用于更新的单元)。因此,每一循环以新的计数器数据(cdt1,cdt2,…cdti,cdti+1)开始。计数器数据因此用作所谓的“现时(nonce)”,也就是“只用一次的数”。实际上,计数器所提供的每个值遍及所有的被处理的块11是唯一的。

在该循环的第二步骤期间,通过利用单个密钥(k)34加密输入数据20,密码电文30被计算然后从块密码算法35输出。该密码电文30包括第一区段(s1)31和第二区段32。后者定义为认证标签(tn),特别是作为认证第一区段31的局域标签。优选地,局域标签32存储于存储器中,直至已经计算出全局标签52,或者,在每个迭代期间逐渐确定全局标签的情况下,至少暂时地直至利用下一循环的下一个局域标签32来执行中间计算,

该循环的第三步骤是致力于计算当前明文块11的密文块51。为此,通过使用第一区段31、当前明文块11以及局域标签32作为运算数来执行第一运算41,来确定密文块51。因此,密文块51是对于这三个数据所执行的运算的结果。

假设该第一运算41使用三个运算数,则其以两个步骤执行,也就是利用第一运算数来执行第一子运算op1,然后利用第二运算数来执行第二子运算op12。通常,两个子运算op11、op12是逻辑运算(布尔代数),通常为可交换运算。再优选地,运算数中的至少一个是异或运算(xor运算)。

此外,由于异或子运算的可交换性,应当注意的是,在第一运算41内三个运算数能够以任意顺序进行处理。如图1中所示,当前明文块11通过第一子运算op11利用第一区段31进行处理,然后第一子运算的结果通过第二子运算op12利用局域标签32进行处理。因此,第二子运算op12提供密文块51并且终止第一迭代it1。

除了使用布尔运算,诸如异或运算,应当注意的是第二子运算op12能够基于能够混合用作输入的两个运算数的分布的任何其他函数,以便当这两个运算数中的一个未知时,无法计算出给定密文块51的另一运算数(即,针对给定的输出)。然而,函数必须明显保持可逆;否则解密将不可行。例如,如果加密阶段使用模加作为运算,那么在解密阶段将使用模减来代替模加。因此,解密阶段所执行的运算是加密阶段所执行的运算的逆运算。

虽然异或运算仍然是最自然的选择,但是应当注意的是,如果模除或模除用于解密阶段,模加或模乘也能够用于执行这样的运算。然而,由于这样的模运算可能发布其他的边通道攻击所能够使用的信息(例如,模加中的进位比特),所以它们不太适合。

只要所有的明文块11未完全被处理,在运行新的循环之前(即,在再次开始上述循环的第一步之前),寄存器23重新加载有密文块51(即,当前或最后计算的密文块51,如图2中所示),并且将更新函数(例如,递增函数)施加到计数器数据22。因此,第二迭代it2的第一数据21将对应于从第一迭代it1发出的密文块51,并且第二迭代的计数器数据cdt2将与施加到第一迭代it1的计数器数据cdt1的递增函数的结果对应。在本描述中,表述“递增函数”将用作“更新函数”的优选实施例。因此,应当理解的是,“递增函数”能够由任意的“更新函数”来代替。相似地,本说明中所提及的计数器25也能够视为如上所述的“更新器”。

当已经处理所有的明文块11时,寄存器23重新加载有最后计算出的密文块51,计数器的递增函数被施加到(当前)计数器数据cdti,如同先前的迭代。然而,为了从利用密钥34在块加密算法35内所处理的输入数据20(即,从ci和cdti+1)得到密码电文30,然后只执行循环的前两个步骤。相应地,这些动作不涉及整个迭代(如之前所进行),而应当视为部分迭代。从上一密码电文30,局域标签(ti+1)32然后用于通过第二运算(op2)42利用所有计算出的局域标签来计算全局标签52,也就是第一迭代it1时计算出的所有局域标签。应当注意的是,只使用本部分迭代的局域标签(第二区段32)。因此,第一区段31的确定仍然是可选的,但是通过被处理为单个数据的密码电文30的计算来隐式进行。

第二运算(opt)的结果提供全局标签52。该结果是与用于确定第一运算(op1)的结果相似的方式来计算的,也就是通过多个子运算(op21到op2i)。优选地,每个子运算使用相关迭代itn的局域标签tn和先前迭代itn-1中所确定的先前子运算的结果作为运算数。第二运算op2的本质(即,种类)与第一运算op1相似或相同。运算数用于确定全局标签52所采用的顺序亦然。从所有的局域标签确定全局标签52对应于第二通过模式的运算。

通过将所有的密文块51以特定的顺序组合(链接)在一起,来确定密文消息50,其中的特定顺序将在稍后描述的逆过程期间再次重新用于从密文消息50恢复密文消息10。例如,这样的顺序能够与明文块11被处理的顺序相同。在变型例中,为了识别处理密码块51的顺序,能够将索引指定给每个密码块51。

有利地,通过使用三个运算数而不是两个来执行第一运算op1,密文块51不是源于单个运算,而是源于两个连续的运算,也就是第一子运算op11和第二子运算op12。第一子运算使用三个运算数中的两个作为输入,并且第二子运算使用第三运算数和第一子运算的结果作为输入。为了通过在多次输入上运行块加密算法来在这样的过程上执行dpa攻击(例如,100’000次以观察100’000个能耗轨迹)的攻击者将无法获得基于前两个运算数所确定的中间输出。相反,他只能观察到第二子运算op12之后所提供的输出。因此,在能够分析第一子运算op11之前,他将首先需要攻击第二子运算。然而,第二子运算基于两个未知值;均是均匀分布且不相关的。因此,dpa不起作用,或者与现有技术的过程中的一个过程相比,它将至少更难以在本发明的主题上实施这样的攻击。

根据一个实施例,本方法进一步包括如下的预备步骤:用于恢复第一数据21(即,寄存器23内所加载的数据)和计数器数据22之间的共同比特长度。该预备步骤在第一数据21和计数器数据22不具有相同的比特长度的情况下执行。优选地,该预备步骤在将所述输入数据20输入到块加密算法35或算法35本身中之前进行。优选地,第一区段31和局域标签32具有相同的比特长度。如果没有,该方法进一步包括恢复这两个区段之间的相同比特长度的附加步骤(填充步骤)。再优选地,第一数据21(例如,iv)、计数器数据22、第一区段31以及第二区段32(局域标签)都具有相同的比特长度,也就是输入数据20的半比特长度。

根据图3中所示的一个实施例,第一数据21可以是利用明文的关联数据(ad)24作为运算数的初始运算(op0)43的结果。如该图中的示例所示,初始化向量iv可以用作初始操作43的第二运算数。关联数据24通常可以涉及明文消息10的报头。在此情况下,应当理解的是,报头不采用与消息本身相同的方式进行处理,但是它仍是消息的附属物。初始操作op0的本质与第一操作op1或第二操作op2的相似或相同。通常,关联数据被添加到初始化向量。

参考图4,其示出根据图2中所示的加密阶段所获得的密文消息50的解密阶段。假设用于加密明文消息10的运算模式涉及可逆加密过程,图4中所示的解密方法与图2的密码方法非常相似。

更具体地,图4示出利用循环重复的块解密方法,用于从密文消息50提供明文消息10和用于认证所述明文消息的全局标签52。密文消息50被转变为多个有序的密文块51;所有密文块51都具有相同的比特长度(这样的操作未示出在图4中但是与图1中所示相同)。更特别地,该比特长度与用于从明文消息10获得明文块11所限定的相同,其中的明文消息10是加密阶段期间该密文消息50的来源(图2)。如关于加密阶段所说明,如果存在,填充步骤也能够施加到端部块(第一块或最末块,取决于在相关的加密阶段进行填充的块)。循环期间每个密文块51以有序的方式作为当前密文块被连续地进行处理。特别地,该有序的方式允许保持明文消息10与密文消息50内的对应块51之间的相应位置。

一般说来,采取与加密阶段所执行的相同动作,也就是将第一数据21载入寄存器23,然后通过执行以下步骤来运行循环:

第一步骤,用于将输入数据20输入到块解密算法35中,该输入数据包括加载在寄存器23中的数据和计数器数据22。

第二步骤用于在块解密算法35内,通过利用单个密钥34(即,加密阶段所使用的相同的密钥k)解密输入数据20来计算第一输出30。该第一输出30包括第一区段31和第二区段32,后者被定义为认证局域标签。

第三步骤,用于通过使用第一区段31、当前密文块51和第二区段32(即,当前迭代所提供的局域标签)作为运算数执行第一运算(op1)41,来计算明文块11。因此,明文块11是对于这三个数据执行运算的结果。假设该第一运算41使用三个运算数,因此如关于加密阶段所说明分两步骤来执行。

应当注意的是,解密阶段所执行的操作(op1)41(图4)是加密阶段所执行的运算(op1)41的逆运算。另外,由于这些运算41的每个运算包括两个连续的子运算,也就是首先是op11,然后是op12,应当理解的是解密阶段所执行的第一子运算op11对应于加密阶段所执行的第二子运算op12的逆运算。相似地,解密阶段所执行的第二子运算op12对应于解密阶段首先执行的子运算op11的逆运算。

只要所有的明文块51尚未完全被处理,寄存器就在下一次迭代期间加载有当前明文块51(即,如图4中所示,最后计算的密文块51),并且通过计数器25将递增函数施加到先前迭代的计数器数据上,从而得到新的计数器数据22。在当前的新迭代中运行新循环的时候,通过再次开始本解密方法的第一步使用这个新的计数器数据22。特别地,递增函数与加密阶段所使用的相同的函数。另外,解密阶段期间作为起始值(即,通过第一迭代it1’)所使用的第一计数器数据(cdt1)与加密阶段期间作为起始值(通过第一迭代it1)所使用的相同。因此,加密阶段的第一计数器数据(cdt1)能够被发送到负责解密密文消息50的解密设备。通常,这样的计数器数据(cdt1)能够与密文消息50一起发送,例如在密文消息50的报头(未加密)。而且,在出于任何原因该数据应当重新发送到解密设备的情况下(例如,为了发送者与接收者之间的重新同步的目的),该计数器数据(cdt1)也能够至少暂时性地存储在加密设备中。关于第一数据21(iv)亦然。根据另一方式,初始计数器数据(cdt1)也应当设置为默认值(例如,能够将其设置为1),以便其不需要被发送。事实上,在第一迭代it1和it1’期间,相同的第一数据21必须加载在寄存器内。因此,第一数据21(iv)也能够以与第一计数器数据相同的方式进行发送,并且由于相同的原因也能够存储在加密设备内,或者能够设置为默认值而不需要发送。在变型例中,第一计数器数据(cdt1)、第一数据21(iv)以及其他数据可以变化,诸如密钥34(k)和/或计数器25的递增函数能够在初始化阶段在加密设备和解密设备之间至少分享一次。这样的初始化阶段也能够稍后进行重放,例如重置系统或进行更新。

如上所述,通过以相同的顺序来组合(链接)所有循环期间所获得的明文块11来确定明文消息10,从而获得加密阶段为了提供密文消息50最初所使用的明文消息。

然后,在只执行循环的前两步骤之前,寄存器23被重新加载有当前的密文块51(即,最后的迭代iti’期间所处理的最后密文块51),并且将递增函数再一次施加到最后的计数器数据22(与参考部分迭代的加密阶段所执行的相似)。从该最后的第一输出30,局域标签(ti+1)32然后用于通过第二运算(op2)计算全局标签52(tg),该第二运算(op2)使用所有计算出的认证局域标签32作为运算数。如关于加密阶段所述,源于第二运算op2的全局标签52是以用于确定第一运算(op1)的结果相似的方式来计算的,也就是通过多个子运算(op21到op2i)。在解密阶段期间能够施加加密阶段期间所提到的相同种类的运算和变型。

无论是加密阶段还是解密阶段,应当注意的是,一旦所有块11、51已经被进行处理,子操作(op21到op2i)不必进行运算。实际上,这些子操作能够逐步地进行计算,通过确定中间结果在每次迭代期间逐个地进行计算。该中间结果能够存储在存储器中,直至利用下一个迭代(或者过程结束的部分迭代)所提供的下一个局域标签(第二运算数)将该中间结果处理为运算数。相同的原理能够适用于从各个块11、51确定消息10、50。

此外,由于算法35的可逆性,应当注意的是,加密阶段所提及的块加密算法与解密阶段的块解密算法相同。而且,应当注意的是,算法35所提供的结果在解密阶段被定义为所谓的“第一输出”30。选择这样的用词而不是词语“密码电文(cryptogram)”,因为该输出应当被视为被解密数据(虽然,从技术上来说,算法35在所谓的第一输出和所谓的密码电文之间没有不同)。

根据一个实施例,块解密方法进一步包括如下的预备步骤:用于恢复寄存器23中所加载的第一数据21与计数器数据22之间的共同比特长度。该预备步骤在第一数据21和计数器数据22不具有相同的比特长度的情况下使用。这样的预备步骤在将输入数据20输入到块加密算法35之前进行。

如加密阶段所述,第一数据21能够是初始示例iv,尤其是与计数器22具有相同比特长度的单个块。

根据一个实施例,并且与图3中所示的相似,第一数据21能够是利用明文的关联数据24作为运算数的初始运算op0的结果。优选地,该初始运算op0和第一op1、第二运算op1、op2是异或逻辑运算。然而,如前所述,也能够使用其他种类的运算。

另外,应当注意的是,本解密方法的密文文本50能够进一步与认证数据相关联(特别是通过相关的块加密方法在加密阶段所获得的全局标签)。在这种情况下,本解密方法能够进一步包括如下步骤:用于确定该相关联的认证数据与通过解密方法的第二通过所确定的全局标签52相同。如果全局标签52不同于与密文消息50相关联的认证数据,后者将被宣告不真实。

虽然加密阶段和解密阶段各自呈现为加密方法和解密方法,本发明也能够涉及包括加密阶段和解密阶段两者的单个方法。

本发明也涉及用于实施本说明书中所公开的方法或实施例中的一个的密码设备60、60’。参考图1、2和5,第一密码设备60专用于利用循环重复来实施块加密方法,所述块加密方法用于从明文消息10提供密文消息50和用于认证该密文消息的全局标签52。为此,密码设备60包括以下组件:

-寄存器23,通常是存储器的形式(例如,存储器单元),用于接收第一数据21,

-更新器25,用于根据更新函数f来更新可重现数据22;例如,它可以是指用于根据递增函数(f)来递增计数器数据22的计数器,

-接口61,用于接收至少明文消息10,

-转换单元62,用于将明文消息10转换并且优选地存储为具有相同比特长度的多个顺序的明文块11(m1,m2,…mi)。

-处理单元64,用于在循环期间以有序的方式将每个明文块11作为当前明文块连续地进行处理,处理单元还包括寄存块加密算法35的密码单元65、以及包括单个密钥34(k)的存储器66。

每循环包括:

-第一步骤,用于将输入数据20输入(例如,如图5中所示通过处理单元64)到块加密算法35中,该输入数据20包括寄存器23的数据21和可重现数据(计数器数据22),

-第二步骤,用于在块加密算法35内,通过使用单个密钥34加密输入数据20来计算密码电文30;密码电文30包括第一区段31和第二区段32,后者被定义为认证局域标签并且存储在存储器中,例如在存储器66中,存储器66能够位于处理单元64之内或之外,

-第三步骤,用于通过使用第一区段31、当前密文块11和第二区段32(即,的局域标签)作为运算数执行第一运算op1,来计算明文块51,并且将其存储在诸如存储器66中。

只要所有的明文块11尚未完全被处理,在通过再次启动第一步骤来运行新的循环之前,处理单元64就进一步用于将当前密文块51重新加载到寄存器23(即,最后计算出的明文块51),并且使得计数器数据22递增(即,更新可重现数据)。

转换单元62进一步用于通过以有序的方式将所有循环的密文块51(c1,c2,…ci)链接来确定密文消息50,特别是前述以有序的的方式,从而保持密文消息10内的块11和密文消息50内的对应块51之间的相应关系。

处理单元64进一步用于,在只执行循环的前两个步骤之前,将最后计算的密文块51加载到寄存器23,并且为了使得递增,向计数器数据22施加递增函数(f),从而使其递增。然后,处理单元64用于通过第二操作op2来计算全局标签52,使用例如,来自存储器66的所有计算出的认证局域标签(32)作为运算数。

接口61(或者任何其他的接口)还用于输出密文消息50和全局标签52。

转换单元62所执行的转换运算可以涉及将明文消息10分成具有相等比特长度的块11,如果存在,在分开时将填充运算施加到两个端部的块11中的至少一个。

密码设备60能够进一步包括用于生成初始向量(iv)的发生器67(或伪发生器),所述发生器67能够用于实施根据本说明书中所公开的任何实施例的方法。这样的发生器(或其他的一个)也能够用于利用初始值来初始化计数器25,通常出于重置的目的。此外,应当注意的是,寄存器23、计数器25和发生器67(如果存在)可以位于处理单元64内。

当用作第一设备,特别是在发送者一侧,解密设备60通常意在用于加密明文消息10,然后通过作为第二设备,特别是在接收者一侧的解密设备60’进行解密。假设解密阶段对应于加密阶段的逆过程,形成加密设备的电子组件与解密设备的相同或相似。只有与解密设备的一些组件相关联的功能不同于加密设备。因此,本发明的解密设此后也将参考图5的组件进行描述。

因此,该第二设备涉及密码设备60’,用于利用循环重复来实施块解密方法,用于从密文消息50提供明文消息10和用于认证所述明文消息的全局标签52。该密码设备60’包括:

-寄存器23,通常是存储器的形式(例如,存储器单元),用于接收第一数据21,

-更新器25,用于根据更新函数f来更新可重现数据22;例如,它可以是指用于根据递增函数(f)来递增计数器数据22的计数器,

-接口61,用于接收至少明文消息50,

-转换单元62,用于将明文消息50转换并且优选地存储为具有相同比特长度的多个顺序的明文块11,

-处理单元64,用于在循环期间以有序的方式将每个明文块51作为当前明文块进行连续地处理,处理单元64还包括寄存块加密算法35的密码单元65、以及包括单个密钥34(k)的存储器66。

每循环包括:

-第一步骤,用于将输入数据20输入到块解密算法35中,该输入数据包括加载在寄存器23中的数据和可重现数据(计数器数据22),

-第二步骤,用于在块加密算法35内,通过使用单个密钥34处理输入数据20来计算第一输出30;第一输出30包括第一区段31和第二区段32,后者被定义为认证局域标签并且存储(至少暂时性)在存储器中,例如在存储器66,

-第三步骤,用于通过使用第一区段31、当前密文块51和第二区段32(即,局域标签)作为运算数执行第一运算op1,来计算明文块11,并且进行存储(诸如,在存储器66中)。

只要所有的密文块51尚未完全被处理,处理单元64就进一步用于将当前密文块51重新加载到寄存器23(即,最后计算出的明文块51),并且在通过再次启动第一步来运行新的循环之前,更新可重现数据(例如,利用计数器25的递增函数使得计数器数据22递增)。

转换单元62进一步用于通过按有序的方式将所有循环的密文块51链接来确定明文消息10,特别是前述按有序的方式,从而保持明文消息10内的块11和密文消息50内的对应块51之间的相应关系。

处理单元64进一步用于,在只执行循环的前两个步骤之前,将当前的密文块51(即,已处理的最后密文块)重新加载到寄存器23,并且将递增函数(f)施加到计数器数据22从而使其递增。然后,处理单元64用于通过第二操作op2来计算全局标签52,使用例如,来自存储器66的所有计算出的认证局域标签(32)作为运算数。

优选地,加密设备60’的处理单元64还用于检查全局标签52是否与同密文消息50一起提供的认证数据相同。这样的认证数据将通常是全局标签52,其在加密阶段通过密码设备60来确定。在(对于同一消息50)每个密码设备60、60’所提供的全局标签52之间存在差异的情况下,这意味着明文消息10(或密文消息50)不是真实的。因此,处理单元64能够采取适当的动作,例如其可以触发警报消息,中止明文消息10的发放和/或它可以发送作为报告数据的信息。

当然,接口61进一步用于当密文消息10已恢复时输出明文消息10。

应当注意的是,密码设备60的加密算法与密码设备60’的解密算法相同。实际上,这样的算法35能够用于加密,也用于解密。

此外,在每个迭代期间逐步地确定全局标签的事件中,为了确定全局标签52,存储器66(或其他的存储器)将用于存储事件中的所有局域标签32或中间结果。在一个实施例中,密文消息50或明文消息10也能够通过相同的方式来确定。

密码设备60、60’的存储器66能够是安全存储器。在一个实施例中,密码设备60、60’的组件可以包括在整体单元中,所以在不破坏整体单元的情况下,无法物理地访问各个组件,特别是至少敏感组件。

密钥34由密码设备60、60’用于加密和解密目的。

虽然已经参考特定的示例实施例描述本发公开文本的各个实施例,但是在不脱离这些实施例的更宽广范围的情况下,对于这些实施例可以做出各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。形成其一部分的附图通过说明而非限制的方式示出可以实践主题的具体实施例。所描述的各个实施例足够详细地描述,以使本领域技术人员能够实践本公开文本的教导。可以使用其他实施例以及从它们衍生的实施例,使得可以在不脱离本公开文本的范围的情况下做出结构化和逻辑的替换和改变。因此,详细的说明不应当被认为是限制性的,各个实施例的范围仅通过所附权利要求以及这样的权利要求有权的等同物的全部范围来进行限定。

发明主题的这样的实施例在此可以是指单独地或者共同地,通过术语“发明”仅是为了方便,而不是如果实际上所公开的不只一个,旨在将该申请的范围主动地限制在任何单个发明或者发明概念。因此,尽管这里已经示出和描述了具体实施例,但是应当理解的是,为实现相同目的而计算的任何布置可以代替所示的特定实施例。本公开旨在覆盖各种实施例的任何和所有修改或变化。上述实施例的组合以及本文中未具体描述的其他实施例对于本领域技术人员在阅读以上描述之后将是清楚的。

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