首页> 中国专利> 双合成域高级加密标准存储器加密引擎

双合成域高级加密标准存储器加密引擎

摘要

可对加密和解密加速器选择多项式的不同集合。也就是说,多项式的不同集合用于加密和解密,各集合选择成使用较小面积,并且为存储器加密引擎输送更大功率。这在一些实施例中是有利的,因为存储器读操作通常比存储器写是更为关键并等待时间敏感的。

著录项

  • 公开/公告号CN104011732A

    专利类型发明专利

  • 公开/公告日2014-08-27

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201180076150.5

  • 申请日2011-12-30

  • 分类号G06F21/72;H04L9/06;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人叶晓勇

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 01:24:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-09

    未缴年费专利权终止 IPC(主分类):G06F21/72 专利号:ZL2011800761505 申请日:20111230 授权公告日:20180615

    专利权的终止

  • 2018-06-15

    授权

    授权

  • 2014-09-24

    实质审查的生效 IPC(主分类):G06F21/72 申请日:20111230

    实质审查的生效

  • 2014-08-27

    公开

    公开

说明书

技术领域

本发明一般涉及存储器加密引擎。

背景技术

存储器加密引擎用来在数据写到存储器以及从其中读取时保护数据。通常,加密使用高级加密标准(AES)。参见NIST Advanced Encryption Standard (FIP pub. 197,2001年11月26日)。高级加密标准是用来对所有读和写存储器存取进行加密和解密的对称密钥加密协议。为了防止读和写干扰(swamp)处理器性能,硬件加速AES加密和解密操作是合乎需要的。

AES提供若干操作模式。AES-128、AES-192和AES-256操作模式分别对AES轮操作的10、12和14次迭代提交128位输入数据。AES轮操作包括连续置换字节、偏移行(Shift Row)和混合列(Mixed Column)变换,之后接着添加圆键(AddRound Key)操作。

在取代字节变换期间,128位输入数据的每8位输入到16个S盒之一中。每个S盒计算它在伽罗瓦域GF(28)中的相应8位输入的乘法逆。一些实现将8位输入映射到合成域(GF(24)2),计算GF(24)2中的乘法逆,将结果又映射到基本域GF(28),并且进入偏移行变换。

附图说明

针对下列附图来描述一些实施例:

图1是存储器加密引擎的示意图;

图2是按照一个实施例的高级加密标准S盒;

图3是按照本发明的一个实施例的乘法器方程的图示;

图4是按照一个实施例的GF(24)乘法器的图示;

图5是按照一个实施例、用于加密和解密的S盒子块的图示;

图6是按照另一个实施例、用于加密和解密的S盒子块的图示;

图7是按照一个实施例、用于加密的混合列块的示意图;

图8是一个实施例的流程图;以及

图9是一个实施例的系统图示。

具体实施方式

按照一些实施例,为加密和解密加速器选择多项式的不同集合。也就是说,多项式的不同集合用于加密和解密,各集合选择成使用较小面积(area),并且为存储器加密引擎输送更大功率。这在一些实施例中是有利的,因为存储器读操作通常比存储器写是更为关键并等待时间敏感的。

参照图1,将来自存储器26的读数据提供给存储器加密引擎10中的2:1复用器,并且然后提供给存储器读路径中的添加圆键单元14。由此,数据转到置换字节块16、偏移行块18和混合列/添加圆键块20。在10次迭代之后,按照一个实施例,输出来自核心22的读数据。核心22可以是处理器、例如中央处理单元。

 把来自核心22的工作数据提供给存储器写路径中的2:1复用器,并且然后提供给逆混合列/添加圆键单元20a。由此,数据转到逆置换字节单元16a和逆偏移行单元18a。按照一个实施例,最后,在10次迭代之后,数据从向存储器26写数据的添加圆键单元14a输出。

在一些实施例中,通过在存储器读期间使用AES-128加密的更简单计算,而在存储器写期间使用AES-128解密,进行折衷以改进读路径。这避免使用更复杂的AES-128解密存储器读。从硅面积使用角度来看,比写端口更多数量的读端口的存在也使这种折衷具有吸引力。

独立加密和解密硬件用于同时读和写操作使多项式的同一集合用于加密和解密是未达最佳的。因此,一些实施例使用多项式的两个集合:一个用于加密而另一个用于解密。

为了促进置换字节中的逆计算,GF(28)中的明文操作数映射到GF(24)2的合成域。合成域中的对应二项元素表示为shx+sl,其中元素sh和sl是GF(24)的域中的项,以及合成域通过多项式x2 +αx+β来定义。另一方面,GF(24)的基本域中的操作通过基本域多项式来定义。对阶4的基本域多项式存在16个潜在选择,范围到x4、x 4 +1…x 4+x3 +x2+x+1。基本域多项式是对GF(2)不可约的多项式,即,它没有在GF(2)={0,1}中的根。这种要求消除大多数选择,从而留下x4 +x+1、x4+x3+1和x4+x3+x2+x+1作为潜在基本域多项式。

合成域GF(24)2是基本域GF(24)的扩展。因此,它与称作合成域多项式x2+αx+β的生成多项式关联,其中α和β是GF(24)的元素。在一些实施例中,多项式可以是在GF(24)中不可约的(即,没有根)。对于合成域多项式存在256个潜在候选,范围到x2、x2+1、….. x2+Fx+E、x2+Fx+F。基本和合成域多项式的4096个可能组合的列表通过对不可约性的测试来削减到360个组合。下一个步骤涉及搜索GF(24)2中作为合成域的根(即,e2+αe+β=0)并且具有也作为原始GF(28)生成多项式的根(即,(ey)8+(ey)4+(ey)3+(ey)+ 1 = 0)的某个幂‘y’的元素‘e’。元素ey形成合成域的基础。上述测试产生360个组合中的8个潜在基础,从而产生合成域的2880个有效表示。

 

以上对基本域多项式x4+x+1、x4+x3+1和x4+x3+x2+x+1示出2880个合成域多项式连同其基础元素(γ=ey)。基础元素γ用来生成映射矩阵[γ7, γ5, γ4, γ3, y2, y, 1]及其逆矩阵。这些多项式对的每个连同基础用来自动生成AES加密和AES解密轮(round)的参数化寄存器传输级(RTL)以及用于在GF(28)与GF(24)2之间转换操作数的映射和逆映射硬件的RTL。

使该过程自动化,以合成全部2880个多项式对,并且得到最低面积解。混合列比例因子为c7的x4+x3+1的基本域多项式和x2 +Cx+C的合成域多项式成对。这种设计使用α>1作为合成域多项式中的选择。α>1的使用要求使用如图2所示的AES S盒中的附加乘法器。这个乘法器的开销可以较低,如在图3中看到,其中这个乘法器对于α=C的最低面积情况能够采用一个“异或”门来实现。

还通过考虑与仿射常数Mb的加法有关的三个选项,进一步优化该设计。这个常数可在仿射变换结束时相加,或者能够设置成0xff或0x00。在后两种情况下,仿射常数反之加入圆键。最低面积解改变成Mb=0xFF以及mixcol比例因子为c2的x4+x3+1和x2+Cx+C的新多项式对的情况,从而引起面积的进一步减小。

采用x4+x3+1的基本域多项式和x2 +Cx+2的合成域多项式来得到最低面积AES解密硬件,其中混合列比例因子为13。我们还通过合成逆仿射常数MAinvb (MAinvb=MAinvb、MAinvb=0和MAinvb=1)的三种选择的设计,来进一步研究解密设计空间。这产生x4 +x3+1和x2 +6x+4的最佳解密多项式对,其中混合列比例因子为13以及总面积为6060 sq.um,导致总的面积改进。因此,得到其中具有两个独立多项式的加密和解密硬件,各单独经过优化以使面积为最小。

由于加密和解密硬件对于x4+x3+1的相同基本域是最佳的,所以GF(24)中的乘法器和逆计算将使用相同设计,如图4所示,因为合成域多项式的选择对这些块没有影响。但是,图2所示的S盒中的sh*α和square*β块使用加密和解密的独立设计,因为这些块(图5和图6)的设计取决于合成域多项式,并且因此取决于α和β的选择。

加密和解密的独立合成域多项式的使用还产生加密和解密的唯一混合列/逆混合列块。加密期间的0xc2和0xc3的混合列比例因子的使用产生*2、*6、*3、*C、*4和*5的简单乘法因子,其分别使用1、2、3、1、4和2“异或”门(图7)来实现。这产生混合列块(图7)的各字节的紧凑28“异或”实现。

类似地,通过计算比例因子*2、*3、*4、*5、*6、*7、*B和*E,来设计解密的逆混合列块。因此,得到其中具有单周期等待时间的加密块以及以相同频率和等待时间进行操作的解密块。我们还有效利用加密块的百分之八(8%)较低面积,以将它用于性能关键读操作,并且反之在存储器写期间使用较大解密块。

我们将紧凑加密块用于存储器读,其与存储器写相比更为性能关键。比写端口更多的读端口的存在证明较低面积加密设计用于读操作的用途。

参照图8,按照一些实施例,存储器加密引擎序列30可通过软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过非短暂性计算机可读介质(例如磁、光或者半导体存储装置)中存储的计算机运行指令来实现。

序列30开始于将多项式的第一集合用于加密,如框32所示。多项式的不同集合可用于解密,如框34所示。在一些实施例中,加密操作可用于读取,如框36所示。

参照图9,系统40可以是便携计算装置、例如膝上型计算机、平板计算机或蜂窝电话,或者它可以是个人计算机,这里举几个例子。系统40可包括耦合到芯片组44的处理器或核心22。芯片组44又可耦合到系统存储器26和固态驱动器51。网络接口卡(“NIC”)50可耦合芯片组44。在一个实施例中,芯片组可包括存储器加密引擎10。

又耦合到芯片组44的是具有天线64的无线接口62。无线接口可以是蜂窝接口,例如第三代合作伙伴项目(3GPP)或长期演进(LTE)蜂窝接口。又耦合到芯片组44的是显示器60。在一个实施例中,显示器60可以是触摸屏。

处理器可以是任何处理器或控制器。在一个实施例中,处理器22可以是应用处理器。

本说明书中提到“一个实施例”或“实施例”表示结合该实施例所述的具体特征、结构或特性包含在本发明所包含的至少一个实现中。因此,词语“一个实施例”或者“在一个实施例中”的出现不一定都表示同一个实施例。此外,具体特征、结构或特性可通过与所示具体实施例不同的其它适当形式来创立,并且所有这类形式均可包含在本申请的权利要求书中。

虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从中知道大量修改和变更。预计所附权利要求书涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号