CN1677921A - 通过可编程器件实现数据加密的方法 - Google Patents

通过可编程器件实现数据加密的方法 Download PDF

Info

Publication number
CN1677921A
CN1677921A CN 200410032080 CN200410032080A CN1677921A CN 1677921 A CN1677921 A CN 1677921A CN 200410032080 CN200410032080 CN 200410032080 CN 200410032080 A CN200410032080 A CN 200410032080A CN 1677921 A CN1677921 A CN 1677921A
Authority
CN
China
Prior art keywords
aes
key
iterative operation
data
sub
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.)
Pending
Application number
CN 200410032080
Other languages
English (en)
Inventor
毛文侠
张耀文
叶锦华
姚慧勇
孙浩
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 200410032080 priority Critical patent/CN1677921A/zh
Publication of CN1677921A publication Critical patent/CN1677921A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种通过可编程器件实现数据加密/解密的方法,将所述数据和密钥经过多次高级加密标准(AES)迭代单元的迭代操作生成密文/明文;该方法是在可编程器件内建立能实现AES迭代操作的AES迭代单元;所述AES迭代单元在一个时钟周期内,根据输入密钥生成子密钥,以及利用该子密钥与输入的数据完成一次AES迭代操作。

Description

通过可编程器件实现数据加密的方法
技术领域
本发明涉及数据加密技术,尤其涉及一种通过可编程器件实现数据加密的方法。
背景技术
高级加密标准(AES)的候选算法Rijndael是一种使用可变分组和密钥长度的迭代分组密码。它是由比利时的Joan Daemen和Vincent Rijmen设计的。Rijndael支持长度为128、192和256比特的分组和密钥。
Rijndael使用的次数依赖于分组和密钥的长度。如果分组长度是128bits,k是密钥长度的比特数,则次数r为k/32+6。也就是说,若密钥长度分别为128、192和256比特,则对应的次数分别为10、12和14。
对于分组长度和密钥长度均为128比特(bit),其加密如图1所示:
首先密钥K0和待加密信息进行异或,然后所有要加密的分组都用一个函数F进行迭代计算,计算用的子密钥Ki(i=1,2,3......10)是由一个密钥扩展函数产生的,初始密匙K0是主密钥。对于AES函数F要迭代10次。
下面的描述的是加密过程中函数F是如何被迭代的。每轮变换(即图1中的函数F)包含4个不同的处理:字节替换(SubByte),移位行运算(ShiftRow),混合列运算(MixColumn),轮密钥(AddRoundKey)。按照伪码描述,加密过程如下:
Round(State,RoundKey)
{
  SubByte(State);
  ShiftRow(State);
  MixColumn(State);
    AddRoundKey(State,RoundKey);
  }
最后一轮有所不同,其定义如下:
FinalRound(State,RoundKey)
{
    SubByte(State);
    ShiftRow(State);
    AddRoundKey(State,RoundKey);
    }
以上函数(Round,SubByte,ShiftRow......)都是针对指向矩阵的指针(State,RoundKey)进行操作。可以看出,最后一轮等效于去掉MixColumn的轮操作。
子密钥Ki是用密钥扩展函数从第Ki-1轮的子密钥得到的。
解密过程与加密类似,每一轮的运算伪码表达如下:
InvRound(State,RoundKey)
{
  AddRoundKey(State,RoundKey);
  InvMixColumn(State);
  InvShiftRow(State);
  InvSubByte(State);
}
最后一轮与前面不同,表达如下:
InvFinalRound(State,RoundKey)
{
  AddRoundKey(State,RoundKey);
  InvShiftRow(State);
  InvSubByte(State);
}
目前大多用软件来实现Rijndael算法,其主要缺点是加密数据的速度慢,数据流量最快也只能够达到几十兆bps。对于一个加密算法而言,重要的不仅仅是安全,也需要有足够的加密吞吐量来满足数据通信对流量的要求。用软件来实现,一般不能满足大吞吐量要求,因而成为数据加密通信中的瓶颈。
发明内容
本发明的目的在于提供一种通过可编程器件实现数据加密的方法,以解决现技术中通过软件实现高级加密标准(AES)的候选算法Rijndael存在速度加密速度慢的问题。
一种通过可编程器件实现数据加密/解密的方法,将所述数据和密钥经过多次高级加密标准(AES)迭代单元的迭代操作生成密文/明文;该方法为:在可编程器件内建立能实现AES迭代操作的AES迭代单元;所述AES迭代单元在一个时钟周期内,根据输入密钥生成子密钥,以及利用该子密钥与输入的数据完成一次AES迭代操作。
其中:
AES迭代单元每次完成AES迭代操作后,累计AES迭代操作的次数并与加密/解密一个分组数据所需AES迭代次数比较来判断是否已完成对分组数据加密/解密,如果是,则输出加密后的密文分组,否则,将该次迭代操作后的分组和子密钥作为AES迭代单元的输入,并进行下一轮迭代操作。
AES迭代单元对输入密钥进行移位和查ROM表生成子密钥。
在可编程逻辑器件的一个时钟周期内将用于生成子密钥的主密钥和分组数据存储到寄存器中。
输出密文时在可编程逻辑器件的一个时钟周期内将该密文保存到输出寄存器。
每一个分组数据在第一轮AES迭代操作之前先与前一轮迭代操作后的数据进行“异或”运算。
对初始的分组数据,在进行第一轮AES迭代操作之前先将该明文分组与一个初始化向量进行“异或”运算。
每轮AES迭代操作包括步骤:
(1)将分组数据作为地址查询ROM表,完成对分组的字节替换运算(SubByte);
(2)通过赋值方式对步骤(1)的结果进行移位行运算(ShiftRow);
(3)采用赋值和“异或”运算对步骤(2)的结果进行混合列运算(MixColumn);
(4)将步骤(3)的结果与本轮中产生的子密钥进行“异或”,完成轮密钥运算(AddRoundKey)。
本发明采用逻辑器件实现AES加密算法,在分组长度和密钥长度均为128比特(bit)的情况下,实现每个分组的加密只需要12个时钟周期,在时钟频率为50MHz的情况下,流量可以达到500Mbps以上,使加密/解密的速度大大提高,能够更好地满足数据通信对流量的要求,因此本发明是一种更为安全、高效的加密/解密方法。
附图说明
图1为128-bitAES加密10轮过程流程示意图;
图2为AES加/解密逻辑接口示意图;
图3为密码分组链接模式(CBC)加密模式示意图;
图4为CBC解密模式示意图;
图5为移位行(ShiftRows)过程示意图;
图6为混合列(MixColumn)过程示意图;
图7为轮密钥(AddRoundKey)过程示意图;
图8为AES加密处理过程示意图;
图9为AES子密钥生成示意图。
具体实施方式
本实施例以明文分组数据长度和密钥长度均为128比特为例对本发明进行说明。
Rijndael是一种面向字节的算法,用一个128比特的明文分组作为初始状态,此状态经过许多次依赖于密钥的变换,最后的状态是一个128比特的密文分组。一个状态可以被看作一个4×4的字节矩阵(Ai,j),i,j∈{0,1,2,3}。初始状态A0,0是128比特的明文分组的第一个字节,A0,1是第二个字节,A1,0是第五个字节等,A3,3是这个128比特明文分组的最后一个字节。注意,使用记号(Ai,j)来表示含有16个字节的4×4状态矩阵;Ai,j表示这个状态中的一个元素,它包含一个字节。
Rijndael利用4个基本的运算将一个状态A=(Ai,j)变换为一个新状态B=(Bi,j)。这些基本运算描述如下:
1、字节替换(SubByte):字节替换运算是一个非线性置换,它独立地作用于状态中的每一个字节。这个运算相当于一个8×8的矩阵乘以一个单独的字节,其中这个字节的各个比特可以表示为一个8×1的列向量,再加上另一个8×1的列向量。如果我们把状态中一个给定字节的各个比特表示为a0a1a2...a7,那么字节替换运算就相当于下面的运算:
b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 = 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 + 1 1 0 0 0 1 1 0
其中b0b1b2...b7是字节替换运算后字节的比特表示。这个运算利用一个256字节的查找表或S盒可以非常有效地实现。
2、移位行运算(ShiftRow):这是状态中字节的循环移位运算。这个运算可以表示为Bi,j=Ai,(j+i)mod 4。因此,第一行的字节是不移动的。第二个的字节移动1列位置,第三行的字节移动2列位置,第四行的字节移动3列位置。
3、混合列运算(MixColumn):由一个线性变换对状态A的每一个列Ai施行变换。这个变换相当于一个4×4的矩阵乘以这个状态单个列(表示为4×1列向量)的字节。运算按下述方式进行:
b 0 b 1 b 2 b 3 = 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 * a 0 a 1 a 2 a 3
这里ai是状态的给定列的字节,4×4矩阵的每一个项是十六进制值(例如,02表示比特串000000010),bi是混合列运算后的列的字节。
4、轮密钥加法(AddRoundKey):每一轮的轮密钥RK是使用密钥编排函数由密钥得到的。轮密钥的长度与加密分组的长度是相同的。轮密钥也可以用于明文的分组类似的方法表示为4×4的矩阵。在轮密钥加法运算中,轮密钥与状态作异或。从而,由轮密钥加法运算所得到的状态B的字节Bi,j可以表示为Bi,j=Ai,jRKi,j,其中,Ai,j是在轮密钥加法运算前状态的第j行和第j列位置上的字节,RKi,j是轮密钥第i行和第j列位置上的字节。
Rijndael使用的所有基本操作都是可逆的。
密码分组链接模式(CBC模式)下,当一个明文分组重复出现时会产生不同的密文分组。在这种方案中,加密算法的输入是当前的明文分组和前边的明文分组的异或;对每个分组使用相同的密钥。从效果上看,将明文分组序列的处理连接起来了。每个明文的加密函数的输入与明文分组之间不再有固定的关系,因此,128bits的重复模式不再会暴露。为了产生第一个密文分组,一个初始向量IV被用来于第一个明文分组进行异或,如图2所示,假设该明文被分为为m1,m2,...,mN,每个mI都为128bits;其实现过程为:
步骤201、202、203,设置一个初始向量IV,该IV与明文m1异或后再进行AES迭代操作,输出128bits的密文c1;
步骤204、205、206,明文m2与输出密文c1异或后再进行AES迭代操作,输出128bits的密文c2,以此类推,最终输出128bits的密文cN。
如图3所示,在解密时,IV被用来和解密算法的输出进行异或,以产生第一个明文分组。其过程为:
步骤300,密文首先被分组,每组中的明文为128bits的数据流,假设为密文c1,c2,...,cN;
步骤301、302、303,设置一个初始向量IV,c1进行AES迭代操作后与该IV密文异或,输出128bits的明文m1;
步骤304、305、306,密文c2进行AES迭代操作后与密文c1异或,输出128bits的明文m2,以此类推,输出128bits的明文mN。
本发明根据标准中AES迭代单元所需完成的操作,通过逻辑编程在可编程器件内建立能实现AES迭代操作的AES迭代单元,由该AES迭代单元在一个时钟周期内完成一次AES迭代操作,一次AES迭代操作包括:根据输入密钥生成子密钥,对输入的分组数据进行字节替换、移位行运算、混合列运算和轮密钥运算。
图4为一个用来实现本发明加密方法的可编程器件,其AES逻辑接口信号及其详细说明如下表所示:
    端口名   I/O类型   位宽     功能说明
Clk 输入(Input)     1 输入的逻辑的主时钟
Rst 输入(Input)     1 异步全局清零信号,高电平有效
Text_in[127:0] 输入(Input)     128 加/解密128bits数据输入
Iv[127:0] 输入(Input)     128 128bits初始向量IV
Key[127:0] 输入(Input)     128 128bits密钥Key
Req 输入(Input)     1 加/解密请求信号,高电平有效
Text_out[127:0] 输出(Output)     127 加/解密127bits数据输出
Finish 输出(Output)     1 加/解密结束标志,高电平有效
参阅图5所示,AES迭代运算单元是AES加密算法的核心逻辑,其运算过程中没有反馈形式的运算,每一级操作都可以用流水的方式实现。因此在逻辑实现中采用10级流水来完成,也就是每一级流水完成1次AES迭代操作。而在数据输入和输出都需要打一级触发器,就需要12级流水。总共需要12个时钟周期完成一次AES加/解密运算。
在每一级流水完成的AES迭代操作中,SubByte通过查表实现,ShiftRow、MixColumn、和AddRoundKey通过组合逻辑运算来实现,具体处理流程如下(以加密为例):
步骤500、505:在加密请求信号有效时,将明文分组和主密钥分别存入寄存器。
该步骤在可编程器件的一个时钟周期内完成。
步骤510:选择AES迭代单元输入的分组数据。在初始时将寄存器中的明文分组作为输入。
对于分组长度和密钥长度均为128比特,完成一个分组的加密需要进行10次AES迭代操作。第一次是将寄存器中的明文分组作为输入,在以后9次,每次则以上一次迭代的结果作为输入。因此,对于每一次迭代操作完成都要计数,通过计数值来判断是否完成对一个明文的加密。当计数值达到10后计数器清零。
步骤520:对输入的分组数据进行字节替代运算(SubByte)。
SubByte采用查ROM表的方式来实现,即将分组的数据作为地址,从ROM存储器的相应单元读取数据作为字节替换后的数据。
步骤530:对步骤520的结果进行移位行运算。
ShiftRow通过一系列的赋值语句来实现。移位方法如图7所示,其中,每一个Sx,y表示一个8bits的状态(state)。
步骤540、550:对步骤530的结果进行混合列运算。
其中,步骤550采用一个多路选择器,因为根据算法标准最后一轮是不需要进行列混合运算的,所以当轮计数计到最后一轮需要将此过程绕过,直接将移位行的结果与最后一轮子密钥进行异或得出最终结果。
MixColumn为一个线性变换,如图8所示,这个变换相当于一个4×4的矩阵乘以这个状态单个列(表示为4×1列向量)的字节。运算按下述方式进行:
s ′ 3 , c s ′ 2 , c s ′ 1 , c s ′ 0 , c = 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 s 3 , c s 2 , c s 1 , c s 0 , c
这里sx,c是状态的给定列的字节,4×4矩阵的每一个项是十六进制值(例如,02表示比特串000000010),s′x,c是混合列运算后的列的字节。
在可编程器件内部,MixColumn通过一系列的赋值语句和异或运算来实现。
步骤545:根据主密钥生成一个子密钥。
在每一次迭代过程中算出一个子密钥,参阅图6所示,第一次AES迭代操作的子密钥由输入可编程器件的主密钥通过一系列移位和查表ROM表操作计算出来;下一次AES迭代操作的子密钥将上一次迭代操作的子密钥通过一系列移位和查表ROM表操作计算出来。
步骤560:将混合列运算的结果和子密钥进行轮密钥运算。
AddRoundKey为轮密钥与MixColumn运算结果进行异或的过程,如图9所示,在可编程器件内部运用基本的“异或”实现。
步骤570:在一个明文加密完成后存入输出寄存器。该步骤在可编程器件的一个时钟周期内完成。
上述过程中,步骤520、530、540、545、550和560完成一次AES迭代操作,并在可编程器件的一个时钟周期内完成。
CBC模式AES解密过程在逻辑资源足够的情况下,可以同时对几个分组进行解密,这样可以大大提高解密的处理速度。解密操作与加密操作类似,不再赘述。
本发明采用可编程器件来实现高级加密标准(AES)的候选算法Rijndael,对于一个明文分组的加密只需12个时钟周期即可完成,而可编程器件具有通用性好,接口和时钟速率高等特点,因此,采用本发明的方法能够极大的提高加密/解密处理速度和处理能力。

Claims (9)

1、一种通过可编程器件实现数据加密/解密的方法,将所述数据和密钥经过多次高级加密标准(AES)迭代单元的迭代操作生成密文/明文;其特征在于:在可编程器件内建立能实现AES迭代操作的AES迭代单元;由该AES迭代单元在一个时钟周期内,根据输入密钥生成子密钥、以及利用该子密钥与输入的数据完成一次AES迭代操作。
2、如权利要求1所述的方法,其特征在于,AES迭代单元每次完成AES迭代操作后,累计AES迭代操作的次数并与加密/解密一个分组数据所需AES迭代次数比较来判断是否已完成对分组数据加密/解密,如果是,则输出加密后的密文分组,否则,将该次迭代操作后的分组和子密钥作为AES迭代单元的输入,并进行下一轮迭代操作。
3、如权利要求1所述的方法,其特征在于,AES迭代单元对输入密钥进行移位和查ROM表生成子密钥。
4、如权利要求1所述的方法,其特征在于,在可编程逻辑器件的一个时钟周期内将用于生成子密钥的主密钥和分组数据存储到寄存器中。
5、如权利要求2所述的方法,其特征在于,输出密文时在可编程逻辑器件的一个时钟周期内将该密文保存到输出寄存器。
6、如权利要求1所述的方法,其特征在于,每一个分组数据在第一轮AES迭代操作之前先与前一轮迭代操作后的数据进行“异或”运算。
7、如权利要求6所述的方法,其特征在于,对初始的分组数据,在进行第一轮AES迭代操作之前先将该明文分组与一个初始化向量进行“异或”运算。
8、如权利要求1至7任一所述的方法,其特征在于,每轮AES迭代操作包括步骤:
(1)将分组数据作为地址查询ROM表,完成对分组的字节替换运算(SubByte);
(2)通过赋值方式对步骤(1)的结果进行移位行运算(ShiftRow);
(3)采用赋值和“异或”运算对步骤(2)的结果进行混合列运算(MixColumn);
(4)将步骤(3)的结果与本轮中产生的子密钥进行“异或”,完成轮密钥运算(AddRoundKey)。
9、如权利要求8所述的方法,其特征在于,输出密文时产生加密结束信号。
CN 200410032080 2004-03-31 2004-03-31 通过可编程器件实现数据加密的方法 Pending CN1677921A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410032080 CN1677921A (zh) 2004-03-31 2004-03-31 通过可编程器件实现数据加密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410032080 CN1677921A (zh) 2004-03-31 2004-03-31 通过可编程器件实现数据加密的方法

Publications (1)

Publication Number Publication Date
CN1677921A true CN1677921A (zh) 2005-10-05

Family

ID=35050240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410032080 Pending CN1677921A (zh) 2004-03-31 2004-03-31 通过可编程器件实现数据加密的方法

Country Status (1)

Country Link
CN (1) CN1677921A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921382B (zh) * 2006-09-06 2010-05-12 华为技术有限公司 一种基于aes算法的加解密方法及加解密器
WO2010145451A1 (zh) * 2009-09-24 2010-12-23 中兴通讯股份有限公司 一种实现aes加解密的装置和方法
US8538012B2 (en) 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
CN103746795A (zh) * 2013-12-23 2014-04-23 衡阳师范学院 一种实现Magpie加解密的方法
CN103886464A (zh) * 2014-03-10 2014-06-25 上海理工大学 防伪码生成方法
CN104753663A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 数据处理方法和装置
WO2016045217A1 (zh) * 2014-09-23 2016-03-31 深圳市汇顶科技股份有限公司 加密方法和加密装置
CN106656472A (zh) * 2016-12-27 2017-05-10 广州智慧城市发展研究院 交易数据的加密方法及系统
CN107070637A (zh) * 2017-01-13 2017-08-18 广东技术师范学院天河学院 一种交叠分组的数据加解密方法
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN109379180A (zh) * 2018-12-20 2019-02-22 湖南国科微电子股份有限公司 Aes算法实现方法、装置及固态硬盘
CN112311527A (zh) * 2020-09-17 2021-02-02 裴文耀 一种主密钥变换为多项式表格子密钥查表的加密方法
CN113204771A (zh) * 2021-04-21 2021-08-03 北京连山科技股份有限公司 一种利用国密sm3改进分组密码cbc模式缺点的高效方法

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921382B (zh) * 2006-09-06 2010-05-12 华为技术有限公司 一种基于aes算法的加解密方法及加解密器
CN103957100A (zh) * 2007-03-14 2014-07-30 英特尔公司 利用单指令在多种模式中执行aes加密或解密
US8538012B2 (en) 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
CN103957100B (zh) * 2007-03-14 2018-10-16 英特尔公司 利用单指令在多种模式中执行aes加密或解密
US9325498B2 (en) 2007-03-14 2016-04-26 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
CN101272238B (zh) * 2007-03-14 2014-06-04 英特尔公司 利用单指令在多种模式中执行aes加密或解密
US10256972B2 (en) 2007-03-28 2019-04-09 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10164769B2 (en) 2007-03-28 2018-12-25 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
CN112532376A (zh) * 2007-03-28 2021-03-19 英特尔公司 用于高级加密标准(aes)的灵活结构和指令
US10581590B2 (en) 2007-03-28 2020-03-03 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10554386B2 (en) 2007-03-28 2020-02-04 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10313107B2 (en) 2007-03-28 2019-06-04 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9634829B2 (en) 2007-03-28 2017-04-25 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9634830B2 (en) 2007-03-28 2017-04-25 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9634828B2 (en) 2007-03-28 2017-04-25 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9641320B2 (en) 2007-03-28 2017-05-02 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9641319B2 (en) 2007-03-28 2017-05-02 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9647831B2 (en) 2007-03-28 2017-05-09 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10291394B2 (en) 2007-03-28 2019-05-14 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9654282B2 (en) 2007-03-28 2017-05-16 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9654281B2 (en) 2007-03-28 2017-05-16 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10270589B2 (en) 2007-03-28 2019-04-23 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10263769B2 (en) 2007-03-28 2019-04-16 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10256971B2 (en) 2007-03-28 2019-04-09 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10158478B2 (en) 2007-03-28 2018-12-18 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10187201B2 (en) 2007-03-28 2019-01-22 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10181945B2 (en) 2007-03-28 2019-01-15 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10171231B2 (en) 2007-03-28 2019-01-01 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US10171232B2 (en) 2007-03-28 2019-01-01 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
WO2010145451A1 (zh) * 2009-09-24 2010-12-23 中兴通讯股份有限公司 一种实现aes加解密的装置和方法
CN103746795B (zh) * 2013-12-23 2015-01-07 衡阳师范学院 一种实现Magpie加解密的方法
CN103746795A (zh) * 2013-12-23 2014-04-23 衡阳师范学院 一种实现Magpie加解密的方法
CN104753663A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 数据处理方法和装置
CN104753663B (zh) * 2013-12-31 2018-02-23 上海复旦微电子集团股份有限公司 数据处理方法和装置
CN103886464A (zh) * 2014-03-10 2014-06-25 上海理工大学 防伪码生成方法
US10164771B2 (en) 2014-09-23 2018-12-25 Shenzhen GOODIX Technology Co., Ltd. Encryption method and encryption device
WO2016045217A1 (zh) * 2014-09-23 2016-03-31 深圳市汇顶科技股份有限公司 加密方法和加密装置
CN106656472A (zh) * 2016-12-27 2017-05-10 广州智慧城市发展研究院 交易数据的加密方法及系统
CN107070637A (zh) * 2017-01-13 2017-08-18 广东技术师范学院天河学院 一种交叠分组的数据加解密方法
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN108566270B (zh) * 2018-04-26 2021-10-01 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN109379180A (zh) * 2018-12-20 2019-02-22 湖南国科微电子股份有限公司 Aes算法实现方法、装置及固态硬盘
CN109379180B (zh) * 2018-12-20 2022-04-19 湖南国科微电子股份有限公司 Aes算法实现方法、装置及固态硬盘
CN112311527A (zh) * 2020-09-17 2021-02-02 裴文耀 一种主密钥变换为多项式表格子密钥查表的加密方法
CN113204771A (zh) * 2021-04-21 2021-08-03 北京连山科技股份有限公司 一种利用国密sm3改进分组密码cbc模式缺点的高效方法
CN113204771B (zh) * 2021-04-21 2022-02-22 北京连山科技股份有限公司 一种利用国密sm3改进分组密码cbc模式缺点的高效方法

Similar Documents

Publication Publication Date Title
CN1527531A (zh) 一种数据加密标准或三重数据加密标准的实现方法
CN1172235C (zh) 扩充密钥发生器、加密/解密单元、扩充密钥产生方法
CN1677921A (zh) 通过可编程器件实现数据加密的方法
US7190791B2 (en) Method of encryption using multi-key process to create a variable-length key
CN1801693A (zh) 分组加密算法中对短分组的处理方法
CN1663172A (zh) 为aes rijndael分组密码产生轮次密钥
CN101040474A (zh) 为提高安全性的置换数据变换
CN1168041A (zh) 加密和解密方法以及加密和解密装置
TW201721407A (zh) 硬體輔助快速僞隨機數値產生
JP2009516976A (ja) マルチレーン高速暗号化及び復号
CN1523810A (zh) 设计最优加密函数的方法和优化的加密设备
CN113098675A (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN1258148C (zh) 高安全等级对称密钥算法的加密、解密方法及加密器
WO2013187887A1 (en) A method of cryption
CN1281023C (zh) 离散数据分块加密方法
CN105472602A (zh) 一种加密装置及加密方法
CN1180351C (zh) 强化错乱的分组密码加密方法
CN1190034C (zh) 一种分组密码加密方法
CN1826753A (zh) 保密密钥控制的可逆电路和相应的数据处理方法
CN107835070B (zh) 一种简单的嵌入式加密方法
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
Romeo et al. Cryptosystem architectures for very high throughput multimedia encryption: the RPK solution
CN106921486A (zh) 数据加密的方法和装置
JP5207153B2 (ja) 擬似乱数発生システム
CN103731257A (zh) 一种Piccolo加密算法硬件实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20051005