当前位置: 首页 > 专利查询>英特尔公司专利>正文

加速伽罗瓦计数器模式(GCM)计算制造技术

技术编号:3477105 阅读:253 留言:0更新日期:2012-04-11 18:40
描述用于加速伽罗瓦计数器模式(GCM)计算的方法和装置。在一个实施例中,可以使用无进位的乘法指令来执行对应于依据GCM验证加密消息的操作。还描述其它实施例。

【技术实现步骤摘要】

本专利技术涉及一种包括一个或多个指令的计算机可读介质,所述指令在处理器上执行时将所述处理器配置成用于 将无进位乘法的乘积的最高有效部分与第一值相乘以生成第二值; 将所述第二值的最高有效部分与块密码中使用的最终域(finalfield)的不可约多项式的最低有效部分相乘以生成第三值; 基于所述第三值确定余数;以及 基于所述余数的值来使信号生成,其中所述余数的值指示根据伽罗瓦计数器模式(GCM)经加密的消息是否是可信的。 本专利技术涉及一种系统,包括 存储器,用于存储无进位乘法指令;以及 处理器,用于执行所述无进位乘法指令以确定经加密的消息是否是可信的。 本专利技术涉及一种存储指令的计算机可读介质,所述指令使计算机能够 使用32或64位的无进位乘法指令来执行128×128位的无进位乘法; 将乘积模g来进行约简以形成块密码的模式的消息认证码;以及 使用所述块密码用于网络通信的加密。 本专利技术涉及一种计算机系统,包括 网络接口;以及 加密模块,用于使用32或64位无进位乘法指令来获得128×128位无进位乘法并将256位乘积模g来进行约简(reduce the 256 productmodulo g)以形成块密码的模式的消息认证码。 附图说明 参考附图提供详细描述。在附图中,附图标记的最左边的数字标识该附图标记首次出现所在的附图。不同附图中使用相同的附图标记来指示类似或相同的项。 图1示出可以根据一些实施例利用的伽罗瓦计数器模式(GCM)的一个实施例。 图2和3示出根据本专利技术的一些实施例的方法的流程图。 图4和5示出可用来实现本文论述的一些实施例的计算系统的实施例的框图。 具体实施例方式 在以下描述中,阐述了许多具体细节以便于提供对各种实施例的透彻理解。然而,在没有这些具体细节的情况下,也可实施本专利技术的各种实施例。在其他情况下,未详细描述公知的方法、过程、组件和电路,以避免妨碍理解本专利技术的特定实施例。此外,本专利技术的实施例的各个方面可使用诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件和软件的某种组合等各种方式来执行。出于本公开的目的,提到“逻辑”时应表示硬件、软件(包括例如控制处理器的操作的微代码)或其某种组合。而且,这里“指令”或“微操作”(也可称为“uop”)的使用是可互换的。 说明书中提到“一个实施例”时表示结合该实施例描述的特定特征、结构或特性可以包含在至少一个实现中。在说明书中各处出现的短语“在一个实施例中”可以指代同一个实施例或可以不全指代同一个实施例。 而且,在描述和权利要求中,可使用术语“耦合”和“连接”以及它们的派生词。在本专利技术的一些实施例中,“连接”可用于指示两个或两个以上元件彼此直接物理或电接触。“耦合”可表示两个或两个以上元件直接物理或电接触。然而,“耦合”还可指两个或两个以上元件没有彼此直接接触,但是仍然可彼此协同工作或交互。 本文论述的一些实施例可加速块密码的伽罗瓦计数器模式(GCM)计算。例如,单个通用处理器核(例如,基于英特尔 公司的核微体系结构)可潜在地支持10Gbps的联网。在一个实施例中,无进位乘法(carry-less multiplication)运算可与快速约简(reduction)相结合来加速GCM计算。在一个实施例中,指令(例如,依据至少一个指令集体系结构的“GFMUL”)可引起两个64位输入的无进位乘法的计算。在一个实施例中,执行该指令的处理器(如图4-5中的处理器)可包括以下装置中的一个或多个装置用来存储指令的存储器(例如,1级、2级、最后一级高速缓存等),用于从存储器提取指令的提取单元,可选地将所提取的指令解码的解码单元,用于调度指令(或相应的uop)来执行的调度单元,以及用于执行指令(或相应的uop)的一个或多个执行单元。 此外,GCM是目前建议用于保密和认证的块密码(block cipher)的操作模式。具体来说,高级加密标准(AES)伽罗瓦计数器模式(AES-GCM)已经成为一种日渐流行的用于在快速联网中进行分组处理的模式。通常,GCM是通过取块密码的128位输出并在2128的伽罗瓦域(GF)中将它乘以散列密钥来实现的,其中此散列密钥在会话期间保持不变。GF(2128)中的乘法由两个阶段组成(i)对两个128位操作数进行无进位乘法,以生成256位结果;以及(ii)模(modulo)不可约多项式g(x)=x128+x7+x2+x+1来进行约简。由于多项式“g”可表示为仅有5个位等于1的128位的字符串,因此它被称为“五项式”(pentanomial)。在一个实施例中,无进位乘法可使用本文论述的GFMUL指令作为构建块以获得用于GCM的两个128位输入的无进位乘法。而且,一个实施例将256位结果模有限域的五项式g来进行约简,以便例如提高整体性能。 具体来说,图1示出可以根据一些实施例利用的伽罗瓦计数器模式(GCM)100的实施例。如图所示,该模式可根据由块密码生成的加密数据产生称为“伽罗瓦散列”的消息摘要102,例如,可基于密钥将数据104-1到104-3加密,以分别生成密文106-1到106-3。该伽罗瓦散列可用于高性能的消息认证。在该模式的每个操作中,将伽罗瓦散列的先前值与当前的密文块执行XOR运算(例如,106-1与102-1执行XOR运算,106-2与102-2执行XOR运算等等)。接着,在GF(2128)中将结果与散列密钥值相乘,其中GF(2128)有限域由不可约多项式g=g(x)=x128+x7+x2+x+1来定义。从而,如前所述,在GF(2128)中的乘法包括对两个128位操作数执行无进位乘法以生成256位结果,并模不可约多项式g来进行约简。 无进位乘法 无进位乘法又称为伽罗瓦域乘法,它是将两个数相乘而不生成或传递进位的运算。在标准整数乘法中,将第一操作数移位与第二操作数中等于“1”的位的位置相同的次数。通过将第一操作数与其移位版本相加来得到这两个操作数的乘积。在无进位乘法中,除了相加不生成或传递进位之外,遵循相同的过程。通过这种方式,位相加等效于XOR逻辑运算。 无进位乘法正式定义如下设两个操作数为A、B,每个操作数的大小是n位。设数A为下列位数组 A=(1) 同样,设数B为 B=(2) 设无进位乘法的结果为下列位数组 C= (3) 输出C的位定义为输入A和B的位的下列逻辑函数 c0=a0b0 ... 以及 ... (5) c2n-2=an-1bn-1 c2n-1=0 式(4)和(5)可以按紧凑形式书写为 其中,0≤i≤n-1,以及 其中,n-1≤i≤2n-1 从硬件实现的角度来看,可看到,式(6)和(7)的每个逻辑函数可使用XOR树来实现。最深的XOR树是实现取n个输入的函数cn-1的XOR树。例如,用于伽罗瓦域乘法的64位指令(例如,“GFMUL”)需要1+2+...+62+63+62+...+1=3969个XOR门。而且,GFMUL所需的AND门的总数是1+2+...+64+63+...+1=4096。因此,实现GFMUL所本文档来自技高网...

【技术保护点】
一种方法,包括: 将无进位乘法的乘积的最高有效部分与第一值相乘以生成第二值; 将所述第二值的最高有效部分与在块密码中使用的最终域的不可约多项式的最低有效部分相乘以生成第三值;以及 基于所述第三值确定余数。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S格伦ME库纳维斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利