用于利用共享硬件生成密文和消息认证代码的方法和系统的制作方法

文档序号:7972673阅读:176来源:国知局
专利名称:用于利用共享硬件生成密文和消息认证代码的方法和系统的制作方法
技术领域
本发明的实施例一般涉及消息传输和认证加密,特别涉及一种用于利用共享硬件生成密文和消息认证代码的方法和系统。
背景技术
认证加密(或认证加密和关联数据)系统是采用各种硬件和软件元件、密码密钥、算法和/或技术来同时保护通信的保密性和真实性或“完整性”的系统。更具体地说,认证加密试图使得一方对于通过对消息进行编码来将其自己伪装为真实消息源、欺骗性地对从这样的源接收的消息进行解码、或者以其它方式获得关于对消息数据进行加密、解密或认证的方式的信息在计算上是不可行的。在利用对称块密码来提供多个传统的认证加密(AE)系统或模式(例如,电子码本、密码块链接、密码反馈、输出反馈、计数器模式等)时,一般可以通过在适当的约束下生成消息认证代码(MAC)或“标签”来组合任何加密技术(例如,对称或非对称)和认证技术,从而提供AE功能性。在认证加密系统通过消息数据加密(或解密)和MAC生成(或验证)实现编码(或解码)的情况下,可以按照任何次序或者基本上同时地执行这样的操作。
虽然长期研究了消息数据保密性和真实性或完整性的目标,但是由于在单个应用中实现两个操作的复杂性,仅仅在最近才开发了多个系统。示例性认证加密系统或模式包括采用CBC-MAC的计数器(CCM)、单密钥CBC-MAC(OMAC)、密码状态(CS)、采用计数器的Carter Wegman(CWC)、加密然后认证然后翻译模式(EAX)、伽罗瓦/计数器模式(GCM)、完整性知晓密码块链接(IACBC)、完整性知晓可并行模式(IAPM)、偏移码本(OCB)、传播密码反馈(PCFB)、以及扩展密码块链接加密(XCBC)。
图3示出了根据现有技术的第一认证加密模式认证加密单元的框图表示。图3示出了被配置成执行GCM认证加密的认证加密单元的框图。GCM或“伽罗瓦/计数器模式”是在二元伽罗瓦域上使用通用散列法来提供认证加密的块密码操作模式。GCM使用由很好理解的理论基础支持的机制,并且其安全性是从关于块密码的安全性的单个合理假设得出的。
GCM具有两个操作,即认证加密和认证解密。为了这里说明起见,将仅仅详细描述认证加密功能性。在将参考图3所述的现有技术实施例中,GCM认证加密具有三个输入,其中每一个都是位串,包括秘密密钥“K”(未示出),其长度适合于底层块密码;初始化向量“IV”,其可以具有1与264之间的任意位数;以及明文消息数据。相对于密钥(K)的固定值,每个初始化向量值必须不同,但是无需具有相等的长度。还可以提供附加的认证数据,其虽然未被加密但是被认证。
利用所述输入,生成两个输出,即其长度恰好等于明文消息数据的长度的密文消息数据、以及其长度可以是64与128之间的任意值的消息认证代码“MAC”。所示现有技术实施例中的每个输入和输出在数据位串内实施。初始化向量的主要目的是用作现时(nonce),也就是,对于固定密钥的加密操作的每次调用都是不同的。
在操作时,将初始化向量“IV”施加到增量函数硬件模块302,其输出向块密码加密硬件模块304施加的连续计数器值。在图3的现有技术实施例中,块密码加密硬件模块304实现高级加密标准(AES)块密码。然后,如虚线308所示,利用复用器306或其它开关元件来输出指定第一加密IV/计数器的数据,以便用于生成MAC值。然后,如图所示,开关或驱动复用器306,使得使用异或硬件模块310通过逻辑异或操作将指定后继加密IV/计数器值的数据与明文消息数据进行组合,以生成密文消息数据。
如图所示,将所述密文消息数据施加到另一异或硬件模块312,以与由伽罗瓦域(GF)乘法器硬件模块314生成的反馈数据(例如,初始地,经过GF乘法的附加认证数据或其它种子或初始化数据)进行逻辑组合,并且将所得到的逻辑组合数据施加到GF乘法器硬件模块314。在GF乘法之后,将所生成的GF乘法器硬件模块314的输出反馈到异或硬件模块312,并且将其同时施加到最后的异或硬件模块316。如图所示,使用异或硬件模块316将所施加的GF乘法器硬件模块输出与前述第一加密IV/计数器数据进行逻辑组合,以生成MAC。
图4示出了根据现有技术的第二认证加密模式认证加密单元的框图表示。更具体地说,图4示出了被配置成执行密码块链接(CBC)-MAC(CCM)认证加密的认证加密单元的框图。CCM模式组合计数器模式加密与CBC-MAC认证模式。利用CCM,倘若用于加密的计数器值不与用于认证的(预)初始化向量相冲突,则单个加密密钥(未示出)可以用于加密和认证。CCM是一般性认证和加密块密码模式。传统地,CCM被定义成与诸如AES的128位块密码一起使用。
CCM具有两个操作,即认证加密和认证解密。为了这里说明起见,将仅仅详细描述认证加密功能性。在图4的现有技术实施例中,CCM认证加密利用三个位串输入,其包括秘密密钥“K”(未示出)、现时(例如,初始化向量“IV”)、以及明文消息数据。如这里关于GCM所述,还可以提供附加认证数据来进行认证而不进行加密。利用所述输入,生成两个位串输出,即其长度恰好为明文消息数据的长度的密文消息数据、以及消息认证代码“MAC”。
在操作时,将初始化向量“IV”施加到增量函数硬件模块302,其输出向块密码(例如,AES)加密硬件模块404施加的连续计数器值。然后,如虚线408所示,利用复用器406或其它开关元件来输出指定第一加密IV/计数器的数据,以便用于生成MAC值。然后,如图所示,开关或驱动复用器406,使得使用异或硬件模块410通过逻辑异或操作将指定后继加密IV/计数器值的数据与明文消息数据进行组合,以生成密文消息数据。
如图所示,还将所述明文消息数据同时施加到另一异或硬件模块412,以与由另一(例如,AES)块密码加密硬件模块414生成的反馈数据(例如,经过加密的附加认证数据或其它种子或初始化数据)进行逻辑组合,并且将所得到的逻辑组合数据施加到块密码加密硬件模块414。在加密之后,将所生成的块密码加密硬件模块414的输出反馈到异或硬件模块412,并且将其同时施加到最后的异或硬件模块416。如图所示,使用异或硬件模块416将所施加的块密码加密硬件模块输出与前述的第一加密IV/计数器数据进行逻辑组合,以生成MAC。
虽然可以采用软件或者软件和硬件的组合来实现所述AE技术或模式中的任一个,但是典型地仅采用硬件实现认证加密,以便无需系统间或内的消息数据缓冲。
由于应用或模式特定AE解决方案的巨大成本,传统的系统典型地实现单个认证加密操作模式。因此,这样的传统AE系统存在多个缺点。更具体地说,要被执行的AE操作模式的任何改变或补充(例如,当现有操作模式从加密或认证的观点被泄密时,当特定用户或实现需要与已经提供的认证加密操作模式不同的认证加密操作模式时,当期望包括认证加密功能性的系统的更大灵活性或集中时,等等)需要附加的特别配置的硬件的提供。在一些系统中,这样的附加硬件在成本或空间上可能是不容许的。

发明内容
本发明提供了一种用于利用共享硬件来生成密文和消息认证代码的方法和系统。根据本发明的一个实施例,提供了一种利用共享的认证加密单元硬件来生成密文消息数据和消息认证代码的方法。在所述实施例中,在包括第一和第二认证加密硬件模块的认证加密单元处接收明文消息数据。此后,生成与第一认证加密模式相关联的第一消息认证代码(MAC)和与第二认证加密模式相关联的第二MAC。更具体地说,利用明文消息数据和第一认证加密硬件模块来生成第一MAC,并且利用明文消息数据和第二认证加密硬件模块来生成密文消息数据和第二MAC。
前文是概述,因此必定地包含简化、概括和细节省略;因此,本领域的技术人员应当理解,该概述仅仅是说明性的,并且无论如何都不意欲是限制性的。本领域的技术人员还应当清楚,可以采用多种方式实现这里公开的操作,其中这些方式包括硬件实现,即ASIC和专用电子电路,并且在不脱离本发明及其较宽方面的情况下,可以进行这样的改变和修改。在下面阐述的非限制性详细描述中,仅仅由权利要求限定的本发明的其它方面、创新特征和优点将会变得清楚。


通过参考附图,可以更好地理解本发明,并且其众多特征和优点对于本领域的技术人员而言将会变得清楚,其中图1示出了根据本发明实施例的通信网络;图2示出了根据本发明实施例的、被配置成执行认证加密的数据处理系统;图3示出了根据现有技术的第一认证加密模式认证加密单元的框图表示;图4示出了根据现有技术的第二认证加密模式认证加密单元的框图表示;图5示出了根据本发明实施例的多模式认证加密单元的框图表示;图6示出了根据本发明实施例的、利用共享硬件生成密文和消息认证代码的处理的流程图。
附图内的相同或类似附图标记的使用表示类似或相同的项目。
具体实施例方式
下面阐述了用于实施这里描述的一个或多个系统、设备和/或处理的至少最佳设计模式的详细描述。本描述意欲是说明性的,而不应当被认为是限制性的。
在下面详细描述中,阐述了诸如特定方法次序、结构、元件和连接的众多特定细节。然而,应当理解,实施本发明的实施例无需利用这些和其它特定细节。在其它情形下,省略了公知的结构、元件或连接,或者未以特定细节加以描述,以便避免不必要地使本描述变得模糊。
在本说明书内对“一个实施例”、“实施例”或“多个实施例”的引用意欲表示结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。在说明书内的各处出现这样的短语不一定全都引用相同的实施例,单独或可选实施例也不与其它实施例互斥。此外,所描述的各个特征可以由一些实施例呈现而不由其它实施例呈现。类似地,所描述的各个要求可以是一些实施例的要求而非其它实施例的要求。
本发明的实施例提供了一种用于利用共享硬件来生成密文和消息认证代码的方法和系统。可选地被称作标签、认证加密标签、密码校验和、完整性校验值、修改检测代码或者消息完整性代码的消息认证代码(MAC)在本描述中意欲表示能够用来在以后证实(即,认证)消息数据的完整性的、与认证加密系统中的消息相关联的数据(例如,数学值)。换句话说,确定在生成MAC之后是否修改了包含在消息中的数据。以这种方式,MAC在一些方面类似于散列函数或数字签名,并且典型地用于数据传输和/或数据存储系统,其包括诸如由国际商业机器公司、阿芒克、纽约提供的TotalStorage3592磁带驱动模型J1A和/或磁带控制器模型J70的单元。
在本发明的一个或多个实施例中,利用共享硬件实现来提供多个MAC类型和密文。利用这样的实现实施例,与针对每个操作模式包括单独的认证加密单元的传统系统相比,可以使用共享硬件来提供两个或更多个认证加密操作模式,以减少或消除所需硬件组件或模块的数目。为了允许认证加密硬件模块的共享使用,这里示出的本发明的一个实施例实现了使用采用CBC-MAC的计数器(CCM)和伽罗瓦/计数器模式(GCM)操作模式提供采用MAC的计数器模式(CTR)块密码加密。然而,在本发明的其它实施例中,可以利用多种加密技术(例如,对称或非对称/公开密钥、块或流密码、代码等)中的任何加密技术,组合实现多个兼容认证加密操作模式中的任何操作模式。
在包括双CCM和GCM操作模式的所述发明实施例中,CTR加密利用现时(例如,使用计数器或增量器递增的初始化向量值)以及高级加密标准(AES)联邦信息处理标准出版物197(FIPS-197)宏或模块。如这里更详细说明的那样,CCM认证也使用密码块链接的形式,因此利用AES FIPS-197宏来产生MAC,从而对于MAC和密文产生允许共享单个流水线化硬件模块。通过如同所述使用流水线化认证加密硬件模块,可以不仅生成多个MAC和密文,而且可以基本上相互同时地生成它们。在所述实施例中,GCM认证利用单独的伽罗瓦域乘法器,在这里也将对其进行更详细的描述。从而,采用本发明的一个或多个实施例,可以使用在传统上用于单个AE模式的硬件之外的最小附加硬件,在共享硬件实现中基本上同时地提供多个MAC和认证加密操作模式。
在本发明的所述实施例的变体中,接收认证加密模式选择数据(例如,一个或多个选择指示符、位、标签等),并且利用其选择生成密文和MAC的方式。例如,可以利用这里描述的一个或多个系统或方法来生成两个或更多个MAC,并且可以使用这样的认证加密模式选择数据来识别要提供两个或更多个可能的MAC(或密文消息数据输出)中的哪些作为关联认证加密单元的输出。在另一实施例中,可以使用这样的认证加密模式选择数据来可选择地执行多个MAC的生成和/或多个AE操作模式的执行。例如,认证加密模式选择数据可以用来确定是否激活所选共享认证加密硬件模块和/或是否在所需的认证加密硬件模块输入端施加所需输入数据(例如,明文、密文、现时数据等)。
在本发明的一个实施例中,第一认证加密模式选择指示符(例如,位)指示符用来选择是否要基本上同时地(例如,通过交错)执行两个或更多个认证加密操作模式,并且第二认证加密模式选择指示符(例如,位)用来识别要被执行的认证加密操作模式,或者可选地,要提供哪个认证加密数据(例如,MAC)作为输出。在另一实施例中,基本上相互同时地生成两个或更多个MAC,然后利用其来生成至少一个其它合成MAC。例如,在不同实施例中,可以串接、交错、或者以其它方式组合两个或更多个MAC。
图1示出了根据本发明实施例的通信网络。所示实施例的通信网络100包括消息编码数据处理系统102,其被配置成执行这里描述的方法中的一个或多个,或者包括这里描述的系统、元件或模块中的一个或多个;以及,对应的消息解码数据处理系统104,其通过网络通信介质106或链路(例如,局域网或广域网)在通信上耦接。在图1的所示实施例中,将包括明文、初始化向量或其它现时或现时种子、以及一个或多个认证加密模式选择指示符的数据提供给消息编码数据处理系统102,或者由消息编码数据处理系统102生成该数据。根据本发明的一个或多个方法,或者利用这里描述的一个或多个系统、元件、单元或模块,消息编码数据处理系统102又利用所述数据来生成指定密文和至少一个MAC的数据。
一旦被生成,就利用对应的方法、系统、元件、单元或模块,如图所示通过通信介质106将所述密文和MAC指定数据传达到消息解码数据处理系统104。虽然被表示为传统的个人计算机,但是诸如消息编码和解码数据处理系统102和104的数据处理系统可以组合包括多个硬件设备和/或软件组件中的任一个,例如图2所示的示例性数据处理系统200。在本发明的一个实施例中,编码数据处理系统102和解码数据处理系统104中的每一个可以包括一个或多个存储设备或者元件(例如,盘驱动器、磁带驱动器、RAID阵列子系统、自动机械磁带库、文件器、文件服务器)和/或关联的控制设备、元件或适配器。
图2示出了根据本发明实施例的、被配置成执行认证加密的数据处理系统。虽然关于图2的数据处理系统200示出了具体的元件数目和布置,但是应当理解,本发明的实施例不局限于具有任意具体组件数目、类型或布置的数据处理系统,并且全都囊括各种数据处理系统类型、架构和形式因素(例如,网络元件或节点、个人计算机、工作站、服务器等)。所示实施例的数据处理系统200包括处理器202,其利用总线206或其它通信介质耦接到存储器204。存储器204可以包括诸如随机存取存储器(RAM)、只读存储器(ROM)、闪存和高速缓存的多个系统存储器型存储元件中的任一个。
所示实施例的数据处理系统200还包括输入/输出(I/O)接口208,其耦接到总线206,以将一个或多个I/O设备(未示出)在通信上耦接到数据处理系统200。示例性I/O设备可以包括诸如键盘、显示器、打印机、光标控制设备(例如,跟踪球、鼠标、输入板等)、扬声器和麦克风的传统I/O设备;诸如固定或“硬”磁介质存储设备、光存储设备(例如,CD或DVD ROM)、固态存储设备(例如,USB、安全数字SDTM、CompactFlashTM、MMC等)、诸如软盘和磁带的可移动磁介质存储设备、或者其它存储设备或介质;以及有线或无线通信设备或介质(例如,通过调制解调器或直接网络接口访问的通信网络)。
在图2的实施例中,如图所示,数据处理系统200还包括认证加密单元210。虽然AE加密单元210被示出为单个单独的硬件元件,但是在本发明的可选实施例中,组成AE加密单元210的硬件模块或组件的具体数目和布置可以变化。类似地,虽然为了说明的目的而示出了通用处理器(例如,处理器202)和存储器,但是在本发明的变体实施例中,可以利用替代元件。例如,如这里所述的数据处理系统可以包括一个或多个专用或应用特定处理器或其它处理元件(例如,可编程逻辑设备)。此外,处理器202或任何所述替代处理元件可以或者必定可以包括单独的存储器元件如存储器204,可选地包括集成存储装置(例如,寄存器堆、高速缓存等)。
在图2的所示实施例中,AE单元210包括被配置成对关联消息数据执行认证加密操作的专用硬件设备或处理元件。在一个实施例中,AE单元210的内部结构包括多个硬件模块(未示出),其用来执行各个组成AE操作。在操作时,AE单元210接收诸如明文“P”和初始化向量“IV”的输入数据,并且又生成和提供输出数据,其例如包括密文“C”、第一MAC“MAC1”、以及第二MAC“MAC2”,如图2所示。
本发明的实施例可以包括这里进一步描述的软件、信息处理硬件和各个处理操作。各个发明实施例的特征和处理操作可以被实施在可执行指令中,其中该可执行指令包含在机器可读介质如存储器204、存储设备、通信设备或介质等内。机器可读介质可以包括以机器(例如,数据处理系统200)可读形式提供(即,存储和/或传输)数据的任何机制。例如,机器可读介质包括但不限于随机存取存储器(RAM);只读存储器(ROM);磁存储介质;光存储介质;闪存设备;电、光和/或声传播信号(例如,载波、红外线信号、数字信号等);等等。所述可执行指令可以用来使以该指令编程的通用或专用处理器如处理器202执行本发明的操作、方法或处理。可选地,本发明的特征或操作可以由包含用于执行这样的操作的硬连线逻辑电路的特定硬件组件、或者由编程数据处理组件和定制硬件组件的任意组合执行。
在图4的所示实施例中,利用两个单独的非流水线化块密码加密硬件(例如,AES)模块,使得可以基本上相互同时地生成密文消息数据和对应的MAC。如图5所示,本发明的实施例利用单个流水线化加密硬件模块来通过所使用的组成硬件模块的数目的减少来降低认证加密单元复杂性和成本,而在产生输出数据的速度上没有任何可察觉的差别。
图5示出了根据本发明实施例的多模式认证加密单元的框图表示。更具体地说,图5示出了被配置成利用一个或多个共享硬件模块基本上同时执行密码块链接(CBC)-MAC(CCM)认证加密和伽罗瓦/计数器模式(GCM)认证加密的认证单元的框图。如前面关于传统的CCM和GCM认证加密所述的那样,所示AE单元可以用来提供认证加密和认证解密操作。然而,为了避免不必要地使这里示出的所选发明实施例变得模糊或复杂,将仅仅详细描述认证加密功能性和对应的系统元件(例如,硬件模块)。
在图5的所示实施例中,所示认证加密单元具有三个输入,其包括秘密密钥“K”(未示出),其长度适合于底层块密码;初始化向量“IV”;以及明文消息数据。相对于密钥(K)的固定值,所述实施例的每个初始化向量值是不同的,但是无需具有相等的长度。还可以提供附加的认证数据(未示出),其虽然未被加密但是被认证。
利用所述输入,生成三个输出,即其长度等于明文消息数据的长度的密文消息数据、第一(例如,GCM)消息认证代码“GCM MAC”、以及第二(例如,CCM)消息认证代码“CCM MAC”。所述输入和输出按照位串来定义,但是在可选实施例中可以包括多个格式或大小中的任一个的数据。初始化向量的主要目的是用作现时,也就是,对于固定密钥的加密操作的每次调度都不同。在本发明的一个或多个实施例中,可以随机生成初始化向量。
虽然在图5的实施例中示出了仅仅两个认证加密输出,但是本发明的实施例是可伸缩的,并且这样的实施例考虑更多的AE输出。类似地,虽然通过图5所示的认证加密单元的每个操作基本上同时地提供所有AE输出,但是在本发明的可选实施例中,可以包括选择元件或逻辑,其可以用来可选择地控制所接收的输入(从而控制所选密文或MAC输出的生成或产生)和所提供的输出中的一个或两者。
在操作时,在所示的流水线化块密码加密(例如,AES)硬件模块502内通过计数器模式加密,利用所示的认证加密单元来生成密文消息数据。使用流水线化块密码加密硬件模块502交错这里更全面描述的所述计数器值和其它数据的加密。更具体地说,将初始化向量“IV”施加到增量函数硬件模块504,其输出通过复用器506或者其它选择或开关装置可选择地施加到流水线化块密码加密硬件模块502的连续计数器值。
这样,将递增的计数器值提供给在流水线化块密码加密硬件模块502内可用的操作循环的一部分。如图所示,一旦被加密,就随同明文指定数据的对应部分一起通过另一复用器508或类似的选择装置将所述计数器值可选择地施加到异或硬件模块510,并且进行逻辑组合,以生成密文消息数据。虽然这里说明和描述了特定加密技术、操作模式、以及硬件模块,但是在可选实施例中,可以实现多个这样的元件或技术中的任一个。在图5的实施例中,必要时结合其它补充的硬件模块利用流水线化块密码加密硬件模块502的剩余操作循环,以生成多个认证加密MAC,这里将对其进行更全面的描述。
如图所示,为了生成指定GCM MAC的数据,与由流水线化块密码加密硬件模块502的操作循环的前述部分生成的密文消息数据相组合地利用单独的伽罗瓦域(GF)乘法器硬件模块512。更具体地说,如虚线514所示,利用复用器508来可选择地输出指定第一加密IV/计数器的数据。虽然为了这里说明起见,复用器508被示出为单个2到1型开关元件,但是在本发明的可选实施例中,复用器508可以包括3到1复用器或者以级联方式耦接在一起的两个2到1复用器。
然而,如图所示,被布置之后,开关或驱动复用器508,使得初始值之后的加密IV/计数器值与明文消息数据相组合,以生成密文消息数据,然后,将该密文消息数据施加到另一异或硬件模块516,以与由伽罗瓦域(GF)乘法器硬件模块512生成的反馈数据(例如,初始地,经过GF乘法的附加认证数据或其它种子或初始化数据)进行逻辑组合,并且将所得到的逻辑组合数据施加到GF乘法器硬件模块512。在本发明的一个实施例中,GF乘法器包括2128位单元。在GF乘法之后,将所生成的GF乘法器硬件模块512的输出反馈到异或硬件模块516,并且将其同时施加到另一异或硬件模块518。如图所示,使用异或硬件模块518将所施加的GF乘法器硬件模块输出与前述第一加密IV/计数器数据进行逻辑组合,以生成指定“GCM MAC”的数据。
为了生成指定CCM MAC的数据,利用在流水线化块密码加密硬件模块502内可用的、除了用来如前所述生成密文消息数据的操作循环部分之外的操作循环部分,使得需要较少的附加硬件。更具体地说,如虚线520所示,通过复用器508类似地提供指定第一加密IV/计数器的数据,以便用于生成CCM/CBC MAC。然后,如图所示,开关或驱动复用器508,使得组合指定后继加密IV/计数器值的数据和明文消息数据,以生成密文消息数据。
如图所示,还将所述明文消息数据同时施加到另一异或硬件模块522,以与由流水线化块密码加密硬件模块502生成的反馈数据进行逻辑组合,并且将所得到的逻辑组合数据施加到流水线化块密码加密硬件模块502。在加密之后,将所生成的流水线化块密码加密硬件模块502的输出反馈到异或硬件模块522,并且将其同时施加到另一异或硬件模块524。如图所示,使用异或硬件模块524将所施加的块密码加密硬件模块输出与前述第一加密IV/计数器数据进行逻辑组合,以生成指定“CCM MAC”的数据。
图6示出了根据本发明实施例的利用共享硬件生成密文和消息认证代码的处理的流程图。在所示处理实施例中,初始地接收明文消息数据、初始化向量(IV)或其它现时、以及认证加密模式选择数据(处理块502)。此后,例如,利用所接收的认证加密模式选择数据,确定是否选择了同时的双认证加密操作模式(处理块504)。如果未指定双AE模式(即,如果所接收的认证加密模式选择数据指定了要利用多个AE操作模式中的所选一个),则将所接收的明文消息数据和初始化向量施加到相关联的认证加密单元内的所选硬件模块(处理块506)。如图所示,一旦被施加,就利用所述明文消息数据、初始化向量数据、以及所选硬件模块来生成密文消息数据和(一个或多个)所选认证加密MAC(处理块508)。
如果相反地确定选择了双认证加密操作模式,则将所接收的明文消息数据和初始化向量数据施加到被配置成接收这样的输入数据的对应认证加密单元中的每个硬件模块的输入端(处理块510)。此后,在所示实施例中,利用与所述认证加密单元相关联的第一硬件模块来生成密文消息数据和第一认证加密MAC(处理块512),同时利用另一(第二)相关联的硬件模块生成第二认证加密MAC(处理块514)。
一旦生成了所述密文消息数据和MAC,就(例如,利用所接收的AE模式选择数据)确定是否要通过先前生成的认证加密MAC中的两个或更多个的组合来提供附加认证层(处理块516)。在本发明的可选实施例中,可以使用多种技术(例如,串接、交错等)中的任一种来执行这样的组合。在所述确定之后,响应于选择了MAC组合的确定,组合两个或更多个所选MAC(处理块518)。否则,在使用所选硬件模块生成密文消息数据和MAC(处理块508)之后,提供所生成的密文消息数据和所选MAC,作为相关联的认证加密单元的输出(处理块520)。
虽然图6所示的流程图表示具体操作次序和特定处理操作粒度,但是在可选实施例中,所示次序可以变化(例如,可以按照其它次序执行或者基本上并行执行处理操作),并且可以合并或分裂这些处理操作中的一个或多个。类似地,在本发明的可选实施例中,必要时可以添加附加处理操作。
本发明是在全功能数据处理系统的上下文中描述的;然而,本领域的技术人员应当理解,本发明能够以各种形式作为程序产品来分发,并且同等地适用,而与用来实施分发的信号承载介质的特定类型无关。这样的信号承载介质的示例包括诸如软盘和CD-ROM的可记录介质、诸如数字和模拟通信链路的传输型介质、以及在将来开发的介质存储和分发系统。本发明的实施例可以类似地利用用来执行特定操作或任务的软件模块来实现。所述软件模块可以包括脚本、批文件或其它可执行文件,并且可以存储在机器可读或计算机可读介质上。这样,这些模块可以存储在计算机系统存储器内,以配置数据处理或计算机系统,从而执行软件模块的一个或多个功能。可以使用其它新式和各种类型的机器或计算机可读存储介质来存储这里讨论的模块。
虽然示出和描述了本发明的特定实施例,但是本领域的技术人员应当清楚,基于这里的教导,可以在不脱离本发明及其较宽方面的情况下进行改变和修改。例如,虽然这里专门描述了CCM和GCM认证加密操作模式,但是在可选实施例中,可以提供GCM、CCM、EAX、OMAC、OCB等的各种组合。因此,所附权利要求应当将在本发明的真实精神和范围内的所有这样的变化和修改囊括在其范围内。
因此,本发明意欲仅仅由所附权利要求的范围限制,从而提供对所有方面的等效方案的完全认识。
权利要求
1.一种利用共享的认证加密单元硬件来生成密文消息数据和消息认证代码的方法,所述方法包括在认证加密单元处接收明文消息数据,其中所述认证加密单元包括第一认证加密硬件模块和第二认证加密硬件模块;利用所述明文消息数据和所述第一认证加密硬件模块,生成与第一认证加密操作模式相关联的第一消息认证代码;以及利用所述明文消息数据和所述第二认证加密硬件模块,生成与第二认证加密操作模式相关联的密文消息数据和第二消息认证代码。
2.如权利要求1所述的方法,其中基本上同时执行生成所述第一消息认证代码和生成所述密文和所述第二消息认证代码。
3.如权利要求1所述的方法,其中所述方法还包括接收认证加密模式选择数据;响应于所述认证加密模式选择数据表示所述第一认证加密操作模式的确定,生成所述第一消息认证代码;以及响应于所述认证加密模式选择数据表示所述第二认证加密操作模式的确定,生成所述第二消息认证代码。
4.如权利要求1所述的方法,所述方法还包括接收认证加密模式选择数据;响应于所述认证加密模式选择数据的接收,在所述认证加密单元的输出端提供所述第一消息认证代码和所述第二消息认证代码中的所选消息认证代码。
5.如权利要求1所述的方法,所述方法还包括利用所述第一消息认证代码和所述第二消息认证代码生成第三消息认证代码。
6.如权利要求5所述的方法,其中生成所述第三消息认证代码包括串接所述第一消息认证代码和所述第二消息认证代码。
7.如权利要求1所述的方法,其中生成所述密文消息数据包括执行计数器模式块密码操作。
8.如权利要求1所述的方法,其中所述第一认证加密操作模式包括伽罗瓦/计数器模式,并且所述第二认证加密操作模式包括采用密码块链接消息认证代码的计数器模式。
9.一种机器可读介质,具有包含在其中的、可由机器执行的多条指令,其中所述多条指令在被执行时使所述机器执行利用共享的认证加密单元硬件来生成密文消息数据和消息认证代码的方法,所述方法根据前面权利要求中的任一项。
10.一种用于生成密文消息数据和消息认证代码的设备,包括用于在认证加密单元处接收明文消息数据的装置,其中所述认证加密单元包括第一认证加密硬件模块和第二认证加密硬件模块;用于利用所述明文消息数据和所述第一认证加密硬件模块来生成与第一认证加密操作模式相关联的第一消息认证代码的装置;以及用于利用所述明文消息数据和所述第二认证加密硬件模块来生成与第二认证加密操作模式相关联的密文消息数据和第二消息认证代码的装置。
11.如权利要求10所述的设备,其中基本上同时生成所述第一消息认证代码与所述密文和所述第二消息认证代码。
12.如权利要求10所述的设备,其中所述设备还包括用于接收认证加密模式选择数据的装置;响应于所述认证加密模式选择数据表示所述第一认证加密操作模式的确定,生成所述第一消息认证代码;以及响应于所述认证加密模式选择数据表示所述第二认证加密操作模式的确定,生成所述第二消息认证代码。
13.如权利要求10所述的设备,还包括用于接收认证加密模式选择数据的装置;用于响应于所述认证加密模式选择数据的接收,在所述认证加密单元的输出端提供所述第一消息认证代码和所述第二消息认证代码中的所选消息认证代码的装置。
14.如权利要求10所述的设备,还包括用于利用所述第一消息认证代码和所述第二消息认证代码生成第三消息认证代码的装置。
15.如权利要求14所述的设备,其中所述用于生成所述第三消息认证代码的装置包括用于串接所述第一消息认证代码和所述第二消息认证代码的装置。
16.如权利要求10所述的设备,其中所述用于生成所述密文消息数据的装置包括用于执行计数器模式块密码操作的装置。
17.如权利要求10所述的设备,其中所述第一认证加密操作模式包括伽罗瓦/计数器模式,并且所述第二认证加密操作模式包括采用密码块链接消息认证代码的计数器模式。
18.一种认证加密单元,用于生成密文消息数据和消息认证代码,包括第一输入端,用于接收明文消息数据;第一认证加密硬件模块,用于利用所述明文消息数据生成与第一认证加密操作模式相关联的第一消息认证代码;以及第二认证加密硬件模块,用于利用所述明文消息数据生成与第二认证加密操作模式相关联的密文消息数据和第二消息认证代码。
19.如权利要求18所述的认证加密单元,其中基本上同时生成所述第一消息认证代码与所述密文和所述第二消息认证代码。
20.如权利要求18所述的认证加密单元,其中所述认证加密单元还包括第二输入端,其用于接收认证加密模式选择数据;响应于所述认证加密模式选择数据表示所述第一认证加密操作模式的确定,生成所述第一消息认证代码;以及响应于所述认证加密模式选择数据表示所述第二认证加密操作模式的确定,生成所述第二消息认证代码。
21.如权利要求18所述的认证加密单元,还包括第二输入端,用于接收认证加密模式选择数据;输出端,用于响应于所述认证加密模式选择数据的接收,提供所述第一消息认证代码和所述第二消息认证代码中的所选消息认证代码。
22.如权利要求18所述的认证加密单元,还包括第三认证加密硬件模块,用于利用所述第一消息认证代码和所述第二消息认证代码生成第三消息认证代码。
23.如权利要求22所述的认证加密单元,其中通过串接所述第一消息认证代码和所述第二消息认证代码来生成所述第三消息认证代码。
24.如权利要求18所述的认证加密单元,其中所述第二认证加密硬件模块包括计数器模式块密码模块。
25.如权利要求18所述的认证加密单元,其中所述第一认证加密操作模式包括伽罗瓦/计数器模式,并且所述第二认证加密操作模式包括采用密码块链接消息认证代码的计数器模式。
全文摘要
本发明公开了一种用于利用共享硬件来生成密文和消息认证代码的方法和系统。根据一个实施例,提供了一种利用共享的认证加密单元硬件来生成密文消息数据和消息认证代码的方法。在所述实施例中,在包括第一和第二认证加密硬件模块的认证加密单元处接收明文消息数据。此后,生成与第一认证加密模式相关联的第一消息认证代码(MAC)和与第二认证加密模式相关联的第二MAC。更具体地说,利用明文消息数据和第一认证加密硬件模块来生成第一MAC,并且利用明文消息数据和第二认证加密硬件模块来生成密文消息数据和第二MAC。
文档编号H04L9/08GK1964257SQ200610153909
公开日2007年5月16日 申请日期2006年9月12日 优先权日2005年11月8日
发明者斯科特·杰弗里·沙弗尔, 梅兰尼·简恩·桑德伯格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1