用于高级加密标准硬件的边信道免疫的线性掩码电路的制作方法

文档序号:17441412发布日期:2019-04-17 04:48阅读:258来源:国知局
用于高级加密标准硬件的边信道免疫的线性掩码电路的制作方法

本申请要求于2016年9月30日提交并且名称为“linearmaskingcircuitsforside-channelimmunizationofadvancedencryptionstandardhardware(用于高级加密标准硬件的边信道免疫的线性掩码电路)”的美国专利申请号15/283,000的优先权,所述美国专利申请出于所有目的通过引用以其全文结合在此。



背景技术:

高级加密标准(advancedencryptionstandard,aes)是用于电子数据加密的规范。美国政府和全球其他实体使用采用秘密密钥的aes进行加密。比如aes加速器等运行密码算法的安全硬件容易受到边信道攻击(sca)的影响。这类攻击可能会刺激安全硬件以提取泄漏的信息,比如,例如,功耗签名、电流签名、电磁迹线或波形、时序信息。然后可以使用泄漏信息来开发攻击模型以从安全硬件中提取秘密密钥。因此,sca对密码系统构成了重大威胁。

功耗sca属于针对比如aes等私钥加密系统的最突出攻击模型。因此,aes加速器和其他硬件安全加速器可以有利地受益于通过被设计为不泄漏关于所嵌入的秘密(例如,秘密密钥)的信息而能够容忍或免疫sca。

附图说明

从以下给出的详细描述以及本公开的各个实施例的附图中,将更全面地理解本公开的实施例。然而,尽管附图有助于解释和理解,但它们仅是辅助,并且不应被认为是将本公开限制于其中所描绘的特定实施例。

图1展示了根据本公开的一些实施例的具有异构随机顺序处理s盒的基础aes加速器。

图2展示了根据本公开的一些实施例的混合列块实施方式。

图3展示了根据本公开的一些实施例的结合了轻量掩码方案的sca容忍aes加速器。

图4展示了根据本公开的一些实施例的采用未受保护设计的aes加密数据路径。

图5展示了根据本公开的一些实施例的采用所提出的掩码设计的aes加密数据路径。

图6展示了根据本公开的一些实施例的掩码安排。

图7展示了根据本公开的一些实施例的具有s盒输入的双轨掩码的sca容忍aes加速器。

图8展示了根据本公开的一些实施例的用于使用动态逻辑和互补传输晶体管逻辑来生成s盒输入的双轨逻辑实施方式。

图9展示了根据本公开的一些实施例的结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器。

图10展示了根据本公开的一些实施例的用于将轻量掩码方案结合到aes加速器中的方法。

图11展示了根据本公开的一些实施例的用于将s盒输入的双轨掩码结合到aes加速器中的方法。

图12展示了根据本公开的一些实施例的具有结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器的计算装置。

具体实施方式

运行密码算法的aes加速器和其他安全硬件可能容易受到用于提取泄露的信息的边信道攻击(sca)的影响。因此,aes加速器和其他硬件安全加速器可以有利地受益于通过被设计为不泄漏关于所嵌入的秘密(例如,秘密密钥)的信息而能够容忍或免疫sca。数据签名与功耗签名之间的直接关系是aes设计的边信道漏洞背后的主要原因。

一些用于保护安全硬件免受功耗sca影响的现有技术可以包括非线性随机掩码、双轨逻辑设计等。然而,这类技术可能遭受极大面积开销、能耗、或这两者的影响,影响的范围可能为从2倍到4倍,这可能由此使得这类技术对于实际硬件实施方式而言并不高效。

本文所公开的第一种类型的设计是极轻量掩码设计,用于破坏外部可见数据与可测量电流签名之间的依赖性。这些设计可以通过将数据无关的随机值与经处理的数据相加来减轻数据/功耗关系,从而使得功耗签名可以与经处理的数据没有关系。根据这些设计的掩码电路可以提供具有小于百分之三面积开销的随机掩码求逆,其在面积、能量、或者这两者方面都比常规设计提高4倍。当与被设计为没有边信道对策的基础aes加速器相比时,所提出的掩码电路可以实现零吞吐量开销,而常规的非线性随机掩码技术在吞吐量方面可以表现出大约2倍的减少。

此外,aes设计内的中间数据的汉明权重(hw)可能泄漏关于总线中位分布的统计的信息。中间数据总线中1与0的数量之比可能泄漏关于用于计算中间状态的秘密密钥的信息。从大量的一组功耗迹线中,可以估计出hw分布,并且然后可以使用所述hw分布来构建可以从中提取所嵌入秘密的基础计算的功耗模型。

本文所公开的第二种类型的设计是用于在所有输入字节上强制实施恒定的hw分布的轻量设计。这可以帮助确保数据/功耗关系在输入字节的所有可能值上可以是恒定的,从而阻碍用于提取秘密密钥的hw模型的组建。所提出的设计可以表现出百分之一的最小面积开销,与常规的全双轨边信道抗性设计相比提高了2倍。

在以下描述中,讨论了大量细节以便提供对本公开的实施例更透彻的解释。然而,对于本领域的技术人员将明显的是,本公开的实施例可以在没有这些特定细节的情况下实践。在其他实例中,以框图形式而非详细地示出了众所周知的结构和装置以避免模糊本公开的实施例。

注意,在实施例的相应附图中,利用线条来表示信号。一些线条可能更粗以指示更大数量的组成信号路径,和/或在一端或多端具有箭头以指示信息流动方向。这种指示并非旨在是限制性的。相反,这些线条与一个或多个示例性实施例结合使用以帮助更容易地理解电路或逻辑单元。如由设计需要或偏好所指示的任何所表示的信号可以实际上包括可在任一方向上行进并可以利用任何适当类型的信号方案来实施的一个或多个信号。

在整个说明书中,并且在权利要求中,术语“连接(connected)”指已连接的物体之间的直接电、机械、或磁性连接,不存在任何中介装置。术语“耦合(coupled)”指或者已连接的物体之间的直接电、机械、或磁性连接或者通过一个或多个无源或有源中介装置的间接连接。术语“电路(circuit)”或“模块(module)”可以指被安排成彼此合作以提供期望功能的一个或多个无源和/或有源组件。术语“信号(signal)”可以指至少一个电流信号、电压信号、磁信号、或数据/时钟信号。“一个(a)”、“一种(an)”以及“所述(the)”的意义包括复数的指代。“在…中(in)”的意义包括“在…中(in)”和“在…上(on)”。

术语“基本上”、“接近”、“大约”、“近似”和“约”一般指在目标值的+/-10%内。除非另有说明,否则使用序数形容词“第一”、“第二”、和“第三”等来描述共同对象,仅仅指示相同对象的不同实例被提及,并且不旨在暗示如此描述的对象必须在或者时间上、空间上、排名上、或以任何其他方式处于给定序列中。

应当理解的是,如此使用的术语在适当环境下可互换,以使得本文中所述的本发明的实施例例如能够以除本文中所展示或以其它方式描述的那些取向以外的其它取向操作。

说明书中和权利要求中的术语“左”、“右”、“前”、“后”、“顶部”、“底部”、“在……上方”、“在……下方”等(如果存在的话)用于描述性目的,而未必用于描述永久的相对位置。

为了实施例的目的,各个电路、模块和逻辑块中的晶体管是隧穿fet(tfet)。各个实施例的一些晶体管可以包括金属氧化物半导体(mos)晶体管,其包括漏极、源极、栅极和体端子。晶体管还可以包括三栅极和鳍式场效应晶体管、环绕栅极圆柱形晶体管、方形线或矩形带状晶体管、或实施比如碳纳米管或自旋电子装置的晶体管功能的其它装置。mosfet对称的源极端子和漏极端子即为完全相同的端子并且在此可互换地使用。另一方面,tfet装置具有非对称的源极端子和漏极端子。本领域的技术人员将理解的是,在不背离本公开的范围的情况下,其他晶体管(例如,双极结型晶体管——bjtpnp/npn、bicmos、cmos等)可以用于一些晶体管。

出于本公开的目的,短语“a和/或b”以及“a或b”意指(a)、(b)或(a和b)。出于本公开的目的,短语“a、b和/或c”是指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。

另外,本公开中所讨论的组合逻辑和时序逻辑两者的各种元件都可以涉及物理结构(比如,与门、或门、或者异或门),或者涉及实施作为所讨论的逻辑的布尔等效物的逻辑结构的装置的合成或以其他方式优化的集合。

本文所公开的第一种类型的设计可以用于极轻量掩码设计,所述极轻量掩码设计用于破坏外部可见数据与可测量电流签名之间的依赖性。攻击者可以通过改变固定密钥的明文值(例如,输入数据)并观察相应的密文值来从多个随机加密中收集功耗签名。根据所收集的功耗值,攻击者可以安装功耗sca,比如,差分功耗分析(dpa)或相关功耗攻击(cpa)。

作为示例,cpa可以构建基于汉明距离(hd)的数据功耗模型来近似估计受到攻击的电路的功耗。在所述模型中,在输入字节与输出字节之间的转换次数可以与在此计算期间所消耗的功耗成比例。hd可以与观察到的功耗曲线相关,并且正确密钥猜测可以在相关系数向量中产生峰值。

在第一种类型的设计中,为了防止攻击者得知关于预定掩码设计中掩码的信息,可以针对每个加密轮次随机生成被加上数据的掩码值。可以使用伪随机数生成器来生成随机掩码值。可以在混合列操作(如由硬件根据aes要求所实施的)之前将掩码加上数据,然后存储在数据寄存器中。掩码值可以与正被处理的数据没有关系,并且因此可以显著减少功耗签名中的泄漏量。

然后可以使用掩码去补偿技术来从经掩码数据中提取密文。基于在混合列操作之前的掩码添加,相应的掩码去补偿技术可以被简化为简单的逻辑操作(比如,异或、与非、或非),由此为设计引入最小的面积和能量开销。

图1展示了根据本公开的一些实施例的具有异构随机顺序处理s盒的基础aes加速器。aes加速器100可以包括密钥生成电路系统110、前置密钥寄存器多路复用电路系统111、密钥寄存器电路系统112、后置密钥寄存器多路复用电路系统120、下一数据异或电路系统124、以及下一数据输入多路复用电路系统130。aes加速器100还可以包括第一密钥与数据异或电路系统122、第一密钥与数据多路复用电路系统140、映射电路系统142、第二密钥与数据异或电路系统146、第二密钥与数据多路复用电路系统150、s盒电路系统152、逆映射电路系统162、混合列电路系统166、前置数据寄存器多路复用电路系统170、以及数据寄存器电路系统172。

密钥生成电路系统110可以具有耦合至逆映射电路系统162的输出的输入。前置密钥寄存器多路复用电路系统111可以至少具有耦合至密钥输入信号路径、密钥生成电路系统110的输出、以及后置密钥寄存器多路复用电路系统120的输出的输入。密钥寄存器电路系统112可以具有耦合至前置密钥寄存器多路复用电路系统111的输出的输入。

后置密钥寄存器多路复用电路系统120可以具有分别耦合至密钥寄存器电路系统112的第一输出和第二输出的至少两个输入、以及耦合至密钥生成信号路径的选择输入。下一数据异或电路系统124可以具有耦合至两个或更多个数据位的输入以及耦合至后置密钥寄存器多路复用电路系统120的输出的输入。下一数据输入多路复用电路系统130可以具有耦合至下一数据异或电路系统124的输入、耦合至逆映射电路系统162的输入、耦合至最后数据轮次信号路径的选择输入、以及耦合至下一数据输入信号路径的输出。

第一密钥与数据异或电路系统122可以具有耦合至后置密钥寄存器多路复用电路系统120的输入以及耦合至数据寄存器电路系统172的输出的输入。第一密钥与数据多路复用电路系统140可以具有耦合至后置密钥寄存器多路复用电路系统120的输出的输入以及耦合至第一密钥与数据异或电路系统122的输出的输入。映射电路系统142可以具有耦合至第一密钥与数据多路复用电路系统140的输出的输入。第二密钥与数据异或电路系统146可以具有耦合至映射电路系统142的输出的输入以及耦合至数据寄存器电路系统172的输出的输入。第二密钥与数据多路复用电路系统150可以具有耦合至映射电路系统142的输出的第一输入,耦合至第二密钥与数据异或电路系统146的输出的第二输入,以及耦合至第一轮次信号路径、密钥生成信号路径、和最后轮次信号路径中一个或多个的选择输入。

s盒电路系统152可以具有耦合至第二密钥与数据多路复用电路系统150的输出的输入。逆映射电路系统162可以具有耦合至s盒电路系统152的输出的输入。混合列电路系统166可以具有耦合至s盒电路系统152的输出的输入,并且还可以具有耦合至混合列电路系统166本身的输出的输入。前置数据寄存器多路复用电路系统170可以具有耦合至数据寄存器电路系统172的输出的输入、耦合至明文输入信号路径的输入、耦合至下一数据输入信号路径的输入、以及耦合至混合列电路系统166的输出的输入。前置数据寄存器多路复用电路系统170还可以具有耦合至负载信号路径、下一数据信号路径和最后轮次信号路径中的一个或多个的选择输入。数据寄存器电路系统172可以具有耦合至前置数据寄存器多路复用电路系统170的输出的输入。

明文输入信号路径上承载的值可能经历十个轮次的aes加密。每一轮次的密钥可以是由密钥生成电路系统110生成的,所述密钥生成电路系统可以共享用于加密操作的逻辑块。密钥生成过程可以夹在两个加密操作之间。加密轮次可以包括四个操作:轮次密钥添加、s盒计算、移位行变换和混合列变换。

在轮次密钥添加期间,可以将密钥字节与传入数据字节相加。所产生的字节可以被馈送到s盒电路系统152,所述电路系统可以实施对传入数据字节的非线性替换。按照式y=ax-1+mb,s盒可以取一定数量的输入数据位并将其变换成一定数量的输出位,其中,x可以是输入数据字节,a可以是仿射矩阵,并且mb可以是仿射常数。在移位行操作期间,可以置换输入数据字节,以使得输出数据字节可以处于不同的字节顺序。

aes加速器100可以包括两个s盒。在各种设计中,aes加速器100可以可扩展为包括其他数量的s盒,比如,四个s盒、八个s盒、或十六个s盒。

因此,aes加速器100可以基于二s盒设计。s盒电路系统152可以结合使用复合域算术运算gf(24)2所设计的异构s盒,而不是采用同构s盒。复合域算术运算可以通过选择扩展域多项式和基域多项式来控制。可以使用不同的复合域算术运算来设计这两个s盒,以使得它们展现出差别较大的功耗签名。

在加密轮次期间每个周期可以对通过s盒的数据流进行随机化,以使得相同的数据字节可以在多个轮次的加密期间展现出不同的功耗签名。可以由伪随机数生成器(prg)来确定随机数据流顺序。在一些实施例中,伪随机数生成器可以包括线性反馈移位寄存器(lfsr)。

基础设计可以结合有在复合域1与2之间的适当跨域映射块,在这些复合域中,s盒被设计成用于确保正确的功能。基础设计可以从s盒的输入开始增强sca容忍度。然而,馈送s盒的输入在基础设计与没有任何对策的情况下实施的常规aes设计之间可能是类似的。馈送s盒的输入数据字节可以通过将从数据寄存器电路系统172取出的数据字节与从密钥寄存器电路系统112取出的密钥字节相加来生成。由于生成用于基础设计与用于常规aes设计的输入字节的电路系统相类似,因此组合逻辑可能泄漏关于与数据字节相加的密钥字节的信息。大量的一组功耗迹线以及汉明权重功耗模型可能泄漏密钥中的部分或全部位。

图2展示了根据本公开的一些实施例的混合列块实施方式。混合列变换可以被实施为矩阵乘法210,其中,传入数据字节可以与预定比例因子(p0、p1、p2和p3)相乘,并且可以被加在一起以获得输出数据字节。

基本上可以与混合列电路系统166相似的混合列块220可以被实施为乘法器和累加器(mac)单元,其中,两个数据字节与比例因子相乘并存储在寄存器中。在下一周期期间,另外两个数据字节与比例因子相乘,并且与寄存器中所存储的数据相加。为此,混合列块220可以包括多路复用级224、异或级226和累加级228,所述多路复用级接受部分项输入流222。

基于累加级228处的各输入,混合列块可以以迭代的方式来计算矩阵乘法210的各个项。

图3展示了根据本公开的一些实施例的结合了轻量掩码方案的sca容忍aes加速器。aes加速器300可以包括密钥生成电路系统310、前置密钥寄存器多路复用电路系统311、密钥寄存器电路系统312、后置密钥寄存器多路复用电路系统320、下一数据异或电路系统324、以及下一数据输入多路复用电路系统330。aes加速器300还可以包括第一密钥与数据异或电路系统322、第一密钥与数据多路复用电路系统340、映射电路系统342、第二密钥与数据异或电路系统346、第二密钥与数据多路复用电路系统350、s盒电路系统352、逆映射电路系统362、混合列电路系统366、前置数据寄存器多路复用电路系统370、以及数据寄存器电路系统372。

aes加速器300的各部分可以以基本上与aes加速器100的各部分彼此耦合的方式类似的方式而彼此耦合。另外,与aes加速器100相比,aes加速器300可以包括prg电路系统354、掩码电路系统356、掩码去除电路系统348、以及后置掩码多路复用电路系统360。

可以包括lfsr的prg电路系统354可以具有耦合至两个或更多个数据位的输入。prg电路系统354可以生成伪随机数序列(其可以是用于aes加速器300目的的有效随机数序列)以及所述伪随机数序列的寄存副本。在任何时钟周期中,掩码电路系统356可以对s盒电路系统352的输出与由prg电路系统354生成的伪随机值进行异或。同时,掩码去除电路系统348可以对数据寄存器电路系统372的输出与由prg电路系统354生成的伪随机值的寄存副本进行异或。

所提出的结合轻量掩码方案的sca容忍aes加速器可以基于结合16位内部数据路径的设计,在所述设计中,aes加速器300可以包括被设计成处理两个传入数据字节的两个s盒。然而,在各种设计中,aes加速器300可以可扩展为包括用于处理其他数量的传入数据字节的其他数量的s盒,比如,用于处理四个字节的四个s盒、用于处理八个字节的八个s盒、或者用于处理十六个字节的十六个s盒。因此,所公开的设计可以扩展为处理完整的aes数据路径。

在所提出的aes加速器中,可以在混合列变换之前将随机掩码与数据相加。由于混合列块利用预定因子来扩展数据并且将数据在本地写入寄存器,因此可能存在潜在的漏洞点。此外,在混合列变换之后,可以将经扩展的数据字节写入数据寄存器,所述数据寄存器可以在后续操作周期中使用。

混合列变换可以有利地是这样的点:其上添加了掩码,使得可以对被写入寄存器的数据进行完全随机化,并且功耗签名可以与未经掩码的数据高度不相关。在混合列变换处加上掩码的优点可以是:可以选择比例因子,以使得gf域中的因子之和结果为0x1。这种性质可以在很大程度上极大地简化掩码去除和/或去补偿过程,使得可以将补偿值与经掩码数据相加以便恢复未经掩码数据。

图4展示了根据本公开的一些实施例的采用未受保护设计的aes加密数据路径,并且图5展示了根据本公开的一些实施例的采用所提出的掩码设计的aes加密数据路径。(移位行变换未在图4和图5中示出,因为其可以在互连级实施。)在图4中,在未受保护的aes加密数据路径400中,来自数据寄存器410的数据可以与密钥(k)相加,并且可以作为输入被提供至s盒420(如s盒输入=m+k)。在计算ax-1(其中,x是s盒输入)之后,可以加上仿射常数mb。然后,可以将s盒输出发送到混合列块430,以便利用预定因子p0、p1、p2和p3来进行扩展和累加。然后,可以将所得数据(s')写入数据寄存器410。

在图5中,受保护的aes加密数据路径500可以具有数据寄存器510、s盒520、以及混合列块530,并且可以基本上类似于未受保护的aes加密数据路径400。然而,在受保护的aes加密数据路径500中,使用由伪随机数生成器(其可以是lfsr)生成的随机掩码(mask)来对被写入混合列和数据寄存器的数据进行掩码,以便阻碍数据/功耗关系。

为了辅助用于提取未经掩码数据的掩码去除过程,可以使用掩码去补偿电路系统540(比如,掩码去除电路系统348)。掩码去补偿电路系统540可以计算值mask'(mx(p0+p1+p2+p3))并且可以将其存储在本地寄存器中。例如,原生aes域gf(28)中的比例因子可以为使得{p0,p1,p2,p3}等于{0x2,0x3,0x1,0x1}。这导致因子(p0+p1+p2+p3)等于0x1。因此,可以将去补偿值减小至掩码值mask。

图6展示了根据本公开的一些实施例的掩码安排。掩码安排600可以包括prg电路系统610和掩码电路系统620。prg电路系统610可以是lfsr。可以将prg电路系统610的输出与s盒输出进行异或以产生经掩码数据。

返回图5,针对可以将单独的掩码与每个数据字节相加的设计,可以相应地计算掩码去补偿值并将其存储在寄存器中。在这类设计中,除了异或运算之外,计算mask'所需的电路系统还可以包括乘法(或者可以由其组成),并且可以引起附加的3%面积开销。在下一轮次的加密期间,可以在密钥添加过程期间将掩码去补偿值与数据相加,以便恢复未经掩码数据以用于后续操作。

掩码添加可以确保被写入寄存器的数据是经掩码的,并且因此,功耗签名可以与处理中的未经掩码数据高度不相关。这可以有利地帮助减轻对寄存器的任何基于hd或hw的攻击。与基础设计相比,这类设计可以实现相同吞吐量,同时表现出比常规掩码设计2倍到4倍之间的面积提高。

本文所公开的第二种类型的设计可以用于在所有输入字节上强制实施恒定的hw分布的轻量设计。基于边信道的攻击可以利用aes加速器中的数据/功耗关系来提取所嵌入的秘密密钥。攻击者可以收集大量的一组泄漏签名,并且可以利用某些统计模型来预测在计算中所使用的秘密密钥字节。在不同的泄漏模型中,功耗sca由于其在安装复杂性方面的容易性而非常受欢迎。

功耗攻击中所使用的最突出攻击模型之一是hw模型,其利用中间状态中1与0的数量的比例来近似估计功耗。当做出正确密钥猜测时,攻击者所安装的一组随机加密的估计hw值可以与从运行密码算法的装置收集的功耗签名高度相关。

常规边信道容忍设计可以采用非线性掩码来减轻数据/功耗关系。相比之下,本文所公开的第二种类型的设计提出了一种用于减轻基于hw模型的功耗sca的轻量方案。这些设计可以采用双轨逻辑掩码方案,所述方案可以计算相同输出字节的数据和互补版本。这可以有利地帮助确保中间敏感目标值在所有不同输出字节值上具有恒定的hw。所提出的设计可以以基于异构随机顺序处理s盒的设计为基础,在这些基于s盒的设计中,选择某些中间敏感值来部署双轨逻辑掩码技术就足够了。

在第二种类型的设计中,双轨逻辑掩码可以确保在中间状态中的1的数量与0的数量的比例恒定。通过添加额外的逻辑门,或者通过将双轨功能结合到现有门中,可以实现在所有数据字节上的期望恒定hw。

与常规设计相比,基于掩码的设计在面积开销和/或能量消耗方面可以表现出2倍到4倍之间的降低。与缺乏任何对策的基础设计相比,所提出的sca容忍aes加速器可以表现出小于1%的面积开销和/或能量开销。通过添加几个简单的逻辑门,双轨掩码方案(例如,具有s盒输入)可以有利地帮助在s盒的所有可能输入字节值上维持恒定的功耗曲线

图7展示了根据本公开的一些实施例的具有s盒输入的双轨掩码的sca容忍aes加速器。aes加速器700可以包括密钥生成电路系统710、前置密钥寄存器多路复用电路系统711、密钥寄存器电路系统712、后置密钥寄存器多路复用电路系统720、下一数据异或电路系统724、以及下一数据输入多路复用电路系统730。aes加速器700还可以包括第一密钥与数据异或电路系统722、第一密钥与数据多路复用电路系统740、映射电路系统742、第二密钥与数据异或电路系统746、第二密钥与数据多路复用电路系统750、s盒电路系统752、逆映射电路系统762、混合列电路系统766、前置数据寄存器多路复用电路系统770、以及数据寄存器电路系统772。

aes加速器700的各部分可以以基本上与aes加速器100的各部分彼此耦合的方式类似的方式而彼此耦合。另外,与aes加速器100相比,aes加速器700可以包括第一求逆电路系统743、第二求逆电路系统744和汉明权重电路系统745。

第一求逆电路系统743可以具有耦合至映射电路系统742的输出的输入。第二求逆电路系统744可以具有耦合至数据寄存器电路系统772的输出的输入。汉明权重电路系统745可以具有耦合至第一求逆电路系统743的输出的第一输入、以及耦合至第二求逆电路系统744的输出的第二输入。

因此,第一求逆电路系统743可以计算到s盒电路系统752的输入的互补版本,并且第二求逆电路系统744可以计算数据寄存器电路系统772的输出的互补版本。然后,汉明权重电路系统745可以对由此所产生的这些互补版本进行异或。因此,在各个实施例中,可以对来自密钥寄存器电路系统712的密钥字节和来自数据寄存器电路系统772的数据字节进行求逆并相加在一起。此求逆和异或可以与由第二密钥与数据异或电路系统746所执行的异或(在所述异或中,耦合至映射电路系统742的输出的输入与耦合至数据寄存器电路系统772的输出的输入进行异或)并行发生。

aes加速器700在其每个周期处理两个字节时,可以有利地平衡数据和互补信号的输出负载,并且可以在所有字节值上实现恒定为8的hw。

aes加速器700的双轨掩码可以以附加逻辑门(例如,每个位两个求逆器和一个异或门)的形式来实施。双轨逻辑还可以通过在同一逻辑门中结合数据和互补输出来实施。

图8展示了根据本公开的一些实施例的用于使用动态逻辑和互补传输晶体管逻辑来生成s盒输入的双轨逻辑实施方式。双轨电路系统810包括异或非门814和异或门818。异或非门814可以求出数据位与密钥位的异或非,而异或门818可以求出数据位与密钥位的异或。类似地,互补传输晶体管电路系统820可以包括异或非门824和异或门828。异或非门824可以求出数据位与密钥位的异或非,而异或门828可以求出数据位与密钥位的异或。因此,aes加速器700可以使用比如双轨电路系统810和/或互补传输晶体管电路系统820等电路系统来实施第一求逆电路系统743、第二求逆电路系统744和/或汉明权重电路系统745,以便为耦合至s盒电路系统752的输入的数据信号和密钥信号获得双轨逻辑信号。在各个实施例中,可以针对第一求逆电路系统743、第二求逆电路系统744、和/或汉明权重电路系统745的多位数据路径架构的每个位实施双轨电路系统810和/或互补传输晶体管电路系统820。

这种双轨逻辑的全定制设计可以实现紧凑的布局,并且可以允许更好地对平衡数据信号和互补信号上的负载进行控制。因此,这种双轨逻辑设计可以在所有字节值上实现恒定的功耗分布。

与缺乏任何对策的常规设计相比,所提出的设计可以表现出小于百分之十的面积开销。开销可以包括所有异构s盒逻辑和随机字节顺序切换模块。仅来自双轨逻辑掩码的开销可以小于百分之二,与完全掩码的aes实施方式相比,这可以有利地提供在面积节省方面的显著改进。

图9展示了根据本公开的一些实施例的结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器。aes加速器900可以包括密钥生成电路系统910、前置密钥寄存器多路复用电路系统911、密钥寄存器电路系统912、后置密钥寄存器多路复用电路系统920、下一数据异或电路系统924、以及下一数据输入多路复用电路系统930。aes加速器900还可以包括第一密钥与数据异或电路系统922、第一密钥与数据多路复用电路系统940、映射电路系统942、第二密钥与数据异或电路系统946、第二密钥与数据多路复用电路系统950、s盒电路系统952、逆映射电路系统962、混合列电路系统966、前置数据寄存器多路复用电路系统970、以及数据寄存器电路系统972。

aes加速器900的各部分可以以基本上与aes加速器100的各部分彼此耦合的方式类似的方式而彼此耦合。aes加速器900还可以包括prg电路系统954、掩码电路系统956、掩码去除电路系统948、以及后置掩码多路复用电路系统960,这些电路系统可以以基本上与aes加速器300的相似部分耦合至aes加速器300的各部分的方式类似的方式耦合至aes加速器900的各部分。另外,aes加速器900可以包括第一求逆电路系统943、第二求逆电路系统944和汉明权重电路系统945,这些电路系统可以以基本上与aes加速器700的相似部分耦合至aes加速器700的各部分的方式类似的方式耦合至加速器900的各部分。

因此,aes加速器900可以结合用于破坏外部可见数据与可测量电流签名之间依赖性的极轻量掩码设计的第一种类型的设计、以及用于在所有输入字节上强制实施恒定hw分布的轻量设计的第二种类型的设计。

aes加速器900的各个实施例可以结合用于破坏外部可见数据与可测量电流签名之间依赖性的极轻量掩码设计的第一种类型的设计。s盒电路系统952可以可操作用于根据aesrijndaels盒矩阵将s盒电路系统952的输入上的值转换成s盒电路系统952的输出上的值。prg电路系统954可以可操作用于在prg电路系统954的第一输出上提供伪随机数序列,并且在prg电路系统954的第二输出上提供所述系列的寄存副本。掩码电路系统956可以可操作用于将s盒电路系统952的输出上的值与prg电路系统954的第一输出上的值的异或提供到掩码电路系统956的与数据寄存器电路系统972的输入耦合的输出上。掩码去除电路系统948可以可操作用于将数据寄存器电路系统972的输出上的值、耦合至密钥寄存器电路系统912的输出的值与prg电路系统954的第二输出上的值的异或提供到掩码去除电路系统948的与s盒电路系统952的输入耦合的输出上。

在一些实施例中,prg电路系统954可以包括lfsr。对于一些实施例,以下各项中的至少一项的宽度可以为整数个字节:s盒电路系统952的输入、s盒电路系统952的输出、prg电路系统954的第一输出、prg电路系统954的第二输出、掩码电路系统956的输出、数据寄存器电路系统972的输入、数据寄存器电路系统972的输出、密钥寄存器电路系统912的输出、以及掩码去除电路系统948的输出。在一些实施例中,以下各项中的至少一项的宽度是两个字节:s盒电路系统952的输入、s盒电路系统952的输出、prg电路系统954的第一输出、prg电路系统954的第二输出、掩码电路系统956的输出、数据寄存器电路系统972的输入、数据寄存器电路系统972的输出、密钥寄存器电路系统912的输出、以及掩码去除电路系统948的输出。

对于一些实施例,混合列电路系统966可以可操作用于根据aesrijndael混合列变换将混合列电路系统966的输入上的值转换成混合列电路系统966的输出上的值。在一些实施例中,前置数据寄存器多路复用电路系统970可以是至少具有以下各项的数据寄存器多路复用电路系统:耦合至数据寄存器电路系统972的输出的第一输入、耦合至混合列电路系统966的输出的第二输入、选择输入、以及耦合至数据寄存器电路系统972的输入的输出。对于一些实施例,后置掩码多路复用电路系统960可以是至少具有以下各项的混合列多路复用电路系统:耦合至s盒电路系统952的输出的第一输入、耦合至掩码电路系统954的输出的第二输入、选择输入、以及耦合至混合列电路系统966的输入的输出。

在一些实施例中,第二密钥与数据多路复用电路系统950可以是至少具有以下各项的第一s盒多路复用电路系统:耦合至映射块942的输出的第一输入、耦合至密钥寄存器电路系统912的输出与数据寄存器电路系统972的输出的异或的第二输入、选择输入、以及耦合至s盒电路系统952的输入的输出。对于一些实施例,后置掩码多路复用电路系统960可以是至少具有以下各项的第二s盒多路复用电路系统:耦合至第一s盒多路复用电路系统的输出第一输入、耦合至掩码去除电路系统954的输出的第二输入、选择输入、以及耦合至s盒电路系统952的输入的输出。

对于一些实施例,第一求逆电路系统943可以可操作用于将第一求逆电路系统943的输入上的值的逆提供至第一求逆电路系统943的输出,第一求逆电路系统943的输入耦合至第一s盒多路复用电路系统的输出。第二求逆电路系统944可以可操作用于将第二求逆电路系统944的输入上的值的逆提供至第二求逆电路系统944的输出,第二求逆电路系统944的输入耦合至数据寄存器电路系统972的输出。汉明权重电路系统945可以可操作用于执行对第一求逆电路系统943的输出上的值与第二求逆电路系统944的输出上的值的异或。

类似地,aes加速器900的各个实施例可以结合用于破坏外部可见数据与可测量电流签名之间依赖性的极轻量掩码设计的第一种类型的设计。s盒电路系统952可以可操作用于根据aesrijndaels盒矩阵将s盒电路系统952的输入上的值转换成s盒电路系统952的输出上的值。第一求逆电路系统943可以可操作用于将第一求逆电路系统943的输入上的值的逆提供至第一求逆电路系统943的输出。第二求逆电路系统944可以可操作用于将第二求逆电路系统944的输入上的值的逆提供至第二求逆电路系统944的输出。汉明权重电路系统945可以可操作用于执行对第一求逆电路系统943的输出上的值与第二求逆电路系统944的输出上的值的异或。第一求逆电路系统943的输入耦合至第一s盒多路复用电路系统的输出。在一些实施例中,第一求逆电路系统943的输入可以耦合至以下各项中的至少一项:s盒电路系统952的输入、以及s盒电路系统952的输出。

在一些实施例中,第二求逆电路系统944的输入可以耦合至数据寄存器电路系统972的输出。对于一些实施例,第一s盒多路复用电路系统可以至少具有耦合至密钥寄存器电路系统912的输出的第一输入、耦合至密钥寄存器电路系统912的输出与数据寄存器电路系统972的输出的异或的第二输入、选择输入、以及耦合至s盒电路系统952的输入的输出。在一些实施例中,第二s盒多路复用电路系统可以至少具有耦合至第一s盒多路复用电路系统的输出的第一输入、耦合至数据寄存器电路系统972的输出与第一s盒多路复用电路系统的输出的异或的第二输入、选择输入、以及耦合至s盒电路系统的输入的输出。第一求逆电路系统943的输入可以耦合至第一s盒多路复用电路系统的输出。

对于一些实施例,以下各项中的至少一项的宽度可以为整数个字节:s盒电路系统952的输入、s盒电路系统952的输出、第一求逆电路系统943的输入、以及第二求逆电路系统944的输入。在一些实施例中,以下各项中的至少一项的宽度可以为两个字节:s盒电路系统952的输入、s盒电路系统952的输出、第一求逆电路系统943的输入、以及第二求逆电路系统944的输入。

在一些实施例中,prg电路系统954可以可操作用于在prg电路系统954的第一输出上提供伪随机数序列,并且在prg电路系统954的第二输出上提供所述序列的寄存副本。掩码电路系统956可以可操作用于将s盒电路系统952的输出上的值与prg电路系统954的第一输出上的值的异或提供到耦合至数据寄存器电路系统972的输入的掩码电路系统956的输出上。掩码去除电路系统948可以可操作用于将数据寄存器电路系统972的输出上的值、密钥寄存器电路系统912的输出上的值与prg电路系统954的第二输出上的值的异或提供到掩码去除电路系统948的与s盒电路系统952的输入耦合的输出上。

图10展示了根据本公开的一些实施例的用于将轻量掩码方案结合到aes加速器中的方法。方法1000可以包括转换1010、生成1015、掩码1020、解除掩码1025、执行1030、求逆1040、求逆1045和/或执行1050。在转换1010中,可以根据aesrijndaels盒矩阵而将替换字节输入转换成替换字节输出。在生成1015中,可以在第一prg输出上生成伪随机数序列,并且可以在第二prg输出上生成伪随机数序列的寄存副本。在掩码1020中,可以通过将替换字节输出上的值与第一prg输出上的值的异或提供到数据寄存器输入上来对替换字节输出上的值进行掩码。在解除掩码1025中,可以通过将数据寄存器输出上的值、耦合至密钥寄存器输出的值与第二prg输出上的值的异或提供到耦合至替换字节输入的接口上来对数据寄存器输出上的值进行解除掩码。

在一些实施例中,伪随机数序列可以由lfsr生成。对于一些实施例,在执行1030中,可以根据aesrijndael混合列变换对数据寄存器输入执行混合列操作。在一些实施例中,在求逆1040中,可以对替换字节输入进行求逆以产生第一逆输出。对于一些实施例,在求逆1045中,可以对数据寄存器输出进行求逆以产生第二逆输出。在一些实施例中,在执行1050中,可以执行对第一逆输出与第二逆输出的异或。

对于一些实施例,以下各项中的至少一项的宽度可以为整数个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。在一些实施例中,以下各项中的至少一项的宽度可以为两个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

图11展示了根据本公开的一些实施例的用于将s盒输入的双轨掩码结合到aes加速器中的方法。方法1100可以包括转换1110、求逆1115、求逆1120、执行1125、生成1130、掩码1135、和/或解除掩码1140。在转换1110中,可以根据aesrijndaels盒矩阵而将替换字节输入转换成替换字节输出。在求逆1115中,可以对第一输入进行求逆以产生第一逆输出。在求逆1120中,可以对第二输入进行求逆以产生第二逆输出。在执行1125中,可以执行对第一逆输出与第二逆输出的异或。第一输入可以耦合至替换字节输入和替换字节输出中的至少一项,并且第二输入可以耦合至数据寄存器电路系统的输出。

在一些实施例中,以下各项中的至少一项的宽度可以为整数个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。对于一些实施例,以下各项中的至少一项的宽度可以为两个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

对于一些实施例,在生成1130中,可以在第一prg输出上生成伪随机数序列,并且可以在第二prg输出上生成伪随机数序列的寄存副本。在一些实施例中,在掩码1135中,可以通过将替换字节输出上的值与第一prg输出上的值的异或提供到数据寄存器输入上来对替换字节输出上的值进行掩码。对于一些实施例,在解除掩码1140中,可以通过将数据寄存器输出上的值、密钥寄存器输出上的值与第二prg输出上的值的异或提供到耦合至替换字节输入的接口上来对数据寄存器输出上的值进行解除掩码。

尽管关于图10和图11的流程图中的动作以特定顺序被示出,但是动作的顺序可以被修改。因而,可以按照不同的顺序执行所展示的实施例,并且某些动作可以并行执行。根据某些实施例,图10和图11中列出的动作和/或操作中的一些是可选的。所呈现的动作的编号是为了清楚起见,并不旨在规定各个动作必须出现的操作的顺序。此外,可以采用各种组合利用来自各流程的操作。

在一些实施例中,一种设备可以包括用于执行图10和图11的方法的各动作和/或操作的装置。

此外,在一些实施例中,机器可读存储介质可以具有可执行指令,所述可执行指令在被执行时使得一个或多个处理器执行包括图10和图11的方法的操作。这种机器可读存储介质可以包括以下各种存储介质中的任何一种:如磁存储介质(例如,磁带或磁盘)、光存储介质(例如,光盘)、电子存储介质(例如,常规硬盘驱动器、固态磁盘驱动器、或基于闪存的存储介质)、或者任何其他有形存储介质或非暂态存储介质。

图12展示了根据本公开的一些实施例的具有结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器的计算装置。计算装置1200可以是具有根据本公开的一些实施例的结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器的计算机系统、芯片上系统(soc)、平板计算机、移动装置、智能装置、或者智能电话。应理解的是,总体上示出了计算装置1200的某些组件,并且图12中未示出这种装置的全部组件。此外,虽然一些组件可以在物理上分离,但是其他组件可以被集成在同一物理封装体内,或者甚至可以被集成在相同的物理硅裸片上。因此,如图12所描绘的各组件之间的分离在某些情况下可能不是物理的,而可以是功能分离。还应指出的是,图12的与任何其他附图的元件具有相同名称或附图标记的那些元件可以通过与所述的方式相似的任何方式操作或起作用,但并不限于此。

在各个实施例中,计算装置1200的组件可以包括以下各项中的任何一项:处理器1210、音频子系统1220、显示子系统1230、i/o控制器1240、电源管理组件1250、存储器子系统1260、连接性组件1270、一个或多个外围连接1280、以及一个或多个附加处理器1290。在一些实施例中,处理器1210可以包括根据本公开的一些实施例的结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器。然而,在各个实施例中,计算装置1200的组件中的任何一个可以包括根据本公开的一些实施例的结合了轻量掩码方案、s盒输入的双轨掩码、或这两者的sca容忍aes加速器。另外,计算装置1200的一个或多个组件可以包括具有多个端口的互连结构,比如,路由器、路由器网络、或芯片上网络(network-on-a-chip,noc)。

在一些实施例中,计算装置1200可以是可以可操作用于使用平坦表面接口连接器的移动装置。在一个实施例中,计算装置1200可以是移动计算装置,比如计算平板、移动电话或智能电话、无线使能电子阅读器或其他无线移动装置。本公开的各个实施例还可以包括1270内的网络接口,比如无线接口,以使得系统实施例可以被并入到无线装置中,例如蜂窝电话或个人数字助理。

处理器1210可以是通用处理器或者cpu(中央处理单元)。在一些实施例中,处理器1210可以包括一个或多个物理装置,比如,微处理器、应用处理器、微控制器、可编程序逻辑器件或其它处理装置。由处理器1210执行的处理操作可以包括执行操作平台或操作系统,在所述操作平台或操作系统上然后可以执行应用和/或装置功能。处理操作还可以包括与以下各项中的一项或多项相关的操作:音频i/o;显示i/o;电源管理;将计算装置1200连接到另一装置;和/或与人类用户或者与其他装置的i/o(输入/输出)。

音频子系统1220可以包括与向计算装置1200提供音频功能相关联的硬件组件(例如,音频硬件和音频电路)和软件组件(例如,驱动器和/或编解码器)。音频功能可以包括扬声器和/或耳机输出、以及麦克风输入。用于这种功能的装置可以集成到计算装置1200中、或连接至计算装置1200。在一个实施例中,用户通过提供由处理器1210接收并处理的音频命令来与计算装置1200进行交互。

显示子系统1230可以包括为用户提供视觉和/或触感显示以便与计算装置1200进行交互的硬件组件(例如,显示装置)和软件组件(例如,驱动器)。显示子系统1230可以包括显示界面1232,所述显示界面可以是用于向用户提供显示的特定屏幕或硬件装置。在一个实施例中,显示界面1232包括与处理器1210分离的逻辑以便执行与显示相关的至少一些处理。在一些实施例中,显示子系统1230包括向用户提供输出和输入的触摸屏(或触摸板)装置。

i/o控制器1240可以包括与同用户的交互相关的硬件装置和软件组件。i/o控制器1240可以可操作用于管理作为音频子系统1220和/或显示子系统1230一部分的硬件。此外,i/o控制器1240可以是连接至计算装置1200的附加装置的连接点,用户可以通过所述连接点与系统进行交互。例如,可以附接到计算装置1200的装置可以包括麦克风装置、扬声器或立体声系统、视频系统或其他显示装置、键盘或键板装置、或者比如读卡器或其他装置等用于特定应用的其他i/o装置。

如上所述,i/o控制器1240可以与音频子系统1220和/或显示子系统1230进行交互。例如,通过麦克风或其他音频装置进行的输入可以为计算装置1200的一个或多个应用或功能提供输入或命令。此外,替换或除了显示输出之外,还可以提供音频输出。在另一个示例中,如果显示子系统1230包括触摸屏,则显示装置还可以充当输入装置,所述输入装置可以至少部分地由i/o控制器1240来进行管理。在计算装置1200上还可以存在附加按钮或开关以便提供由i/o控制器1240管理的i/o功能。

在一些实施例中,i/o控制器1240管理装置,比如加速度计、相机、光传感器或其他环境传感器、或可以包括在计算装置1200中的其他硬件。输入可以是直接用户交互的一部分,并且可以向系统提供环境输入以影响其操作(比如,过滤噪声、调整用于亮度检测的显示、将闪存应用于相机或者其他特征)。

电源管理组件1250可以包括与管理电池电量使用、电池充电和与省电操作相关的特征相关联的硬件组件(例如,电源管理装置和/或电路系统)和软件组件(例如,驱动器和/或固件)。

存储器子系统1260可以包括用于将信息存储在计算装置1200中的一个或多个存储器装置。存储器子系统1260可以包括非易失性存储器装置(即使存储器装置断电,其状态也不改变)和/或易失性存储器装置(如果存储器装置断电,则其状态不定)。存储器子系统1260可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与对计算装置1200的应用和功能的执行相关的系统数据(长期的或者临时的)。

存储器子系统1260的某一部分还可以作为用于存储计算机可执行指令(例如,用于实施在此所讨论的任何其他过程的指令)的非暂态机器可读介质而被提供。机器可读介质可以包括但不限于闪存、光盘、cd-rom、dvdrom、ram、eprom、eeprom、磁性或光学卡、相变存储器(pcm)、或适合于存储电子或计算机可执行指令的其他类型机器可读介质。例如,本公开的一些实施例可以作为计算机程序(例如,bios)被下载,所述程序可以通过通信链路(例如,调制解调器或网络连接)以数据信号的方式被从远程计算机(例如,服务器)转移至请求计算机(例如,客户端)。

连接性组件1270可以包括网络接口,比如,蜂窝接口1272或无线接口1274(以使得计算装置1200的实施例可以结合到比如蜂窝电话或个人数字助理等无线装置中)。在某些实施例中,连接性组件1270包括硬件装置(例如,无线和/或有线连接器和通信硬件)和软件组件(例如,驱动器、协议栈)以使得计算装置1200能够与外部装置通信。计算装置1200可以包括单独的装置(比如,其他计算装置、无线接入点或基站)以及外围设备(比如,耳机、打印机或其他装置)。

在一些实施例中,连接性组件1270可以包括多种不同类型的网络接口(比如,一个或多个无线接口)以用于允许处理器1210与另一个装置通信。出于概括,展示了具有蜂窝接口1272和无线接口1274的计算装置1200。蜂窝接口1272通常指的是由蜂窝网络载波所提供的到蜂窝网络的无线接口,比如,经由gsm或变体或衍生物、cdma(码分多址)或变体或衍生物、tdm(时分复用)或变体或衍生物、或其他蜂窝服务标准提供的。无线接口1274通常指的是非蜂窝的无线接口,并且可以包括个域网(比如蓝牙、近场等)、局域网(比如wi-fi)、和/或广域网(比如wimax)、或其他无线通信。

外围连接1280可以包括用于进行外围连接的硬件接口和连接器、以及软件组件(例如,驱动器和/或协议栈)。应理解的是,计算装置1200可以是到其他计算装置的外围装置(通过“去往”1282)、也可以具有连接到其的外围装置(通过“来自”1284)。计算装置1200可以具有用于连接到其他计算装置的“对接”连接器,以用于如管理(例如,下载和/或上传、更改、同步)计算装置1200上的内容。此外,对接连接器可以允许计算装置1200连接到特定外围装置,所述特定外围装置允许计算装置1200控制例如到视听或其他系统的内容输出。

除了专用的对接连接器或其他专用连接硬件以外,计算装置1200可以经由基于公共或标准的连接器进行外围连接1280。公共类型的连接器可以包括:通用串行总线(usb)连接器(其可以包括多种不同硬件接口中的任何一种)、显示端口或小型显示端口(mdp)连接器、高清晰度多媒体接口(hdmi)连接器、火线连接器、或者其他类型的连接器。

说明书中对“实施例(anembodiment)”、“一个实施例(oneembodiment)”、“一些实施例(someembodiments)”、或“其他实施例(otherembodiments)”的引用意味着结合实施例描述的特定特征、构造或特性包括在至少一些实施例中,但不必是全部实施例。“实施例(anembodiment)”、“一个实施例(oneembodiment)”或“一些实施例(someembodiments)”的多处出现不必全部指代相同的实施例。如果说明书陈述组件、特征、构造或特性“可以(may)”、“可能(might)”、或“可(could)”被包括,则此特定组件、特征、构造或特性不要求被包括。如果说明书或权利要求书提及“一(a)”或“一个(an)”元件,则那并非意味着仅存在一个元件。如果说明书或权利要求提及“一个附加的(anadditional)”元件,则那并不排除存在多于一个的附加元件。

此外,在一个或多个实施例中,可以以任何适当的方式来组合特定特征、结构、功能、或特性。例如,第一实施例可以与第二实施例在任何地方进行组合,其中,与这两个实施例相关联的特定特征、结构、功能或特性不相互排斥。

虽然已经结合其特定实施例描述了本公开,但是鉴于前述描述,这种实施例的许多替换方案、修改和变体对于本领域普通技术人员将是明显的。例如,其他存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。本公开的实施例意在涵盖落入所附权利要求广阔范围内的全部此类替换方案、修改和变体。

另外,为了简化图示和讨论以及为了不使本公开模糊,在所呈现的图内可以或可以不示出与集成电路(ic)芯片和其他组件的公知的电力/接地连接。此外,安排可以以框图的形式示出,以避免模糊本公开,并且还鉴于以下事实:关于完成这样的框图安排的实施方式的细节高度依赖于在其中实施本公开的平台(即,这样的细节应当完全在本领域技术人员的视界内)。特定细节(例如,电路)被阐述以便描述本公开的示例实施例,对本领域技术人员来说应当显而易见的是:本公开可以在无需这些具体细节或者采用这些具体细节的变体的情况下被实践。描述因此被视为是说明性的而非限制性的。

下面的示例涉及进一步实施例。可以在一个或多个实施例中的任何地方使用示例中的细节。还可以关于方法或过程实施本文中所描述的设备的所有可选特征。

示例提供了一种设备,包括:第一电路系统,可操作用于根据加密矩阵将所述第一电路系统的输入上的值转换成所述第一电路系统的输出上的值;第二电路系统,可操作用于在所述第二电路系统的第一输出上提供伪随机数序列,并且在所述第二电路系统的第二输出上提供所述序列的寄存副本;以及第三电路系统,可操作用于将所述第一电路系统的所述输出上的值与所述第二电路系统的所述第一输出上的值的异或提供到所述第三电路系统的与第四电路系统的输入耦合的输出上。

一些实施例提供了一种设备,包括:第五电路系统,可操作用于将所述第四电路系统的输出上的值、耦合至第六电路系统的输出的值与所述第二电路系统的所述第二输出上的值的异或提供到所述第五电路系统的与所述第一电路系统的所述输入耦合的输出上。

一些实施例提供了一种设备,其中,所述第二电路系统包括线性反馈移位寄存器(lfsr)。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为整数个字节:所述第一电路系统的所述输入、所述第一电路系统的所述输出、所述第二电路系统的所述第一输出、所述第二电路系统的所述第二输出、所述第三电路系统的所述输出、所述第四电路系统的所述输入、所述第四电路系统的所述输出、所述第六电路系统的所述输出、以及所述第五电路系统的所述输出。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为两个字节:所述第一电路系统的所述输入、所述第一电路系统的所述输出、所述第二电路系统的所述第一输出、所述第二电路系统的所述第二输出、所述第三电路系统的所述输出、所述第四电路系统的所述输入、所述第四电路系统的所述输出、所述第六电路系统的所述输出、以及所述第五电路系统的所述输出。

一些实施例提供了一种设备,包括:第七电路系统,可操作用于根据变换过程将所述第七电路系统的输入上的值转换成所述第七电路系统的输出上的值。

一些实施例提供了一种设备,包括:第八电路系统,至少具有耦合至所述第四电路系统的所述输出的第一输入、耦合至所述第七电路系统的所述输出的第二输入、选择输入、以及耦合至所述第四电路系统的所述输入的输出。

一些实施例提供了一种设备,包括:第九电路系统,至少具有耦合至所述第一电路系统的所述输出的第一输入、耦合至所述第三电路系统的所述输出的第二输入、选择输入、以及耦合至所述第七电路系统的所述输入的输出。

一些实施例提供了如上述各示例所述的设备,包括:第十电路系统,至少具有耦合至所述第六电路系统的所述输出的第一输入、耦合至所述第六电路系统的所述输出与所述第四电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出。

一些实施例提供了一种设备,包括:第十一电路系统,至少具有耦合至所述第十电路系统的所述输出的第一输入、耦合至所述第五电路系统的所述输出的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出。

一些实施例提供了一种设备,包括:第十二电路系统,可操作用于将所述第十二电路系统的输入上的值的逆提供至所述第十二电路系统的输出,所述第十二电路系统的所述输入耦合至所述第十电路系统的所述输出;第十三电路系统,可操作用于将所述第十三电路系统的输入上的值的逆提供至所述第十三电路系统的输出,所述第十三电路系统的所述输入耦合至所述第四电路系统的所述输出;以及第十四电路系统,可操作用于执行对所述第十二电路系统的所述输出上的值与所述第十三电路系统的所述输出上的值的异或。

示例提供了一种系统,包括:存储器、耦合至所述存储器的处理器、以及用于允许所述处理器与另一装进行置通信的无线接口,所述系统包括如上述各示例所述的设备。

示例提供了一种系统,包括:存储器、耦合至所述存储器的处理器、以及用于允许所述处理器与另一装置进行通信的无线接口,所述处理器包括:第一电路系统,可操作用于根据加密矩阵将所述第一电路系统的输入上的值转换成所述第一电路系统的输出上的值;第二电路系统,可操作用于在所述第二电路系统的第一输出上提供伪随机数序列,并且在所述第二电路系统的第二输出上提供所述序列的寄存副本;以及第三电路系统,可操作用于将所述第一电路系统的所述输出上的值与所述第二电路系统的所述第一输出上的值的异或提供到所述第三电路系统的与第四电路系统的输入耦合的输出上。

一些实施例提供了一种系统,包括:第五电路系统,可操作用于将所述第四电路系统的输出上的值、耦合至第六电路系统的输出的值与所述第二电路系统的所述第二输出上的值的异或提供到所述第五电路系统的与所述第一电路系统的所述输入耦合的输出上;第七电路系统,可操作用于根据变换过程将所述第七电路系统的输入上的值转换成所述第七电路系统的输出上的值,其中,所述第二电路系统包括线性反馈移位寄存器(lfsr)。

一些实施例提供了一种系统,包括:第八电路系统,至少具有耦合至所述第四电路系统的所述输出的第一输入、耦合至所述第七电路系统的所述输出的第二输入、选择输入、以及耦合至所述第四电路系统的所述输入的输出;第九电路系统,至少具有耦合至所述第一电路系统的所述输出的第一输入、耦合至所述第三电路系统的所述输出的第二输入、选择输入、以及耦合至所述第七电路系统的所述输入的输出;第十电路系统,至少具有耦合至所述第六电路系统的所述输出的第一输入、耦合至所述第六电路系统的所述输出与所述第四电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出;以及第十一电路系统,至少具有耦合至所述第十电路系统的所述输出的第一输入、耦合至所述第五电路系统的所述输出的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出。

一些实施例提供了一种系统,包括:第十二电路系统,可操作用于将所述第十二电路系统的输入上的值的逆提供至所述第十二电路系统的输出,所述第十二电路系统的所述输入耦合至所述第十电路系统的所述输出;第十三电路系统,可操作用于将所述第十三电路系统的输入上的值的逆提供至所述第十三电路系统的输出,所述第十三电路系统的所述输入耦合至所述第四电路系统的所述输出;以及第十四电路系统,可操作用于执行对所述第十二电路系统的所述输出上的值与所述第十三电路系统的所述输出上的值的异或。

示例提供了一种方法,包括:根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出;在第一伪随机数生成(prg)输出上生成伪随机数序列,并且在第二prg输出上生成所述伪随机数序列的寄存副本;以及通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码。

一些实施例提供了一种方法,包括:通过将数据寄存器输出上的值、耦合至密钥寄存器输出的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码,其中,所述伪随机数序列由线性反馈移位寄存器(lfsr)生成。

一些实施例提供了一种方法,包括:根据aesrijndael混合列变换而对所述数据寄存器输入执行混合列操作。

一些实施例提供了一种方法,包括:对所述替换字节输入进行求逆以产生第一逆输出;对所述数据寄存器输出进行求逆以产生第二逆输出;以及执行对所述第一逆输出与所述第二逆输出的异或。

一些实施例提供了一种方法,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

一些实施例提供了一种方法,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

示例提供了一种机器可读存储介质,其上存储有机器可执行指令,所述机器可执行指令当被执行时使一个或多个处理器执行根据上述各示例所述的方法。

示例提供了一种设备,包括:用于根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出的装置;用于在第一伪随机数生成(prg)输出上生成伪随机数序列并且在第二prg输出上生成所述伪随机数序列的寄存副本的装置;以及用于通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码的装置。

一些实施例提供了一种设备,包括:用于通过将数据寄存器输出上的值、耦合至密钥寄存器输出的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码的装置,其中,所述伪随机数序列由线性反馈移位寄存器(lfsr)生成。

一些实施例提供了一种设备,包括:用于根据aesrijndael混合列变换而对所述数据寄存器输入执行混合列操作的装置。

一些实施例提供了一种设备,包括:用于对所述替换字节输入进行求逆以产生第一逆输出的装置;用于对所述数据寄存器输出进行求逆以产生第二逆输出的装置;以及用于执行对所述第一逆输出与所述第二逆输出的异或的装置。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

示例提供了一种机器可读存储介质,其上存储有机器可执行指令,所述机器可执行指令当被执行时使一个或多个处理器执行包括以下各项的操作:根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出;在第一伪随机数生成(prg)输出上生成伪随机数序列,并且在第二prg输出上生成所述伪随机数序列的寄存副本;以及通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码。

一些实施例提供了一种机器可读存储介质,包括:通过将数据寄存器输出上的值、耦合至密钥寄存器输出的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码,其中,所述伪随机数序列由线性反馈移位寄存器(lfsr)生成。

一些实施例提供了一种机器可读存储介质,包括:根据aesrijndael混合列变换而对所述数据寄存器输入执行混合列操作。

一些实施例提供了一种机器可读存储介质,包括:对所述替换字节输入进行求逆以产生第一逆输出;对所述数据寄存器输出进行求逆以产生第二逆输出;以及执行对所述第一逆输出与所述第二逆输出的异或。

一些实施例提供了一种机器可读存储介质,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

一些实施例提供了一种机器可读存储介质,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述prg输出、所述数据寄存器输入、所述数据寄存器输出、所述密钥寄存器输出。

示例提供了一种设备,包括:第一电路系统,可操作用于根据加密矩阵将所述第一电路系统的输入上的值转换成所述第一电路系统的输出上的值;第二电路系统,可操作用于将所述第二电路系统的输入上的值的逆提供至所述第二电路系统的输出;第三电路系统,可操作用于将所述第三电路系统的输入上的值的逆提供至所述第三电路系统的输出;以及第四电路系统,可操作用于执行对所述第二电路系统的所述输出上的值与所述第三电路系统的所述输出上的值的异或,其中,所述第二电路系统的所述输入耦合至以下各项中的至少一项:所述第一电路系统的所述输入、以及所述第一电路系统的所述输出。

一些实施例提供了一种设备,其中,所述第三电路系统的所述输入耦合至所述第五电路系统的输出。

一些实施例提供了一种设备,包括:第六电路系统,至少具有耦合至第七电路系统的所述输出的第一输入、耦合至所述第七电路系统的所述输出与所述第五电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出。

一些实施例提供了一种设备,包括:第八电路系统,至少具有耦合至所述第六电路系统的所述输出的第一输入、耦合至所述第五电路系统的所述输出与所述第六电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出。

一些实施例提供了一种设备,其中,所述第二电路系统的所述输入耦合至所述第六电路系统的所述输出。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为整数个字节:所述第一电路系统的所述输入、所述第一电路系统的所述输出,所述第二电路系统的所述输入、以及所述第三电路系统的所述输入。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为两个字节:所述第一电路系统的所述输入、所述第一电路系统的所述输出,所述第二电路系统的所述输入、以及所述第三电路系统的所述输入。

一些实施例提供了一种设备,包括:第九电路系统,可操作用于在所述第九电路系统的第一输出上提供伪随机数序列,并且在所述第九电路系统的第二输出上提供所述序列的寄存副本;第十电路系统,可操作用于将所述第一电路系统的所述输出上的值与所述第九电路系统的所述第一输出上的值的异或提供到所述第十电路系统的与第五电路系统的输入耦合的输出上;以及第十一电路系统,可操作用于将所述第五电路系统的输出上的值、第七电路系统的输出上的值与所述第九电路系统的所述第二输出上的值的异或提供到所述第十一电路系统的与所述第一电路系统的所述输入耦合的输出上。

示例提供了一种系统,包括:存储器、耦合至所述存储器的处理器、以及用于允许所述处理器与另一装进行置通信的无线接口,所述系统包括如上述各示例所述的设备。

示例提供了一种系统,包括:存储器、耦合至所述存储器的处理器、以及用于允许所述处理器与另一装置进行通信的无线接口,所述处理器包括:第一电路系统,可操作用于根据加密矩阵将所述第一电路系统的输入上的值转换成所述第一电路系统的输出上的值;第二电路系统,可操作用于将所述第二电路系统的输入上的值的逆提供至所述第二电路系统的输出;第三电路系统,可操作用于将所述第三电路系统的输入上的值的逆提供至所述第三电路系统的输出;以及第四电路系统,可操作用于执行对所述第二电路系统的所述输出上的值与所述第三电路系统的所述输出上的值的异或,其中,所述第二电路系统的所述输入耦合至以下各项中的至少一项:所述第一电路系统的所述输入、以及所述第一电路系统的所述输出。

一些实施例提供了一种系统,包括:其中,所述第三电路系统的所述输入耦合至第五电路系统的输出。

一些实施例提供了一种系统,包括:第六电路系统,至少具有耦合至第七电路系统的所述输出的第一输入、耦合至所述第七电路系统的所述输出与所述第五电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出;第八电路系统,至少具有耦合至所述第六电路系统的所述输出的第一输入、耦合至所述第五电路系统的所述输出与所述第六电路系统的所述输出的异或的第二输入、选择输入、以及耦合至所述第一电路系统的所述输入的输出;并且其中,所述第二电路系统的所述输入耦合至所述第六电路系统的所述输出。

一些实施例提供了一种系统,包括:第九电路系统,可操作用于在所述第九电路系统的第一输出上提供伪随机数序列,并且在所述第九电路系统的第二输出上提供所述序列的寄存副本;第十电路系统,可操作用于将所述第一电路系统的所述输出上的值与所述第九电路系统的所述第一输出上的值的异或提供到所述第十电路系统的与第五电路系统的输入耦合的输出上;以及第十一电路系统,可操作用于将所述第五电路系统的输出上的值、第七电路系统的输出上的值与所述第九电路系统的所述第二输出上的值的异或提供到所述第十一电路系统的与所述第一电路系统的所述输入耦合的输出上。

示例提供了一种方法,包括:根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出;对第一输入进行求逆以产生第一逆输出;对第二输入进行求逆以产生第二逆输出;以及执行对所述第一逆输出与所述第二逆输出的异或,其中,所述第一输入耦合至以下各项中的至少一项:所述替换字节输入、以及所述替换字节输出。

一些实施例提供了一种方法,其中,所述第二输入耦合至数据寄存器电路系统的输出。

一些实施例提供了一种方法,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种方法,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种方法,包括:在第一伪随机数生成(prg)输出上生成伪随机数序列,并且在第二prg输出上生成所述伪随机数序列的寄存副本;通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码;以及通过将数据寄存器输出上的值、密钥寄存器输出上的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码。

示例提供了一种机器可读存储介质,其上存储有机器可执行指令,所述机器可执行指令当被执行时使一个或多个处理器执行根据上述各示例所述的方法。

示例提供了一种设备,包括:用于根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出的装置;用于对第一输入进行求逆以产生第一逆输出的装置;用于对第二输入进行求逆以产生第二逆输出的装置;以及用于执行对所述第一逆输出与所述第二逆输出的异或的装置,其中,所述第一输入耦合至以下各项中的至少一项:所述替换字节输入、以及所述替换字节输出。

一些实施例提供了一种设备,其中,所述第二输入耦合至数据寄存器电路系统的输出。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种设备,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种设备,包括:用于在第一伪随机数生成(prg)输出上生成伪随机数序列并且在第二prg输出上生成所述伪随机数序列的寄存副本的装置;用于通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码的装置;以及用于通过将数据寄存器输出上的值、密钥寄存器输出上的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码的装置。

示例提供了一种机器可读存储介质,其上存储有机器可执行指令,所述机器可执行指令当被执行时使一个或多个处理器执行包括以下各项的操作:根据高级加密标准(aes)rijndaels盒矩阵而将替换字节输入转换成替换字节输出;对第一输入进行求逆以产生第一逆输出;对第二输入进行求逆以产生第二逆输出;以及执行对所述第一逆输出与所述第二逆输出的异或,其中,所述第一输入耦合至以下各项中的至少一项:所述替换字节输入、以及所述替换字节输出。

一些实施例提供了一种机器可读存储介质,其中,所述第二输入耦合至数据寄存器电路系统的输出。

一些实施例提供了一种机器可读存储介质,其中,以下各项中的至少一项的宽度为整数个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种机器可读存储介质,其中,以下各项中的至少一项的宽度为两个字节:所述替换字节输入、所述替换字节输出、所述第一逆输出、所述第二逆输出、以及所述数据寄存器电路系统的所述输出。

一些实施例提供了一种机器可读存储介质,包括:在第一伪随机数生成(prg)输出上生成伪随机数序列,并且在第二prg输出上生成所述伪随机数序列的寄存副本;通过将所述替换字节输出上的值与所述第一prg输出上的值的异或提供到数据寄存器输入上来对所述替换字节输出上的值进行掩码;以及通过将数据寄存器输出上的值、密钥寄存器输出上的值与所述第二prg输出上的值的异或提供到耦合至所述替换字节输入的接口上来对所述数据寄存器输出上的值进行解除掩码。

提供了将允许读者确定本技术性公开的本质和主旨的摘要。基于本摘要将不被用于限制权利要求的范围或者含义的理解来提交本摘要。据此将以下权利要求结合到具体实施方式中,其中每一项权利要求独立地代表单独的实施例。

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