CN108027864B - 经双仿射映射的s-盒硬件加速器 - Google Patents

经双仿射映射的s-盒硬件加速器 Download PDF

Info

Publication number
CN108027864B
CN108027864B CN201680055704.6A CN201680055704A CN108027864B CN 108027864 B CN108027864 B CN 108027864B CN 201680055704 A CN201680055704 A CN 201680055704A CN 108027864 B CN108027864 B CN 108027864B
Authority
CN
China
Prior art keywords
bit sequence
field
matrix
processing system
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680055704.6A
Other languages
English (en)
Other versions
CN108027864A (zh
Inventor
S.K.萨特帕菲
S.K.马修
V.戈帕尔
K.S.亚普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN108027864A publication Critical patent/CN108027864A/zh
Application granted granted Critical
Publication of CN108027864B publication Critical patent/CN108027864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)

Abstract

一种处理系统包括:存储器和操作地耦合到存储器的密码加速器模块,密码加速器模块采用来通过执行以下来实现字节替代操作:输入位序列的第一映射仿射变换以产生第一中间位序列;第一中间位序列的逆变换以产生第二中间位序列;以及第二中间位序列的第二映射仿射变换以产生输出位序列。

Description

经双仿射映射的s-盒硬件加速器
技术领域
本公开总体地涉及计算设备并且更具体地涉及用于执行密码操作的计算设备。
背景技术
密码方法可以用于保护计算机系统和其他电子设备中的机密信息。例如,可以执行加密操作,其中使用加密密钥(例如,位序列)对明文输入数据(例如,表示文本、数字、可理解字符等的位序列)执行如由所选密码算法指定的一系列变换,以保护经加密数据(密文)。在不知道密码密钥的情况下,从经加密数据确定未加密明文数据一般是实际上不可行的。如果知道密码密钥,则可以对经加密数据执行解密(有时称为逆密码)操作以重现对应明文(未加密数据)。
发明内容
根据本发明的一个方面,提供了一种用于执行密码操作的处理系统,包括:存储器;密码加速器模块,其操作地耦合到存储器,密码加速器模块用于通过执行以下来实现字节替代操作:执行输入位序列的第一映射仿射变换以产生第一中间位序列,执行第一中间位序列的逆变换以产生第二中间位序列,以及执行第二中间位序列的第二映射仿射变换以产生输出位序列,其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
根据本发明的另一个方面,种用于执行密码操作的方法,包括:由处理设备执行输入位序列的第一映射仿射变换以产生第一中间位序列;执行第一中间位序列的逆变换以产生第二中间位序列;以及执行第二中间位序列的第二映射仿射变换以产生输出位序列,其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
附图说明
从下面给出的详细描述并且从本公开的各种实施例的附图将更完整地理解本公开。然而,绘图不应视为将本公开限制到特定实施例,而是仅仅为了解释和理解。
图1示意性地图示了根据本公开的一个或多个方面的可以采用来执行密码操作的处理系统;
图2示意性地图示了根据本公开的一个或多个方面的实现密码操作的密码硬件加速器的框图;
图3示意性地图示了根据本公开的一个或多个方面的可以采用来实现S-盒的示例变换矩阵;
图4示意性地图示了根据本公开的一个或多个方面的用于将素域(prime-field)GF(28)变换成合成域(composite-field)GF(24)2的映射矩阵;
图5示意性地图示了根据本公开的一个或多个方面的可以采用来实现S-盒的示例经合并变换矩阵;
图6示意性地图示了根据本公开的一个或多个方面的使用映射和逆映射矩阵的S盒的示例实现方式,所述映射和逆映射矩阵被合并到相应仿射矩阵中;
图7示意性地图示了根据本公开的一个或多个方面的评估素域GF(28)的合成域中的多项式的可能组合;
图8描绘了根据本公开的一个或多个方面的执行密码操作(诸如实现S-盒)的示例方法的流程图;
图9描绘了根据本公开的一个或多个方面的用于标识具有最优区域设计的S-盒实现方式的示例方法900的流程图;
图10描绘了根据本公开的一个或多个方面的示例计算机系统的高级组件图;
图11描绘了根据本公开的一个或多个方面的处理器的框图;
图12A-12B示意性地图示了根据本公开的一个或多个方面的处理器微架构的元件;
图13描绘了根据本公开的一个或多个方面的示例计算机系统的框图;
图14描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图;
图15描绘了根据本公开的一个或多个方面的示例计算机系统的框图;以及
图16描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。
具体实施方式
本文的“密码操作”应当是指涉及秘密参数的数据处理操作(例如,使用秘密密钥的加密/解密操作)。本文的“密码数据处理系统”应当是指被采用用于执行密码操作的数据处理系统(例如,通用或专用处理器、片上系统等)。
诸如高级加密标准(AES)或SMS4的密码方法可以执行若干次迭代(也称为“轮次”)以使用加密密钥将明文数据变换成经加密密文。每一轮次可以包括使用轮次密钥对输入状态执行的算术、逻辑或字节置换操作的序列,所述轮次密钥从加密密钥导出。每一但最后轮次的作为结果的状态然后可以被利用作为后续轮次的输入状态。
将这样的算术、逻辑或字节置换操作映射到通用微处理器上的计算复杂性结合实时介质处理和存储器加密的高数据速率可能导致处理器核内的功率和性能瓶颈。本公开的各方面通过公开用于使用合成伽罗瓦域来执行非线性数据处理操作的系统(诸如硬件加速器)和方法来解决这一及其他缺陷。
在说明性示例中,在密码操作的每一轮次处,轮次密钥的某些位可以与轮次状态的至少子集混合,并且结果可以通过常称为S-盒的替代模块得到。S-盒的输出可以被旋转并且后续与轮次状态混合,以创建将重复地经受轮次迭代的中间输出。最终轮次之后,四个状态字节可以用于生成最终密码输出。
在某些实现方式中,可以通过伽罗瓦域GF(28)的元素来表示S-盒的输入和输出,伽罗瓦域GF(28)可以视为256个8位整数的集合,其中在那些整数上定义了某些操作。
根据本公开的一个或多个方面,可以通过执行具有介入(intervening)逆操作的双仿射变换来实现S-盒,如本文下面的更多细节中所描述的那样。下面通过示例的方式而不是通过限制的方式在本文中更详细地描述了以上引用的方法和系统的各个方面。
在下面的描述中,阐述了许多具体细节以便提供对本公开的透彻理解,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级以及操作的示例。然而,对于本领域技术人员将明显的是,不需要采用这些特定细节来实践本文公开的方法。在其他实例中,没有详细描述熟知的组件或方法以免不必要地模糊本公开,诸如特定和可替换处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、算法在代码方面的特定表达、特定掉电和门控技术/逻辑以及计算机系统的其他特定操作细节。
尽管参照处理器来描述以下示例,但是其他实现方式适用于其他类型的集成电路和逻辑器件。本文描述的示例的类似技术和教导可以应用于可以受益于更高流水线吞吐量和改进的性能的其他类型的电路或半导体器件。本文描述的示例的教导适用于执行数据操纵的任何处理器或机器。然而,本公开不限于执行512位、256位、128位、64位、32位或16位数据操作的处理器或机器,并且可以应用于在其中执行数据的操纵或管理的任何处理器和机器。
说明本公开的示例和附图不应在限制性含义上进行解释,因为它们仅仅意图提供本文描述的实施例的示例而不是提供本文描述的实施例的所有可能实现方式的穷尽列表。尽管下面的示例在执行单元和逻辑电路的上下文中描述指令处置和分布,但是可以通过存储在机器可读有形介质上的数据或指令的方式来实施本文描述的系统和方法的其他实现方式,所述指令当被机器执行时使机器执行与本文描述的至少一个实施例一致的功能。在某些实现方式中,与本文描述的实施例相关联的功能体现在机器可执行指令中。指令可以用于使利用所述指令编程的通用或专用处理器执行本文描述的方法。本文描述的实现方式可以提供为可以包括其上存储有指令的机器或计算机可读介质的计算机程序产品或软件,所述指令可以用于对计算机(或其他电子设备)进行编程以执行根据本文描述的实施例的一个或多个操作。可替换地,本文描述的系统和方法的操作可以由特定硬件组件或由编程的计算机组件和固定功能硬件组件的任何组合来执行,所述特定硬件组件包含用于执行操作的固定功能逻辑。
用于对逻辑进行编程以执行本文描述的方法的指令可以存储在系统中的存储器内,诸如DRAM、高速缓存、闪速存储器或其他存储装置。此外,指令可以经由网络或者通过其他计算机可读介质的方式被分布。因此,机器可读介质可以包括用于存储或传输机器(例如计算机)可读形式的信息的任何机构,但是不限于:软盘、光盘、压缩盘只读存储器(CD-ROM)以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或者在通过因特网经由电气、光学、声学或其它形式传播信号(例如,载波、红外信号、数字信号等)传输信息中使用的有形机器可读存储装置。因此,计算机可读介质包括适于存储或传输机器(例如计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
本文的“处理器”应当是指能够执行对算术、逻辑或I/O操作进行编码的指令的设备。在一个说明性示例中,处理器可以遵循冯诺依曼架构模型并且可以包括算术逻辑单元(ALU)、控制单元和多个寄存器。在另外方面中,处理器可以包括一个或多个处理核,并由此可以是典型地能够处理单个指令流水线的单核处理器或者可以同时地处理多个指令流水线的多核处理器。在另一方面中,处理器可以实现为单个集成电路、两个或更多个集成电路,或者可以是多芯片模块的组件(例如,其中单独的微处理器管芯包括在单个集成电路封装中并由此共享单个插座)。
现在参考图1,示出根据本公开的一个或多个方面的示例处理系统100的框图。如图1中所示,示例处理系统100可以包括经由互连108A连接到彼此的处理器(诸如中央处理单元(CPU))102和存储器104。在某些实现方式中,处理器102可以包括一个或多个处理核110。处理器102可以通过使用存储器104存储程序的指令和与程序相关联的数据来执行诸如系统应用和用户应用的任务。
根据本公开的一个或多个方面,处理系统100还可以包括经由互连108B通信地耦合到处理器102的密码硬件加速器112。密码硬件加速器112还可以经由互连108C通信地耦合到存储器104。下面本文更详细地描述密码硬件加速器112的结构和操作。
图2示意性地图示了根据本公开的一个或多个方面的实现密码操作的密码硬件加速器的框图。在各种说明性示例中,图2的密码硬件加速器200对应于图1的密码硬件加速器112。在某些实现方式中,本文描述的系统和方法可以采用用于实现各种密码方法(诸如SMS4或AES)。
如由图2示意性地图示的,密码硬件加速器200可以包括数据寄存器202和密钥寄存器204,数据寄存器202用于存储轮次状态的多个位,密钥寄存器204用于存储轮次密钥的多个位。在说明性示例中,通过混合模块206将来自密钥的较高阶32位与轮次状态进行混合,并且通过S-盒208来处理作为结果的32位字。S-盒的输出被旋转模块210旋转,并且随后通过混合模块212与轮次状态进行混合,以创建重复地经受轮次迭代的四个字的新集合。每次迭代使用新密钥,所述新密钥是使用混合、S-盒和旋转操作的类似集合从之前密钥而导出的。最终轮次之后,四个状态字节用于生成最终密码输出220。
通过密钥扩展模块214来实现用于每个轮次的密钥扩展操作。密钥扩展涉及将32位轮次常数加到密钥值。通过常数计算模块218使用存储在常数寄存器218中的值来产生轮次常数。针对第一轮次的密钥扩展操作涉及增加128位系统常数(Fk)。
S-盒208的输入和输出是伽罗瓦域GF(28)的元素,伽罗瓦域GF(28)可以视为256个8位整数的集合,其中在那些整数上定义了某些操作。在通常实现方式中,可以通过执行具有介入逆变换的两个仿射变换来实现S-盒,其可以通过以下等式来表示:
Figure DEST_PATH_IMAGE001
其中S(x)标示S-盒,A1和A2是二进制变换矩阵,并且C1和C2是二进制矢量。因此,Y=A1x + C1描述第一仿射变换,Z=Y-1描述介入逆变换,并且A2Z + C2描述第二仿射变换。图3示意性地图示了示例变换矩阵302和矢量304以及对应约减多项式(reduction polynomial)306,对应约减多项式306可以在使用等式(1)实现S-盒中被采用。
由于直接执行GF(28) 中的逆变换可能呈现显著计算复杂性,所以更高效技术涉及使用合成域算术。在说明性示例中,GF(28)中的S-盒输入表示为2项多项式sh * x + sl,其中系数shsl通过GF(24)域的4位元素来表示。该合成域转换可以通过向输入应用映射变换(M)来实现。然后可以在合成GF(24)2域中执行逆计算,并且可以通过应用逆映射变换(M-1)来将结果映射回GF(28)。然后,可以执行第二仿射变换以生成S-盒输出。
如通过图4示意性地图示的,可以使用与一对约减多项式406A-406B相关联的映射矩阵404将与约减多项式402相关联的素域GF(28)变换到合成域GF(24)2。如还通过图4示意性地图示的,S-盒408可以通过第一仿射变换410、之后的从素域到素域的合成域的映射变换412、之后的逆变换414、之后的从合成域回到素域的逆映射变换416以及最后之后的第二仿射变换418的序列来实现:
Figure DEST_PATH_IMAGE002
其中在合成域GF(24)2中执行逆变换。
根据本公开的一个或多个方面,等式(2)的映射(M)和逆映射(M-1)矩阵可以合并到仿射矩阵(A1和A2)中,由此消除与执行映射和反转映射操作相关的开销。图5示意性地图示了根据本公开的一个或多个方面的可以采用来实现S-盒的示例变换矩阵502A-502B和矢量514。
图6示意性地图示了根据本公开的一个或多个方面的使用映射(M)和逆映射(M-1)矩阵的S盒的示例实现方式,所述映射(M)和逆映射(M-1)矩阵被合并到相应仿射矩阵(A1和A2)中。如通过图6示意性地图示的,可以通过执行第一映射仿射变换602、之后的对映射仿射变换602的结果的逆变换604、以及最后之后的反转变换604的结果的第二映射仿射变换606来确定S-盒208的输出。
实现根据本公开的一个或多个方面的S-盒硬件加速器可以涉及标识产生最优硬件加速器区域的基域和合成域多项式。
图7示意性地图示了根据本公开的一个或多个方面的评估素域GF(28)的合成域中的多项式的可能组合。多项式选择方法可以评估多项式的所有可能组合并且系统地选择对于合成域算术而言有资格的多项式。在块710-740处,该方法可以选择具有素域中的原根的具有不可约性的属性的多项式。这消除了素域多项式的13个,留下三个候选多项式。在块740-770处,对合成域多项式的类似检查从276个多项式中选出120个,从而产生有效的360个多项式组合以供使用。
在每一个组合中,可以标识也是原始GF(28)多项式的根的合成域元素。该根可以用于在块760处生成映射矩阵M并且随后生成映射仿射矩阵MA1和MA2。每一对约减多项式生成八个根,从而产生2880个有效映射,其中每个映射对应于唯一S-盒。然后可以选择产生最少硬件加速器区域的映射矩阵。
图8描绘了根据本公开的一个或多个方面的执行密码操作(诸如实现S-盒)的示例方法800的流程图。方法800可以由处理系统执行,所述处理系统可以包括硬件(例如,电路、专用逻辑和/或可编程逻辑)、软件(例如,在计算机系统上可执行来执行硬件模拟的指令)或其组合。在说明性示例中,方法800可以由图1的处理系统100执行。方法800和/或其功能、例程、子例程或操作中的每一个可以由执行该方法的计算机系统的一个或多个处理器执行。方法800的两个或更多个功能、例程、子例程或操作可以并行执行或者以可以与上文描述的顺序不同的顺序执行。
参考图8,方法800可以在块810处开始,其中实现该方法的处理系统可以执行输入位序列的第一映射仿射变换以产生第一中间位序列。第一映射仿射变换可以包括将输入位序列乘以由映射矩阵(M)和第一变换矩阵(A1)的乘积表示的矩阵。第一变换矩阵可以与诸如GF(28)的有限域的一对约减多项式相关联,如本文在上文更详细地描述的那样。
在块820处,实现该方法的处理系统可以执行第一中间位序列的逆变换以产生第二中间位序列,如本文在上文更详细地描述的那样。
在块830处,实现该方法的处理系统可以执行第二中间位序列的第二映射仿射变换以产生输出位序列。映射矩阵可以表示从诸如GF(28)的所选有限素域到所选有限素域的合成域的映射,如本文在上文更详细地描述的那样。
图9描绘了根据本公开的一个或多个方面的用于标识具有最优区域设计的S-盒实现方式的示例方法900的流程图。方法900可以由处理系统执行,所述处理系统可以包括硬件(例如,电路、专用逻辑和/或可编程逻辑)、软件(例如,在计算机系统上可执行来执行硬件模拟的指令)或其组合。在说明性示例中,方法900可以由图1的处理系统100执行。方法900和/或其功能、例程、子例程或操作中的每一个可以由执行该方法的计算机系统的一个或多个处理器执行。方法900的两个或更多个功能、例程、子例程或操作可以并行执行或者以可以与上文描述的顺序不同的顺序执行。
参考图9,方法900可以在块910处开始,其中实现该方法的处理系统可以标识与有限素域相关联的第一多个不可约多项式,使得每个所标识的多项式具有有限素域中的原根,如本文在上文更详细地描述的那样。
在块920处,实现该方法的处理系统可以标识与有限素域的合成域相关联的第二多个不可约多项式,使得每个所标识的多项式具有合成域中的原根,如本文在上文更详细地描述的那样。
在块930处,实现该方法的处理系统可以使用第一多个多项式中的第一多项式和第二多个多项式中的第二多项式的多个组合来标识多个合成域元素,使得所标识的合成域元素表示与有限素域相关联的约减多项式的根,如本文在上文更详细地描述的那样。
在块940处,实现该方法的处理系统可以使用所标识的多个合成域元素来生成多个映射矩阵和相关联的映射仿射矩阵,如本文在上文更详细地描述的那样。
在块950处,实现该方法的处理系统可以使用所生成的多个映射矩阵中的映射矩阵来标识S-盒实现方式,使得所标识的S-盒实现方式在多个S-盒实现方式当中具有最小区域设计,如本文在上文更详细地描述的那样。
尽管本文参考诸如处理器的特定集成电路来描述各种系统和方法,但是其他实现方式可以适用于其他类型的集成电路和逻辑器件。本文描述的系统和方法的技术和教导可以应用于还可以受益于更好能效和节能的其他类型的电路或半导体器件。例如,所公开的实现方式不限于任何特定类型的计算机系统,并且还可以在诸如手持设备、片上系统(SoC)和嵌入式应用的其他设备中使用。手持设备的一些示例包括蜂窝电话、网际协议设备、数字摄像机、个人数字助理(PDA)和手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或者可以执行下面教导的功能和操作的任何其他系统。此外,本文描述的系统和方法不限于物理计算设备,而是还可以涉及软件实现的方法。由本文描述的系统和方法实现的功率节省可以独立于并且补充基于操作系统(OS)的机制,诸如高级配置和平台接口(ACPI)标准。
本文在上文描述的方法和系统可以由用于以下的各种架构、设计和配置的计算机系统来实现:膝上型计算机、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及也适于实现本文描述的方法的各种其他电子设备。一般而言,能够并入如本文所公开的处理器和/或其他执行逻辑的大量各种各样的系统或电子设备一般适于实现本文描述的系统和方法。
图10描绘了根据本公开的一个或多个方面的计算机系统的一个示例的高级组件图。根据本文描述的实施例,计算机系统100可以包括采用包括逻辑的执行单元以执行用于处理数据的算法的处理器110。系统100代表可从加州圣克拉拉的英特尔公司获得的基于PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,虽然也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在某些实现方式中,样例系统100执行可从华盛顿州雷蒙德的微软公司获得的WINDOWSTM操作系统的版本,虽然也可以使用其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户接口。因此,本文描述的实施例不限于硬件电路和软件的任何特定组合。
在说明性示例中,处理器110包括一个或多个执行单元108,用于实现要执行至少一个指令的算法。一个实施例可以在单个处理器台式机或服务器系统的上下文中描述,但可替换实施例可以包括在多处理器系统中。系统100是“中心(hub)”系统架构的示例。计算机系统100包括用于处理数据信号的处理器110。作为一个说明性示例,处理器110包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、甚长指令字(VLIW)微处理器、实现指令集的组合的处理器或者任何其他处理器设备,诸如例如数字信号处理器。处理器110耦合至处理器总线110,处理器总线110在处理器110与系统700中的其他组件之间传输数据信号。系统100的元件(例如,图像加速器112、存储器控制器中心116、存储器120、I/O控制器中心124、无线收发机126、闪速BIOS 128、网络控制器134、音频控制器136、串行扩展端口138、I/O控制器140等)执行熟悉本领域的技术人员熟知的它们的常规功能。
在某些实现方式中,处理器110包括1级(L1)内部高速缓存。取决于架构,处理器110可以具有单个内部高速缓存或多级内部高速缓存。取决于特定实现方式和需要,其他实施例包括内部和外部高速缓存两者的组合。寄存器文件106要将不同类型的数据存储在各种寄存器中,包括整数寄存器、浮点寄存器、向量寄存器、分组寄存器、影子寄存器、检查点寄存器、状态寄存器、以及指令指针寄存器。
包括用于执行整数和浮点运算的逻辑的执行单元108也驻留在处理器110中。在某些实现方式中,处理器110包括微代码(ucode)ROM,用于存储微代码,所述微代码在被执行时要执行用于某些宏指令的算法或者处置复杂场景。在此,微代码是潜在地可更新的,以处置处理器110的逻辑程序错误(bug)/修理。对于一个实施例,执行单元108包括用于处置封装指令集109的逻辑。通过在通用处理器110的指令集中包括封装指令集109连同用于执行指令的相关联的电路,可以使用通用处理器110中的封装数据来执行由许多多媒体应用使用的操作。因此,通过使用处理器的数据总线的全宽度用于对封装数据执行操作,许多多媒体应用被加速并且更加高效地执行。这潜在地消除了以下需要:跨处理器的数据总线传送较小数据单元以一次一个数据元素地执行一个或多个操作。执行单元108的可替换实施例也可以在微控制器、嵌入式处理器、图形设备、DSP以及其他类型的逻辑电路中使用。在某些实现方式中,处理器110还可以包括高速缓存控制逻辑124,本文在下面更详细地描述其的运转。
系统100包括存储器120。存储器120包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备或其他存储器设备。存储器120存储由要由处理器110执行的数据信号表示的指令129和/或数据123。在某些实现方式中,指令129可以包括采用高速缓存控制逻辑124用于管理共享高速缓存的指令,如本文在下面更详细地描述的那样。
系统逻辑芯片116耦合到处理器总线110和存储器120。说明性实施例中的系统逻辑芯片116是存储器控制器中心(MCH)。处理器110可以经由处理器总线110与MCH 116通信。MCH 116为指令和数据存储并且为图形、命令、数据和纹理的存储提供至存储器120的高带宽存储器路径118。MCH 116要在处理器110、存储器120和系统100中的其他组件之间引导数据信号,并且在处理器总线110、存储器120和系统I/O 122之间桥接数据信号。在一些实施例中,系统逻辑芯片116可以提供用于耦合到图形控制器112的图形端口。MCH 116通过存储器接口118耦合到存储器120。图形卡112通过加速图形端口(AGP)互连114耦合到MCH 116。
系统100使用专有中心接口总线122将MCH 116耦合到I/O控制器中心(ICH)130。ICH 130经由本地I/O总线提供至一些I/O设备的直接连接。本地I/O总线是用于将外设连接到存储器120、芯片组和处理器110的高速I/O总线。一些示例是音频控制器、固件集线器(闪速BIOS)128、无线收发机126、数据存储装置124、包含用户输入和键盘接口的传统I/O控制器、诸如通用串行总线(USB)的串行扩展端口以及网络控制器134。数据存储设备124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪速存储器设备或其他大容量存储设备。
对于系统的另一实施例,根据一个实施例的指令可以与片上系统一起使用。片上系统的一个实施例包括处理器和存储器。用于一个这样的系统的存储器是闪速存储器。闪速存储器可以与处理器和其他系统组件位于同一管芯上。附加地,诸如存储器控制器或图形控制器的其他逻辑块也可以位于片上系统上。
图11是根据本公开的一个或多个方面包括执行指令的逻辑电路的处理器200的微架构的框图。在一些实施例中,根据一个实施例的指令可以被实现以在具有字节、字、双字、四字等的大小以及诸如单精度整数和双精度整数以及浮点数据类型之类的数据类型的数据元素上操作。在某些实现方式中,有序前端201是处理器200的部分,其取出要执行的指令并且准备它们稍后在处理器流水线中使用。前端201可以包括若干单元。在某些实现方式中,指令预取器226从存储器中取出指令并将其馈送到指令解码器228,所述指令解码器继而解码或解释它们。例如,在某些实现方式中,解码器将接收到的指令解码成机器可以执行的一个或多个操作,称为“微指令”或“微操作”(也称为uop)。在其他实施例中,解码器将指令解析成操作码和对应数据和控制字段,其被微架构用于执行根据一个实施例的操作。在某些实现方式中,跟踪(trace)高速缓存230取得经解码的uop并且将其汇编成uop队列234中的程序有序序列或轨迹以供执行。当跟踪高速缓存230遇到复杂指令时,微代码ROM 232提供完成操作所需的uop。
一些指令被转换成单个微op,而其他指令需要若干微op来完成全操作。在某些实现方式中,如果需要多于四个微op来完成指令,则解码器228访问微代码ROM 232来进行该指令。对于一个实施例,指令可以被解码成少量微op以供在指令解码器228处进行处理。在另一个实施例中,指令可以被存储在微代码ROM 232内,如果需要许多微op来完成操作的话。跟踪高速缓存230是指入口点可编程逻辑阵列(PLA)以确定正确的微指令指针以用于读取微代码序列来完成来自微代码ROM 232的根据一个实施例的一个或多个指令。在微代码ROM 232完成对用于指令的微op的排序之后,机器的前端201重新开始从跟踪高速缓存230取出微op。
无序执行引擎203是其中准备好指令以供执行的地方。无序执行逻辑具有许多缓冲器来平滑掉和重排序指令流以在其沿流水线传下去并且被调度以供执行时优化性能。分配器逻辑分配每一个uop需要的机器缓冲器和资源以便执行。寄存器别名(aliasing)逻辑将逻辑寄存器映射到寄存器文件中的条目上。分配器还分配两个uop队列(一个用于存储器操作并且一个用于非存储器操作)中的一个中的每一个uop的入口,在指令调度器前方:存储器调度器、快速调度器202、慢速/一般浮点调度器204和简单浮点调度器206。uop调度器202、204、206基于其相关输入寄存器操作数源的就绪和uop要完成其操作需要的执行资源的可用性而确定何时uop准备好执行。一个实施例的快速调度器202可以在主时钟周期的每半个周期上调度,而其他调度器可以每主处理器时钟周期调度一次。调度器针对分派端口进行仲裁以调度uop以供执行。
物理寄存器文件208、210位于调度器202、204、206以及执行块211中的执行单元212、214、216、218、220、222、224之间。分别存在对于整数和浮点操作的单独的寄存器文件208、210。一个实施例中的每一个寄存器文件208、210还包括旁路网络,其可以绕过或转发刚刚完成的结果到新的相关uop,所述结果尚未被写入到寄存器文件中。整数寄存器文件208和浮点寄存器文件210还能够与另一个传送数据。对于一个实施例,整数寄存器文件208被分裂成两个单独的寄存器文件,一个寄存器文件用于数据的低阶32位,并且第二寄存器文件用于数据的高阶32位。一个实施例的浮点寄存器文件210具有128位宽条目,因为浮点指令通常具有在宽度上从64位到128位的操作数。
执行块211包含执行单元212、214、216、218、220、222、224,在其中实际上执行指令。该区段包括寄存器文件208、210,其存储微指令需要执行的整数和浮点数据操作数值。一个实施例的处理器200包括许多执行单元:地址生成单元(AGU)212、AGU 214、快速ALU216、快速ALU 218、慢速ALU 220、浮点ALU 222、浮点移动单元214。对于一个实施例,浮点执行块222、224执行浮点、MMX、SIMD和SSE或其他操作。一个实施例的浮点ALU 222包括64位乘64位浮点除法器,以执行除法、平方根和余数微op。对于本文描述的系统和方法,可以用浮点硬件来处置涉及浮点值的指令。在某些实现方式中,ALU操作去往高速ALU执行单元216、218。一个实施例的快速ALU 216、218可以执行具有半个时钟周期的有效延迟的快速操作。对于一个实施例,更复杂的整数操作去往慢速ALU 220,由于慢速ALU 220包括用于长延迟类型的操作的整数执行硬件,诸如乘法器、移位、标志逻辑和分支处理。由AGU 212、214执行存储器加载/存储操作。对于一个实施例,在64位数据操作数上执行整数操作的上下文中描述整数ALU 216、218、220。在可替换实施例中,ALU 216、218、220可以实现成支持各种数据位,包括16、32、128、256等。类似地,浮点单元222、224可以实现成支持具有各种宽度的位的操作数范围。对于一个实施例,浮点单元222、224可以结合SIMD和多媒体指令在128位宽封装数据操作数上操作。
在某些实现方式中,uop调度器202、204、206在父加载已经完成执行之前分派相关操作。由于在处理器200中推测地调度和执行uop,因此处理器200还包括处置存储器未命中的逻辑。如果数据加载在数据高速缓存中未命中,则可以在流水线中存在进行中(inflight)的相关操作,所述相关操作已经给调度器留下临时不正确的数据。重放机制跟踪并且重执行使用不正确的数据的指令。相关操作应当被重放,并且允许独立操作完成。处理器的一个实施例的调度器和重放机制还被设计成捕捉用于文本字符串比较操作的指令序列。
术语“寄存器”可以是指用作标识操作数的指令的部分的板上处理器存储位置。换言之,寄存器可以是从处理器的外部(从编程者的角度看)可用的那些。然而,实施例的寄存器不应在含义上限于特定类型的电路。而是,实施例的寄存器能够存储和提供数据,并且执行本文所述的功能。本文所述的寄存器可以由使用任何数目的不同技术的处理器内的电路来实现,诸如专用物理寄存器、使用寄存器别名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。在某些实现方式中,整数寄存器存储三十二位整数数据。一个实施例的寄存器文件还包含用于封装数据的八个多媒体SIMD寄存器。对于下面的讨论,寄存器被理解为数据寄存器,其被设计成保存封装数据,诸如利用来自加利福尼亚圣克拉拉的英特尔公司的MMXTM技术实现的微处理器中的64位宽MMX寄存器(在一些实例中也称为“mm”寄存器)。以整数和浮点形式二者可用的这些MMX寄存器可以与封装数据元素一起操作,所述封装数据元素伴随SIMD和SSE指令。类似地,与SSE2、SSE3、SSE4或更高(通常称为“SSEx”)技术相关的128位宽XMM寄存器还可以用于保存这样的封装数据操作数。在某些实现方式中,在存储封装数据和整数数据时,寄存器不需要在两个数据类型之间进行区分。在某些实现方式中,整数和浮点被包含在相同寄存器文件中,或者包含在不同寄存器文件中。另外,在某些实现方式中,浮点和整数数据可以存储在不同寄存器中或者相同寄存器中。
图12A-12B示意性地图示了根据本公开的一个或多个方面的处理器微架构的元件。在图12A中,处理器流水线400包括取出级402、长度解码级404、解码级406、分配级408、重命名级410、调度(也称为分派或发出)级412、寄存器读取/存储器读取级414、执行级416、写回/存储器写入级418、异常处置级422和提交级424。
在图12B中,箭头标示两个或更多个单元之间的耦合,并且箭头的方向指示那些单元之间的数据流的方向。图12B示出了包括耦合到执行引擎单元450的前端单元430的处理器核111,并且二者都耦合到存储器单元470。
核111可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、甚长指令字(VLIW)核或混合或可替代核类型。作为又一选项,核111可以是专用核,诸如例如,网络或通信核、压缩引擎、图形核等。
前端单元430包括耦合到指令高速缓存单元434的分支预测单元432,所述指令高速缓存单元耦合到指令转换后备缓冲器(TLB)436,所述指令转换后备缓冲器耦合到指令取出单元438,所述指令取出单元耦合到解码单元440。解码单元或解码器可以解码指令,并且作为输出生成一个或多个微操作、微代码入口点、微指令、其他指令或其他控制信号,其从原始指令解码或者以其他方式反映原始指令或者从原始指令得到。解码器可以使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现方式、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。指令高速缓存单元434还被耦合到存储器单元470中的2级(L2)高速缓存单元476。解码单元440被耦合到执行引擎单元450中的重命名/分配器单元452。
执行引擎单元450包括耦合到引退单元454和一个或多个调度器单元456的集合的重命名/分配器单元452。(一个或多个)调度器单元456表示任何数目的不同调度器,包括保留站(RA)、中央指令窗口等。(一个或多个)调度器单元456被耦合到(一个或多个)物理寄存器文件单元458。(一个或多个)物理寄存器文件单元458中的每一个表示一个或多个物理寄存器文件,其中的不同物理寄存器文件存储一个或多个不同的数据类型,诸如标量整数、标量浮点、封装整数、封装浮点、矢量整数、矢量浮点等、状态(例如,作为要执行的下一指令的地址的指令指针)等。(一个或多个)物理寄存器文件单元458可以由引退单元454重叠,以说明其中寄存器别名和无序执行可以被实现的各种方式(例如,使用(一个或多个)重排序缓冲器以及(一个或多个)引退寄存器文件,使用(一个或多个)未来文件、(一个或多个)历史缓冲器、以及(一个或多个)引退寄存器文件;使用寄存器映射和寄存器池;等等)。通常,架构寄存器从处理器的外部或者从编程者的角度可见。寄存器不限于任何已知特定类型的电路。各种不同类型的寄存器是合适的,只要它们能够如本文所述的那样存储和提供数据。合适寄存器的示例包括但不限于专用物理寄存器、使用寄存器别名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。引退单元454和(一个或多个)物理寄存器文件单元458耦合到(一个或多个)执行群集460。(一个或多个)执行群集460包括一个或多个执行单元162的集合以及一个或多个存储器访问单元464的集合。执行单元462可以执行各种操作(例如,移位、加法、减法、乘法)并且在各种类型的数据(例如,标量浮点、封装整数、封装浮点、矢量整数、矢量浮点)上操作。虽然一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但是其他实施例可以仅包括一个执行单元或全部执行所有功能的多个执行单元。(一个或多个)调度器单元456、(一个或多个)物理寄存器文件单元458和(一个或多个)执行群集460被示出为可能是复数个的,因为某些实施例创建用于某些类型的数据/操作的单独的流水线(例如,标量整数流水线、标量浮点/封装整数/封装浮点/矢量整数/矢量浮点流水线和/或存储器访问流水线,每个都具有其自己的调度器单元、(一个或多个)物理寄存器文件单元和/或执行群集——并且在单独的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有(一个或多个)存储器访问单元464的某些实施例)。还应当理解,在使用单独流水线的情况下,这些流水线中的一个或多个可以是无序发出/执行并且其余是有序的。
存储器访问单元的集合464耦合到存储器单元470,存储器单元470包括耦合到数据高速缓存单元474的数据TLB单元472,数据高速缓存单元474耦合到2级(L2)高速缓存单元476。在一个示例性实施例中,存储器访问单元464可以包括加载单元、存储地址单元和存储数据单元,其中的每一个耦合到存储器单元470中的数据TLB单元472。L2高速缓存单元476耦合到一个或多个其他级的高速缓存并且最终耦合到主存储器。
通过示例的方式,示例性寄存器别名、无序发出/执行核架构可以实现流水线400如下:指令取出438执行取出和长度解码级402和404;解码单元440执行解码级406;重命名/分配器单元452执行分配级408和重命名级410;(一个或多个)调度器单元456执行调度级412;(一个或多个)物理寄存器文件单元458和存储器单元470执行寄存器读取/存储器读取级414;执行群集460执行执行级416;存储器单元470和(一个或多个)物理寄存器文件单元458执行写回/存储器写入级418;在异常处置级422中可以涉及各种单元;以及引退单元454和(一个或多个)物理寄存器文件单元458执行提交级424。
核111可以支持一个或多个指令集(例如,x86指令集(具有已经添加有较新版本的一些扩展);加利福尼亚州桑尼维尔的MIPS科技公司的MIPS指令集;ARM指令集(具有加利福尼亚州桑尼维尔的ARM控股公司的附加扩展,诸如NEON)。
在某些实现方式中,核可以支持多线程化(执行操作或线程的两个或更多个并行集合),并且可以以各种方式来这样做,包括时间分段多线程化、同时多线程化(其中单个物理核提供用于物理核同时多线程化的线程中的每一个的逻辑核)或其组合(例如,时间分段取出和解码以及此后的同时多线程化,诸如在Intel®超线程技术中)。
虽然寄存器别名在无序执行的上下文中进行描述,但是应当理解,寄存器别名可以在有序架构中使用。虽然处理器的所图示的实施例还包括单独的指令和数据高速缓存单元434/474和共享L2高速缓存单元476,但是可替代实施例可以具有用于指令和数据二者的单个内部高速缓存,诸如例如1级(L1)内部高速缓存或多级内部高速缓存。在一些实施例中,系统可以包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。可替换地,所有高速缓存可以在核和/或处理器外部。
在某些实现方式中,处理器核111可以设计为无序(OOO)核,以便通过指令的操作数一变得可用就执行指令而不是以程序顺序执行指令来改进性能。然而,性能益处可能由于功耗相当大的增长而被抵消。当多个执行线程可用于操作系统调度时,采用多个有序核而不是大量OOO核可以改进处理器的能耗分布而不损害整体性能。因此,为了改进处理器的性能和能耗可伸缩性,取决于性能需要和可用于操作系统以供调度的线程的数目,后者可以设计为支持可变数目的核。
图13描绘了根据本公开的一个或多个方面的示例计算机系统的框图。如图13中所示,多处理器系统700是点对点互连系统,并且包括经由点对点互连750耦合的第一处理器770和第二处理器780。处理器770和780中的每一个可以是能够执行存储器保护以用于实现可信执行环境的某个版本的处理系统100,如本文在上文更详细地描述的那样。虽然仅示出有两个处理器770、780,但要理解的是,本公开的范围不限于此。在其他实施例中,一个或多个附加处理器可以存在于示例计算机系统中。
处理器770和780被示出分别包括集成存储器控制器单元772和782。作为其总线控制器单元的部分,处理器770还包括点对点(P-P)接口776和778;类似地,第二处理器780包括P-P接口786和788。处理器770、780可以使用P-P接口电路778、788经由点对点(P-P)接口750来交换信息。如图13中所示,IMC 772和782将处理器耦合到相应存储器,即存储器732和存储器734,其可以是本地附连到相应处理器的主存储器的部分。
处理器770、780可以均经由单独的P-P接口752、754使用点对点接口电路776、794、786、798来与芯片组790交换信息。芯片组790还可以经由高性能图形接口739来与高性能图形电路738交换信息。
共享高速缓存(未示出)可以被包括在两个处理器中的任何一个处理器中或在二者外部,而经由P-P互连与处理器连接,使得如果处理器被置于低功率模式中,则任何一个或两个处理器的本地高速缓存信息可以被存储在共享高速缓存中。
芯片组790可以经由接口796耦合到第一总线716。在某些实现方式中,第一总线716可以是外围组件互连(PCI)总线,或诸如快速PCI总线之类的总线或另一第三代I/O互连总线,但是本发明的范围不限于此。
如图13中所示,各种I/O设备714可以耦合到第一总线716,连同总线桥718,所述总线桥将第一总线716耦合到第二总线720。在某些实现方式中,第二总线720可以是低引脚计数(LPC)总线。在某些实现方式中,各种设备可以被耦合到第二总线720,包括例如键盘和/或鼠标722、通信设备727和可以包括指令/代码和数据730的存储单元728,诸如盘驱动器或其他大容量存储设备。另外,音频I/O 724可以耦合到第二总线720。
图14描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。应用处理器910由能够执行存储器保护以用于实现可信执行环境的某个版本的处理系统100来提供,如本文在上文更详细地描述的那样。如图14示意性地图示的,(一个或多个)互连单元902可以被耦合到:应用处理器910,其包括一个或多个核902A-N的集合和(一个或多个)共享高速缓存单元906;系统代理单元910;(一个或多个)总线控制器单元916;(一个或多个)集成存储器控制器单元914;一组或一个或多个媒体处理器920,其可以包括集成图形逻辑908、用于提供静态和/或视频摄像机功能性的图像处理器924、用于提供硬件音频加速的音频处理器926和用于提供视频编码/解码加速的视频处理器928;静态随机存取存储器(SRAM)单元930;直接存储器访问(DMA)单元932;以及用于耦合到一个或多个外部显示器的显示单元940。
图15描绘了根据本公开的一个或多个方面的示例计算机系统的框图。处理器1610可以由能够执行存储器保护以用于实现可信执行环境的某个版本的处理系统100来提供,如本文在上文更详细地描述的那样。
由图15示意性地图示的系统1600可以包括实现为IC、其部分、分立电子设备或其他模块、逻辑、硬件、软件、固件或者它们适配在计算机系统中的组合、或实现为以其他方式并入计算机系统机架内的组件的组件的任何组合。图15的框图意图示出计算机系统的许多组件的高级视图。然而,应理解的是,可以省略示出的一些组件,可以存在附加组件,并且在其他实现方式中可以出现示出的组件的不同布置。
处理器1610可以由微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知处理元件来提供。在图示的实现方式中,处理器1610充当用于与系统1600的许多各种组件通信的主处理单元和中央中心。作为一个示例,处理器1600可以实现为片上系统(SoC)。作为特定说明性示例,处理器1610包括基于Intel®ArchitectureCoreTM的处理器,诸如i3、i5、i7或从加利福尼亚州圣克拉拉市英特尔公司可获得的另一这样的处理器。
处理器1610可以与系统存储器1615通信。在各种实现方式中,单独存储器设备可以具有不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(1P)。在一些实现方式中,这些设备可以直接焊接到母板上以提供较低剖面解决方案,而在其他实现方式中,这些设备可以被配置为继而通过给定连接器耦合到母板的一个或多个存储器模块。其他存储器实现方式是可能的,诸如其他类型的存储器模块,例如不同种类的双列直插式存储器模块(DIMM),包括但不限于微DIMM、微型DIMM。在一个说明性示例中,存储器可以大小介于2GB与16GB之间,并且可以被配置为经由球栅阵列(BGA)焊接到模板上的DDR3LM封装或LPDDR2或LPDDR3存储器。
为了提供诸如数据、应用、一个或多个操作系统等之类的信息的持久性存储,大容量存储装置1620也可以耦合到处理器1610。在某些实现方式中,为了实现更薄且更轻的系统设计以及为了改进系统响应性,大容量存储装置1620可以经由SSD来实现。在其他实现方式中,大容量存储装置可以主要通过具有较小量SSD存储装置的硬盘驱动器(HDD)来提供,所述较小量SSD存储装置充当SSD高速缓存以实现掉电事件期间上下文状态和其他这样的信息的非易失性存储,使得在系统活动重新发起时可以发生快速上电。
如图15中所示,闪存设备1622可以例如经由串行外围接口(SPI)耦合到处理器1610。闪存设备1622可以提供包括基本输入/输出软件(BIOS)的系统软件以及系统的其他固件的非易失性存储。
在各种实现方式中,系统的大容量存储装置可以由SSD单独提供或者提供为具有SSD高速缓存的盘、光学或其他驱动器。在一些实现方式中,大容量存储装置可以由SSD来提供或者提供为HDD连同恢复(RST)高速缓存模块。SSD高速缓存可以被配置为单级高速缓存(SLC)或多级高速缓存(MLC)选项,以提供适当的响应性级别。
在系统1600内可以存在各种输入/输出(IO)设备,包括例如显示器1624,显示器1624可以由配置在机架的盖部分内的高清晰LCD或LED面板来提供。该显示面板还可以提供触摸屏1625,所述触摸屏在外部适配在显示面板之上使得经由用户与该触摸屏的交互,可以将用户输入提供到系统以实现例如关于信息的显示、信息的访问等的期望操作。在某些实现方式中,显示器1624可以经由显示互连耦合到处理器1610,所述显示互连可以实现为高性能图形互连。触摸屏1625可以经由另一互连耦合到处理器1610,在实施例中,所述另一互连可以是I2C互连。除了触摸屏1625之外,通过触摸方式的用户输入还可以经由触摸板1630而出现,触摸板1630可以被配置在机架内并且也可以耦合到与触摸屏1625相同的I2C互连。
各种传感器可以存在于系统内并且可以以不同方式耦合到处理器1610。某些惯性和环境传感器可以通过传感器中心1640(例如,经由I2C互连)耦合到处理器1610。这些传感器可以包括加速度计1641、环境光传感器(ALS)1642、罗盘1643以及陀螺仪1644。其他环境传感器可以包括一个或多个热传感器1646,在一些实施例中,一个或多个热传感器1646经由系统管理总线(SMBus)总线耦合到处理器1610。在某些实现方式中,可以存在一个或多个红外或其他热量感测元件或者用于感测用户的存在或移动的任何其他元件。
各种外围设备可以经由低引脚计数(LPC)互连耦合到处理器1610。在某些实现方式中,各种组件可以通过嵌入式控制器1635而被耦合。这样的组件可以包括键盘1636(例如,经由PS2接口而被耦合)、风扇1637和热传感器1639。在一些实施例中,触摸板1630也可以经由PS2接口耦合到EC 1635。另外,诸如根据2003年10月2日的可信计算组(TCG)TPM规范版本1.2的可信平台模块(TPM)1638之类的安全处理器也可以经由该LPC互连耦合到处理器1610。
在某些实现方式中,外围端口可以包括:高清晰媒体接口(HDMI)连接器(其可以具有不同的形状因子,诸如全尺寸、微型或微);一个或多个USB端口,诸如根据(2008年11月的)通用串行总线修订版3.0规范的全尺寸外部端口,其中至少一个被供电以用于当系统处于连接待机状态并且插入AC墙壁电源中时对USB设备(诸如智能电话)充电。另外,可以提供一个或多个ThundeboltTM端口。其他端口可以包括外部可访问的读卡器,诸如全尺寸SD-XC读卡器和/或用于WWAN的SIM读卡器(例如,8引脚读卡器)。对于音频,可以存在具有立体声和麦克风能力(例如组合功能性)的3.5mm插孔,其中支持插孔检测(例如,仅支持使用盖中的麦克风的耳机或具有线缆中的麦克风的耳机)。在一些实施例中,该插孔可以是可在立体声耳机与立体声麦克风输入之间重新分派任务的。而且,可以提供用于耦合到AC砖(brick)的功率插孔。
系统1600可以以各种方式(包括无线地)与外部设备通信。在图16中示出的实施例中,存在各种无线模块,每个无线模块可以对应于被配置用于特定无线通信协议的无线电设备。一种用于在短距离(诸如近场)中无线通信的方式可以是经由近场通信(NFC)单元1645,在某些实现方式中,近场通信(NFC)单元1645可以经由SMBus与处理器1610通信。
附加无线单元可以包括其他短距离无线引擎,包括WLAN单元1650和蓝牙单元1652。使用WLAN单元1650,可以实现根据给定电气和电子工程师协会(IEEE)802.11标准的Wi-FiTM通信,而经由蓝牙单元1652,可以发生经由蓝牙协议的短距离通信。这些单元可以经由例如USB链路或通用异步接收器发射器(UART)链路来与处理器1610通信。或者,这些单元可以经由根据快速外围组件互连TM(PCIeTM)协议(例如根据(2007年1月17日发布的)快速PCITM规范基本规范版本3.0)或诸如串行数据输入/输出(SDIO)标准之类的另一这样的协议的互连而耦合到处理器1610。当然,在可以配置在一个或多个插入卡上的这些外围设备之间的实际物理连接可以通过适配于母板的NGFF连接器的方式。
另外,例如根据蜂窝或其他无线广域网协议的无线广域通信可以经由WWAN单元1656而发生,WWAN单元1656继而可以耦合到订户身份模块(SIM)1657。另外,为了实现位置信息的接收和使用,还可以存在GPS模块1655。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1660来实现音频处理器,数字信号处理器(DSP)1660可以经由高清晰音频(HDA)链路耦合到处理器1610。类似地,DSP 1660可以与集成的编码器/解码器(编解码器(CODEC))和放大器1662通信,集成的编码器/解码器(编解码器)和放大器1662可以耦合到可以实现在机架内的输出扬声器1663。类似地,放大器和编解码器1662可以耦合以从麦克风1665接收音频输入。
图16描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。作为特定说明性示例,SOC 1700可以被包括在用户设备(UE)中。在某些实现方式中,UE是指被最终用户用于通信的任何设备,诸如手持电话、智能电话、平板电脑、超薄笔记本电脑、具有宽带适配器的笔记本电脑或任何其他类似的通信设备。通常,UE连接到基站或节点,其潜在地本质上对应于GSM网络中的移动站(MS)。
如图16示意性地图示的,SoC 1700可以包括2个核。核1706和1707可以耦合到高速缓存控制1708,其与总线接口单元1709和L2高速缓存1710相关联以与系统1700的其他部分通信。互连1710可以包括片上互连,诸如IOSF、AMBA或其他互连。
互连1710可以向其他组件提供通信信道,所述其他组件诸如与SIM卡对接的订户身份模块(SIM)1730、保存引导代码以供核1706和1707执行以初始化和引导SoC 1700的引导ROM 1735、与外部存储器(例如, DRAM 1760)对接的SDRAM控制器1740、与非易失性存储器(例如,闪存1765)对接的闪存控制器1745、与外设对接的外设控制1550(例如,串行外设接口)、显示和接收输入(例如,触摸使能的输入)的视频编解码器1720和视频接口1725、执行图形相关计算的GPU 1715等。另外,系统可以包括用于通信的外设,诸如蓝牙模块1770、3G调制解调器1775、GPS 1785和Wi-Fi 1785。
其他计算机系统设计和配置也可以适于实现本文描述的系统和方法。以下示例说明了根据本公开的一个或多个方面的各种实现方式。
示例1是一种处理系统,包括:存储器;密码加速器模块,其操作地耦合到存储器,密码加速器模块用于通过执行以下来实现字节替代操作:输入位序列的第一映射仿射变换以产生第一中间位序列;第一中间位序列的逆变换以产生第二中间位序列;以及第二中间位序列的第二映射仿射变换以产生输出位序列。
示例2是示例1所述的处理系统,其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
示例3是示例2所述的处理系统,其中第一变换矩阵与有限域的一对约减多项式相关联。
示例4是示例2所述的处理系统,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
示例5是示例4所述的处理系统,其中通过GF(28)伽罗瓦域来表示有限素域。
示例6是示例4所述的处理系统,其中通过GF(24)2伽罗瓦域来表示合成域。
示例7是示例1所述的处理系统,其中由通过将映射矩阵和第二变换矩阵相乘而产生的矩阵来表示第二映射仿射变换。
示例8是示例1所述的处理系统,其中所述处理系统被采用来执行以下之一:SMS4加密操作或SMS4解密操作。
示例9是示例1所述的处理系统,其中所述处理系统实现为片上系统(SoC)。
示例10.一种方法,包括:通过处理设备来执行输入位序列的第一映射仿射变换以产生第一中间位序列;执行第一中间位序列的逆变换以产生第二中间位序列;以及执行第二中间位序列的第二映射仿射变换以产生输出位序列。
示例11是示例10所述的方法,其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
示例12是示例11所述的方法,其中第一变换矩阵与有限域的一对约减多项式相关联。
示例13是示例11所述的方法,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
示例14是示例13所述的方法,其中通过GF(28)伽罗瓦域来表示有限素域。
示例15是示例13所述的方法,其中通过GF(24)2伽罗瓦域来表示合成域。
示例16是示例10所述的方法,还包括:使用输出位序列来执行密码操作。
示例17.一种装置,包括:存储器;以及耦合到存储器的处理系统,处理系统用于执行如示例10-16中任一项所述的方法。
示例18.一种包括可执行指令的计算机可读非暂时性存储介质,所述可执行指令当被处理设备执行时使处理设备执行操作,所述操作包括:执行输入位序列的第一映射仿射变换以产生第一中间位序列;执行第一中间位序列的逆变换以产生第二中间位序列;以及执行第二中间位序列的第二映射仿射变换以产生输出位序列。
示例19是示例18所述的计算机可读非暂时性存储介质,其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
示例20是示例19所述的计算机可读非暂时性存储介质,其中第一变换矩阵与有限域的一对约减多项式相关联。
示例21是示例18所述的计算机可读非暂时性存储介质,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
示例22是示例21所述的计算机可读非暂时性存储介质,其中通过GF(28)伽罗瓦域来表示有限素域。
示例23是示例21所述的计算机可读非暂时性存储介质,其中通过GF(24)2伽罗瓦域来表示合成域。
示例24是示例18所述的计算机可读非暂时性存储介质,其中由通过将映射矩阵和第二变换矩阵相乘而产生的矩阵来表示第二映射仿射变换。
示例25.一种方法,包括:标识与有限素域相关联的第一多个不可约多项式,其中每个所标识的多项式具有有限素域中的原根;标识与有限素域的合成域相关联的第二多个不可约多项式,其中每个所标识的多项式具有合成域中的原根;使用第一多个多项式中的第一多项式和第二多个多项式中的第二多项式的多个组合来标识多个合成域元素,其中每个所标识的合成域元素表示与有限素域相关联的约减多项式的根;以及使用所标识的多个合成域元素来生成多个映射矩阵和相关联的映射仿射矩阵。
示例26是示例25所述的方法,还包括:使用所生成的多个映射矩阵中的映射矩阵来标识S-盒实现方式,其中所标识的S-盒实现方式在多个S-盒实现方式当中具有最小区域设计。
示例27是示例26所述的方法,还包括:使用所标识的S-盒实现方式来执行密码操作。
示例28是示例25所述的方法,其中通过GF(24)2伽罗瓦域来表示合成域。
示例29.一种装置,包括:存储器;以及耦合到存储器的处理系统,处理系统用于执行如示例25-28中任一项所述的方法。
示例30.一种包括可执行指令的计算机可读非暂时性存储介质,所述可执行指令当被处理系统执行时使处理系统执行操作,所述操作包括:标识与有限素域相关联的第一多个不可约多项式,其中每个所标识的多项式具有有限素域中的原根;标识与有限素域的合成域相关联的第二多个不可约多项式,其中每个所标识的多项式具有合成域中的原根;使用第一多个多项式中的第一多项式和第二多个多项式中的第二多项式的多个组合来标识多个合成域元素,其中每个所标识的合成域元素表示与有限素域相关联的约减多项式的根;以及使用所标识的多个合成域元素来生成多个映射矩阵和相关联的映射仿射矩阵。
示例31.根据示例30所述的计算机可读非暂时性存储介质,还包括:使用所生成的多个映射矩阵中的映射矩阵来标识S-盒实现方式,其中所标识的S-盒实现方式在多个S-盒实现方式当中具有最小区域设计。
示例32.根据示例30所述的计算机可读非暂时性存储介质,其中通过GF(28)伽罗瓦域来表示有限素域。
33.根据示例30所述的计算机可读非暂时性存储介质,其中通过GF(24)2伽罗瓦域来表示合成域。
在对计算机存储器内的数据位的操作的算法和符号表示的方面呈现详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于向本领域其他技术人员更有效地传达其工作的实质的手段。算法在此处并且一般地被设想为导致期望结果的操作的自一致序列。操作是要求物理量的物理操纵的那些。通常,尽管不是必要的,这些量采取能够被存储、传递、组合、比较或以其他方式操纵的电学或磁性信号的形式。已经证实便捷的是,有时主要为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等。
然而,应考虑到,所有这些和类似术语要与适当物理量关联,并且仅仅是应用于这些量的便捷标签。除非另有从以上讨论明显的具体陈述,否则应领会的是,贯穿本描述,利用诸如“加密”、“解密”、“存储”、“提供”、“导出”、“获得”、“接收”、“认证”、“删除”、“执行”、“请求”、“通信”等之类的术语的讨论是指计算系统或类似电子计算设备的动作或过程,所述计算系统或类似电子计算设备操纵表示为计算系统的寄存器和存储器内的物理(例如,电子)量的数据和将其变换成类似地表示为计算系统存储器或寄存器或其他这样的信息存储、传输或显示设备内的物理量的其他数据。
词语“示例”或“示例性”在本文用于意指充当示例、实例或说明。本文描述为“示例”或“示例性”的任何方面或设计不一定被解释为相对于其他方面或设计是优选的或有利的。而是,词语“示例”或“示例性”的使用意图在于以具体的方式呈现概念。如在本申请中使用的,术语“或”意图在于意指包含性“或”而不是排除性“或”。也就是说,除非另有指定或从上下文中清楚的,否则“X包括A或B”意图在于意指本质上包含性排列中的任何一个。也就是说,如果X包括A;X包括B;或X包括A和B二者,则在任何前述实例下满足“X包括A或B”。此外,如本申请以及随附权利要求中使用的冠词“一”和“一个”应一般地解释为意指“一个或多个”,除非另有指定或从上下文清楚是针对单数形式。此外,贯穿全文术语“实施例”或“一个实施例”或“实现方式”或“一个实现方式”的使用不意图意指相同实施例或实现方式,除非这样描述。而且,如本文使用的术语“第一”、“第二”、“第三”、“第四”等意味是标签以区分不同元素,并且可以不一定具有根据其数字表示的次序含义。
本文描述的实施例还可以涉及用于执行其中的操作的装置。该装置可以处于所要求目的而被特殊构建,或者它可以包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在非暂时性计算机可读存储介质中,诸如但不限于:包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、闪速存储器、或者适于存储电子指令的任何类型的介质。术语“计算机可读存储介质”应被理解为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被理解为包括能够存储、编码或承载指令集以供机器执行并且使机器执行本实施例的方法中的任何一个或多个的任何介质。术语“计算机可读存储介质”相应地应被理解为包括但不限于固态存储器、光学介质、磁性介质、能够存储指令集以供机器执行并且使机器执行本实施例的方法中的任何一个或多个的任何介质。
本文给出的算法和显示不固有地涉及任何特定计算机或其他装置。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证实构建更专用装置以执行所要求的方法操作是便捷的。各种这些系统的所要求的结构将从下面的描述而显现。另外,未参考任何特定编程语言来描述本实施例。将领会到的是,各种编程语言可以用于实现如本文所公开的实施例的教导。
上文的描述阐述了许多特定细节(诸如特定系统、组件、方法等的示例)以便提供若干实施例的良好理解。然而,对本领域技术人员将明显的是,至少一些实施例可以在没有这些特定细节的情况下实践。在其他实例中,熟知组件或方法未被详细描述或者以简单框图格式给出,以免不必要地模糊本实施例。因此,上文阐述的特定细节仅仅是示例性的。特定实现方式可以从这些示例性细节更改并且仍被设想在本实施例的范围内。
应理解的是,上文的描述意图是说明性而非限制性的。在阅读并理解上文的描述后,许多其他实施例对于本领域技术人员将是明显的。因此,应当参考所附权利要求连同这样的权利要求被赋予的等同物的全部范围来确定本实施例的范围。

Claims (22)

1.一种用于执行密码操作的处理系统,包括:
存储器;
密码加速器模块,其操作地耦合到存储器,密码加速器模块用于通过执行以下来实现字节替代操作:
执行输入位序列的第一映射仿射变换以产生第一中间位序列,
执行第一中间位序列的逆变换以产生第二中间位序列,以及
执行第二中间位序列的第二映射仿射变换以产生输出位序列,
其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
2.根据权利要求1所述的处理系统,其中第一变换矩阵与有限域的一对约减多项式相关联。
3.根据权利要求1所述的处理系统,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
4.根据权利要求3所述的处理系统,其中通过GF(28)伽罗瓦域来表示有限素域。
5.根据权利要求3所述的处理系统,其中通过GF(24)2伽罗瓦域来表示合成域。
6.根据权利要求1所述的处理系统,其中由通过将映射矩阵和第二变换矩阵相乘而产生的矩阵来表示第二映射仿射变换。
7.根据权利要求1所述的处理系统,其中所述处理系统被采用来执行以下之一:SMS4加密操作或SMS4解密操作。
8.根据权利要求1所述的处理系统,其中所述处理系统实现为片上系统SoC。
9.一种用于执行密码操作的方法,包括:
由处理设备执行输入位序列的第一映射仿射变换以产生第一中间位序列;
执行第一中间位序列的逆变换以产生第二中间位序列;以及
执行第二中间位序列的第二映射仿射变换以产生输出位序列,
其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
10.根据权利要求9所述的方法,其中第一变换矩阵与有限域的一对约减多项式相关联。
11.根据权利要求9所述的方法,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
12.根据权利要求11所述的方法,其中通过GF(28)伽罗瓦域来表示有限素域。
13.根据权利要求11所述的方法,其中通过GF(24)2伽罗瓦域来表示合成域。
14.根据权利要求9所述的方法,还包括:
使用输出位序列来执行密码操作。
15.一种用于执行密码操作的装置,包括:
存储器;以及
耦合到存储器的处理系统,处理系统用于执行根据权利要求9-14中任一项所述的方法。
16.一种用于执行密码操作的装置,包括:
用于由处理设备执行输入位序列的第一映射仿射变换以产生第一中间位序列的部件;
用于执行第一中间位序列的逆变换以产生第二中间位序列的部件;以及
用于执行第二中间位序列的第二映射仿射变换以产生输出位序列的部件,
其中由通过将映射矩阵和第一变换矩阵相乘而产生的矩阵来表示第一映射仿射变换。
17.根据权利要求16所述的装置,其中第一变换矩阵与有限域的一对约减多项式相关联。
18.根据权利要求16所述的装置,其中输入位序列和输出位序列中的至少一个通过有限素域的元素来提供,并且其中映射矩阵表示从有限素域到有限素域的合成域的映射。
19.根据权利要求18所述的装置,其中通过GF(28)伽罗瓦域来表示有限素域。
20.根据权利要求18所述的装置,其中通过GF(24)2伽罗瓦域来表示合成域。
21.根据权利要求16所述的装置,还包括:
用于使用输出位序列来执行密码操作的部件。
22.一种计算机可读介质,在其上具有指令,当指令被执行时导致计算机设备执行根据权利要求9-14中任一个所述的方法。
CN201680055704.6A 2015-09-24 2016-08-12 经双仿射映射的s-盒硬件加速器 Active CN108027864B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/863769 2015-09-24
US14/863,769 US10158485B2 (en) 2015-09-24 2015-09-24 Double affine mapped S-box hardware accelerator
PCT/US2016/046905 WO2017052837A1 (en) 2015-09-24 2016-08-12 Double affine mapped s-box hardware accelerator

Publications (2)

Publication Number Publication Date
CN108027864A CN108027864A (zh) 2018-05-11
CN108027864B true CN108027864B (zh) 2022-07-05

Family

ID=58387137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680055704.6A Active CN108027864B (zh) 2015-09-24 2016-08-12 经双仿射映射的s-盒硬件加速器

Country Status (4)

Country Link
US (1) US10158485B2 (zh)
CN (1) CN108027864B (zh)
DE (1) DE112016004342T5 (zh)
WO (1) WO2017052837A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328020B1 (ko) * 2015-04-03 2021-11-17 한국전자통신연구원 하나의 룩업 테이블을 이용한 파노라마 영상 출력 시스템 및 방법
KR102451156B1 (ko) * 2015-12-09 2022-10-06 삼성전자주식회사 메모리 모듈 내에서 랭크 인터리빙 동작을 갖는 반도체 메모리 장치
US11323247B2 (en) 2017-10-27 2022-05-03 Quantropi Inc. Methods and systems for secure data communication
US11138132B2 (en) * 2018-06-20 2021-10-05 Intel Corporation Technologies for secure I/O with accelerator devices
CN108880783B (zh) * 2018-09-06 2021-04-20 成都三零嘉微电子有限公司 一种针对sm4算法的联合攻击方法
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher
US20220224509A1 (en) * 2019-04-23 2022-07-14 Quantropi Inc. Enhanced randomness for digital systems
US11722292B2 (en) 2021-01-29 2023-08-08 Robert Bosch Gmbh System and method for improving the efficiency of advanced encryption standard in multi-party computation with precomputed data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516512A (zh) * 2013-10-21 2014-01-15 深圳市芯通信息科技有限公司 基于aes算法的加解密方法及加解密器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003302946A1 (en) 2002-12-13 2004-07-09 Koninklijke Philips Electronics N.V. A small hardware implementation of the subbyte function of rijndael
CN100369074C (zh) * 2006-03-02 2008-02-13 西安西电捷通无线网络通信有限公司 一种实现sms4密码算法中加解密处理的方法
US7860240B2 (en) 2007-06-29 2010-12-28 Intel Corporation Native composite-field AES encryption/decryption accelerator circuit
US8923510B2 (en) 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
JP2010049213A (ja) 2008-08-25 2010-03-04 Toshiba Corp 暗号化装置、復号装置、暗号通信システム、方法及びプログラム
KR100960113B1 (ko) 2008-09-19 2010-05-27 한국전자통신연구원 고속처리 가능한 아리아 암복호화 장치
KR100991713B1 (ko) 2008-11-26 2010-11-04 고려대학교 산학협력단 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
JP5711681B2 (ja) 2012-03-06 2015-05-07 株式会社東芝 暗号処理装置
US9143325B2 (en) * 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
US9843441B2 (en) 2013-09-24 2017-12-12 Intel Corporation Compact, low power advanced encryption standard circuit
US9800406B2 (en) 2014-05-21 2017-10-24 Intel Corporation Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher
US9910792B2 (en) 2016-04-11 2018-03-06 Intel Corporation Composite field scaled affine transforms-based hardware accelerator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516512A (zh) * 2013-10-21 2014-01-15 深圳市芯通信息科技有限公司 基于aes算法的加解密方法及加解密器

Also Published As

Publication number Publication date
CN108027864A (zh) 2018-05-11
WO2017052837A1 (en) 2017-03-30
DE112016004342T5 (de) 2018-05-30
US20170093571A1 (en) 2017-03-30
US10158485B2 (en) 2018-12-18

Similar Documents

Publication Publication Date Title
US10402468B2 (en) Processing device for performing convolution operations
CN108027864B (zh) 经双仿射映射的s-盒硬件加速器
EP2889800B1 (en) Using authenticated manifests to enable external certification of multi-processor platforms
TWI540446B (zh) 用於實施安全視訊輸出路徑的硬體輔助虛擬化
US9852301B2 (en) Creating secure channels between a protected execution environment and fixed-function endpoints
US9501668B2 (en) Secure video ouput path
EP3391196B1 (en) Instruction and logic for secure instruction execution pipeline
US10230528B2 (en) Tree-less integrity and replay memory protection for trusted execution environment
US9417879B2 (en) Systems and methods for managing reconfigurable processor cores
CN109565438B (zh) 混合加密算法的硬件加速器及其系统
US9705892B2 (en) Trusted time service for offline mode
US10191748B2 (en) Instruction and logic for in-order handling in an out-of-order processor
US9759768B2 (en) Delayed authentication debug policy
EP3391201A1 (en) Instruction and logic for partial reduction operations
US9959939B2 (en) Granular cache repair
US20150178203A1 (en) Optimized write allocation for two-level memory
CN108027866B (zh) 具有轮常数生成的sms4加速处理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant