A flexible AES instruction set for general purpose processors is provided. The instruction set includes a \one cycle\ instruction for executing AES encryption or decryption, and also includes instructions for performing key generation. An immediate number can be used to indicate the length of the key generated by the loop number and the key of the 128/192/256 bit key. Because the flexible AES instruction set does not require tracking implicit registers, pipeline capability can be made full use of.
【技术实现步骤摘要】
用于高级加密标准(AES)的灵活结构和指令本申请是申请日为2008年3月25日、申请号为201310110523.7的同名专利申请的分案申请。
本公开涉及密码算法,并且具体而言,涉及高级加密标准(AES)算法。
技术介绍
密码是依靠算法和密钥来保护信息的工具。这种算法是复杂的数学算法,而所述密钥是比特串。密码系统具有两种基本类型:私用密钥系统和公共密钥系统。私用密钥系统又称为对称系统,其具有两方或多方共享的单个密钥(“私用密钥”)。该单个密钥既用于加密信息也用于解密信息。国家标准和技术研究所(NIST)发布的作为联邦信息处理标准(FIPS)197的高级加密标准(AES)是一种私用密钥系统。AES是能够加密和解密信息的对称块加密(blockcipher)。加密技术(加密)使用私用密钥(加密密钥)执行一系列的转换,以将被称为“明文”的可理解数据转换为被称为“密文”的无法理解的形式。加密中的转换包括:(1)使用异或(XOR)操作将循环(round)密钥(从加密密钥导出的值)与体(state)(字节的二维阵列)相加;(2)使用非线性字节替换表(S-盒(S-Box))对体进行处理;(3)使用不同的偏移来循环移位所述体的最后三行;以及(4)获取所述体的所有列,并且(相互独立地)混合所述列的数据以产生新的列。解密(反加密)使用加密密钥来执行一系列的转换,以将“密文”块转换为同样大小的“明文”块。反加密中的转换是加密中进行的变换的逆操作。在AES标准中指定Rijindael算法使用长度为128、192和256位的加密密钥来处理128位的数据块。一般将不同的密钥长度称为AE ...
【技术保护点】
一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述循环,所述AES解密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的所述循环的结果存储在目的寄存器中;其中,所述AES解密操作的所述循环包括:对所述输入数据执行的替换操作,所述替换操作包括逆替换盒(S‑box)查询,逆移位行操作,逆混合列操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。
【技术特征摘要】
2007.03.28 US 11/729,1991.一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述循环,所述AES解密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的所述循环的结果存储在目的寄存器中;其中,所述AES解密操作的所述循环包括:对所述输入数据执行的替换操作,所述替换操作包括逆替换盒(S-box)查询,逆移位行操作,逆混合列操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。2.一种处理器,包括:多个核心,其包括第一核心,其中,所述第一核心包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述循环解密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述循环,所述AES解密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的所述循环的结果存储在目的寄存器中;其中,所述AES解密操作的所述循环包括:对所述输入数据执行的替换操作,所述替换操作包括逆替换盒(S-box)查询,逆移位行操作,逆混合列操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。3.一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述循环加密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述循环,所述AES加密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的所述循环的结果存储在目的寄存器中;其中,所述AES加密操作的所述循环包括:替换字节转换,其对所述输入数据执行字节替换,所述替换字节转换包括替换盒(S-box)查询,以得到被替换数据的第一阵列;移位行转换,其将所述第一阵列中的行数据移位一指定量,以得到第二阵列;混合列转换,在所述混合列转换中,所述第二阵列的列被视作伽罗瓦域GF(28)上的多项式,并且被与固定多项式相乘且对x4+1取模,以生成混合列结果;以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述混合列结果的数据。4.一种处理器,包括:多个核心;所述多个核心中的第一核心,其包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述循环加密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述循环,所述AES加密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的所述循环的结果存储在目的寄存器中;其中,所述AES加密操作的所述循环包括:替换字节转换,其对所述输入数据执行字节替换,所述替换字节转换包括替换盒(S-box)查询,以得到被替换数据的第一阵列;移位行转换,其将所述第一阵列中的行数据移位一指定量,以得到第二阵列;混合列转换,在所述混合列转换中,所述第二阵列的列被视作伽罗瓦域GF(28)上的多项式,并且被与固定多项式相乘且对x4+1取模,以生成混合列结果;以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述混合列结果的数据。5.一种系统,包括:处理器,其包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述循环,所述AES解密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的所述循环的结果存储在目的寄存器中;其中,所述AES解密操作的所述循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,逆混合列操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动态随机存取存储器;以及一个或多个存储设备,其耦合到所述处理器。6.如权利要求5所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。7.如权利要求5所述的系统,其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。8.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口。9.如权利要求5所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。10.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。11.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。12.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。13.一种系统,包括:处理器,其包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述循环解密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述循环,所述AES解密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的所述循环的结果存储在目的寄存器中;其中,所述AES解密操作的所述循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,逆混合列操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动态随机存取存储器;以及一个或多个存储设备,其耦合到所述处理器。14.如权利要求13所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。15.如权利要求13所述的系统,其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。16.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口。17.如权利要求13所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。18.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。19.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。20.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。21.一种系统,包括:处理器,其包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述循环加密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述循环,所述AES加密操作使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的所述循环的结果存储在目的寄存器中;其中,所述AES加密操作的所述循环包括:替换字节转换,其对所述输入数据执行字节替换,所述替换字节转换使用替换盒(S-box),以得到被替换数据的第一阵列,移位行转换,其将所述第一阵列中的行数据移位一指定量,以得到第二阵列,混合列转换,在所述混合列转换中,所述第二阵列的列被视作伽罗瓦域GF(28)上的多项式,并且被与固定多项式相乘且对x4+1取模,以生成混合列结果,以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述混合列结果的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动态随机...
【专利技术属性】
技术研发人员:S·格伦,W·K·费加利,V·戈帕尔,M·拉古纳丹,M·G·狄克逊,S·陈努帕蒂,M·E·科纳维斯,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。