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

用于加速无线安全算法的装置、方法和系统制造方法及图纸

技术编号:12195050 阅读:106 留言:0更新日期:2015-10-14 03:07
通过处理器的执行电路系统来接收并执行用于实施SNOW 3G无线安全操作的向量指令。执行电路系统接收第一指令的第一操作数,所述第一操作数指定了存储有限状态机(FSM)的当前状态的第一向量寄存器。所述执行电路系统还接收第一指令的第二操作数,所述第二操作数指定了存储更新所述FSM所需的线性反馈移位寄存器(LFSR)的数据元素的第二向量寄存器。执行电路系统执行第一指令以在第一指令的目的操作数中产生FSM的更新状态和FSM的输出。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及能够进行高效无线安全操作的微处理器以及相关联的指令集体系结 构。
技术介绍
在密码学中,流密码是一种对称密钥密码,其中,明文数字与伪随机密码数字流 (密钥流)组合。在流密码中,一次一个地利用密钥流的相对应的数字来对每一个明文数 字进行加密以生成所述密码文本流的数字。数字通常是一位,并且组合操作可以是异或 (X0R)。通常,使用数字移位寄存器,由随机种子值连续地生成伪随机密钥流。种子值充当 用于对密码文本流进行解密的加密密钥。 流密码能够在软件中实现。然而,复杂的流密码能够使用超过一百行的C代码。甚 至对于最优化后的汇编代码,可能需要大量的循环来生成用于复杂流密码的密钥流字节。 而且,软件实现通常涉及到大量存储器存取。因此,软件实现不能为各种各样的应用提供足 够的速度和能量效率。 附图描述 在附图的图中,通过举例的方式而不是限制的方式来示出实施例: 图1A示出了在初始化模式下SNOW3G操作的图。 图1B示出了在密钥流模式下SNOW3G操作的图。 图2A-图2C示出了根据一个实施例的用于实施SNOW3G操作的三个向量指令。图3是根据一个实施例的示出了响应于第一向量指令而被实施的操作的流程图。图4是根据一个实施例的示出了响应于第二向量指令而被实施的操作的流程图。 图5是根据一个实施例的示出了响应于第三向量指令而被实施的操作的流程图。 图6是根据一个实施例的示出了使用软件指令转换器将源指令集中的二进制指 令转换成目标指令集中的二进制指令的框图。 图7A是根据一个实施例的有序和乱序流水线的框图。 图7B是根据一个实施例的有序和乱序核心的框图。图8A-图8B是根据一个实施例的更具体的示例性有序核心体系结构的框图。 图9是根据一个实施例的处理器的框图。 图10是根据一个实施例的系统的框图。 图11是根据一个实施例的第二系统的框图。 图12是根据本专利技术的实施例的第三系统的框图。 图13是根据一个实施例的芯片上系统(SoC)的框图。【具体实施方式】 在下面的描述中,阐述了若干具体细节。但是,应当理解的是本专利技术的实施例可以 在不具有这些具体细节的情况来实施。在其他实例中,为避免使对该描述书的理解不清楚, 没有具体示出公知的电路、结构和技术。 SNOW3G的特征在于其高度的计算复杂度和长的执行时间。为了实现高速无线通 信,译码操作需要具有时间效率。除了时间约束之外,译码操作还需要能效,因为移动设备 通常具有有限的电池。SNOW3G是一种基于线性反馈移位寄存器(LFSR)的、具有608个状态位的算 法。608位包括三个32位有限状态机(FSM)状态寄存器以及包含十六个双字(双字)的 LFSR(即,在LFSR中有512位)。用于更新状态并且产生输出字的计算包括多代置换盒 (S-Box)变换和伽罗瓦(Galois)域相乘和取幂。SNOW3G能够通过软件来实现,这涉及到 大量的计算和存储器存取。因此,SNOW3G的软件实现通常缓慢并且耗能多。 与现有的软件解决方案相比,本文所描述的实施例提供了新的处理器指令,用于 以显著改善的性能实施SNOW3G无线安全操作。在一个实施例中,新处理器指令包括用于 更新有限状态机(FSM)的SN0W_FSMZ指令,以及用于更新线性反馈移位寄存器(LFSR)的 SN0W_LFSRV指令和SN0W_LFSR1指令。这些指令中的每一指令都利用向量寄存器来实施高 效的向量化计算。 在描述新指令之前,解释SNOW3G无线安全算法的基本概念是有帮助的。SNOW3G 算法使用具有十六个32位数据元素的LFSR(其中每个数据元素都是双字(dword)的)以 及具有三个32位状态寄存器Rl、R2和R3的FSM。启动时,LFSR的十六个双字被装载来 自128位密钥和128位初始化变量的位组合。128位密钥包括四个32位字k0、kl、k2和 k3。128位初始化变量包括四个32位字IV0、IV1、IV2和IV3。下面,数字1代表全1双字 (Oxffffffff)。LFSR中的十六个双字如下: 在启动时,FSM被初始化为Rl=R2 =R3 = 0。接着,FSM和LFSR在初始化模式 下运行32次,在所述初始化模式中,FSM的输出用作LFSR更新的输入。 在对FSM和LFSR进行了初始的32次更新之后,FSM多更新一次,FSM输出被抛弃。 然后在密钥流模式下更新LFSR,之后是FSM的更新,产生32位输出F。FSM输出F与LFSR 的双字s0进行异或,以产生32位密钥流输出Z,并且在密钥流模式下再次更新LFSR。FSM 更新、Z输出和LFSR更新在循环中继续多次迭代,直至生成所需的密钥流输出的n个双字。 图1A示出了在初始化模式下的LFSR120和FSM100的示例。在初始化模式下, 32次LFSR启动更新中的每一次都是通过确定由Sll、S2、S0和FMS输出F生成的32位 双字V来实施的。更新之前的LFSR120的双字S15至S1 "向右移位"成为S14至S0, 并且用V来更新S15。下面,||用作串联运算符,以及?是逐位异或(X0R)运算符。此 外,s0. 0| |s0. 1| |s0. 2| |s0. 3代表s0的四个字节,s0. 0是s0的最重要字节;并且令 sll.〇| |sll. 1| |sll.2| |sll.3代表sll的四个字节,sll.O是sll的最重要字节。具体而 言,在初始化模式下,v=(吼丨 11 丨1 11 0x00丨 ? 通儿〇?+必,0) ? -s2 ? (0x00IIsiL0IUI1,1 丨I 在V的表达式中,MULa和DIVa是在SNOW3G中基于MULx和MULxPOW数学函数 定义的函数。MULa和DIVa中的每一个将8位映射成32位。虽然MULa和DIVa二者均 因为MULxPOW运算的递归要求而使得利用函数的数学定义实现复杂,但是按32位输出表的 256输入项能够用于MULa函数和DIVa函数中的每一个(即,每个函数为1K字节)。 图1B示出了在密钥流模式下LFSR和FSM的示例。在密钥 流模式下,利用sll、s2和s0来生成32位双字V。具体而言,V =,如上所 述,MULa和DIVa结果能够通过表查找来获得。 在初始化模式和密钥流模式二者下,每个FSM更新使用两个32位LFSR双字。双 字S15用来产生32位输出字F,并且S5用来更新FSM状态寄存器R1、R2和R3,其中R1、R2 和R3中的每一个都是32位双字。在图1A和图1B中,代表整数相加模232。FSM输出F= (sl5Rl) ?R2。随后,状态寄存器进行如下更新:首先,中间值r被计算为r=R2(R3 ?s5)。 然后,设置R3 =S2 (R2),R2 =SI(Rl),并且R1 =r。 在上面的计算中,SI和S2是32x32位S-BOX函数。SI是在高级加密标准(AES) 密码中使用的RijndaelS_BoxSR。对于32位输入¥ = ¥〇|卜1|卜2|卜3,¥〇是最重要字 节,SR(w) =r〇| |rl| |r2| |r3,r0是最重要字节,r3是最不重要字节。输出中的字节r0、 rl、r2和r3定义为:MULx函数被定义为:如果第一操作数(vl)的最左(最重要)位是1本文档来自技高网...

【技术保护点】
一种装置,包括多个向量寄存器,其包括第一向量寄存器和第二向量寄存器;以及执行电路系统,其与所述多个向量寄存器耦合,所述执行电路系统能够操作用于:接收第一指令以实施SNOW 3G无线安全操作;接收所述第一指令的第一操作数,所述第一操作数指定了存储有限状态机(FSM)的当前状态的所述第一向量寄存器;接收所述第一指令的第二操作数,所述第二操作数指定了存储更新所述FSM所需的线性反馈移位寄存器(LFSR)的数据元素的所述第二向量寄存器;以及执行所述第一指令以在所述第一指令的目的操作数中产生所述FSM的更新状态和所述FSM的输出。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:G·M·沃尔里克V·戈帕尔E·厄兹蒂尔克K·S·叶W·K·费加利
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1