CN104753663B - 数据处理方法和装置 - Google Patents

数据处理方法和装置 Download PDF

Info

Publication number
CN104753663B
CN104753663B CN201310754497.1A CN201310754497A CN104753663B CN 104753663 B CN104753663 B CN 104753663B CN 201310754497 A CN201310754497 A CN 201310754497A CN 104753663 B CN104753663 B CN 104753663B
Authority
CN
China
Prior art keywords
packet
data
default
packets
cryptographic calculation
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
CN201310754497.1A
Other languages
English (en)
Other versions
CN104753663A (zh
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.)
Shanghai Fudan Microelectronics Group Co Ltd
Original Assignee
Shanghai Fudan Microelectronics Group 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 Shanghai Fudan Microelectronics Group Co Ltd filed Critical Shanghai Fudan Microelectronics Group Co Ltd
Priority to CN201310754497.1A priority Critical patent/CN104753663B/zh
Publication of CN104753663A publication Critical patent/CN104753663A/zh
Application granted granted Critical
Publication of CN104753663B publication Critical patent/CN104753663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种数据处理方法和装置。其中,所述方法包括:对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k‑1位,形成第二数据,其中,1≤k≤n;对所述第二数据的n个第二分组分别进行预设运算,所述预设运算包括:将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;根据对第k‑1个所述第二分组进行所述预设运算后获得的第1个至第k‑1个第六分组和所述第k个第三分组,获得n个第四分组;对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k‑(m‑1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k。所述方法和装置能够提高加密系统的性能。

Description

数据处理方法和装置
技术领域
本发明涉及数据安全的技术领域,特别涉及一种数据处理方法和装置。
背景技术
在现有技术中,高级加密标准算法(Advanced Encryption Standard,AES)包含10轮迭代的加密运算,从第1轮加密运算至第9轮加密运算分别都包含移位操作(Shiftrows)和列运算操作(Mixcolumn),且每一轮的移位操作和列运算都是按照先后顺序独立执行的。其中,移位操作和列运算的执行方式影响着整个加密系统的性能。
因此,需要提出一种新的数据处理方法和装置,以提高加密系统的性能。
发明内容
本发明解决的问题是提出一种新的数据处理方法和装置,以提高加密系统的性能。
本发明的实施例提供了一种数据处理方法,所述方法包括:对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n;对所述第二数据的n个第二分组分别进行预设运算,所述预设运算包括:
将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;
在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n;
对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;
根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k;将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组。
可选地,所述方法还包括:对所述第三数据的n个第二分组分别进行所述预设运算;将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
可选地,所述方法还包括:对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。
可选地,所述方法还包括:在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行所述非线性变换。
可选地,所述方法还包括:对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
本发明的实施例还提供了一种数据处理装置,所述装置包括:第一处理单元,用于对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n;第二处理单元,用于对所述第二数据的n个第二分组分别进行预设运算,所述第二处理单元包括:
预设列运算子单元,用于将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;
第一转换子单元,用于在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n;
第二转换子单元,用于对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;
第三转换子单元,用于根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k;
第三处理单元,用于将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组。
可选地,所述装置还包括:第四处理单元,用于对所述第三数据的n个第二分组分别进行所述预设运算;第五处理单元,用于将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
可选地,所述装置还包括:第六处理单元,用于在对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。
可选地,所述第二处理单元还包括:非线性变换子单元,用于在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行所述非线性变换。
可选地,所述装置还包括:第七处理单元,用于在对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
与现有技术相比,本发明的实施例具有以下优点:在上述技术方案中,将相邻加密运算中的上一轮加密运算的列运算和下一轮加密运算的移位操作进行结合,具体地,将下一轮加密运算的移位操作分散成多个移位操作,放在相应分组的列运算后执行,移位操作和列运算可以复用同一寄存器,从而有效地提高了加密系统的性能。
附图说明
图1是现有技术中的AES算法示意图;
图2是现有技术中的移位操作和列运算示意图;
图3是本发明一实施例中数据处理方法的流程图;
图4是本发明另一实施例中数据处理方法的流程图;
图5是本发明实施例中进行第一移位操作的示意图;
图6是本发明实施例中进行第二移位操作和列运算的示意图;
图7是本发明实施例中数据处理装置的结构示意图;
图8是本发明一实施例中数据处理装置的第二处理单元的结构示意图;
图9是本发明另一实施例中数据处理装置的第二处理单元的结构示意图。
具体实施方式
请参考图1,在现有技术中,高级加密标准算法(Advanced Encryption Standard,AES)包含10轮迭代的加密运算,从第1轮加密运算至第9轮加密运算分别都包含移位操作(Shiftrows)和列运算操作(Mixcolumn)。具体地,请参考图2,每一轮的移位操作和列运算都是按照先后顺序独立进行的。
本发明实施例所提供的数据处理方法具体可以用来实现AES加密算法。请参考图2,本发明实施例提供的数据处理方法将相邻加密运算中的上一轮加密运算的列运算和下一轮加密运算的移位操作进行结合,例如,将第一轮加密运算的列运算和第二轮加密运算的移位操作进行结合。
为详细说明本发明的技术内容、构造特征、所实现目的及效果,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
图3是本发明一实施例中数据处理方法的流程图。如图3所示,所述方法包括步骤S100至S300。
步骤S100,对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据。
如前所述,本发明实施例提供的数据处理方法将AES算法中的上一轮加密运算的列运算和下一轮加密运算的移位操作进行结合,那么这意味着第一轮加密运算的移动位置操作将单独进行操作。所述步骤S100就是实现AES算法中第一轮加密算法的移位操作的单独执行,即所述第一移位操作用来实现AES算法中第一轮加密算法的移位操作的单独执行。
在本发明的实施例中,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n。例如在每个时钟周期可以处理32bit数据的系统中,所述第一分组可以包含4个8bit的数据,第二分组也可以包含4个8bit的数据。
下面以图5为例,对所述第一移位操作进行说明。
在图5中,初始数据为0至15。第一数据为将初始数据0至15进行分组后的数据,所述第一数据包含4个第一分组A1(0,4,8,12)、A2(1,5,9,13)、A3(2,6,10,14)和A4(3,7,11,15),每一个所述第一数据的第一分组对应所述第一数据的一行数据。所述第一移位操作将对所述第一数据的第1个第一分组(第1行数据)循环左移0位,对所述第一数据的第2个第一分组(第2行数据)循环左移1位,对所述第一数据的第3个第一分组(第3行数据)循环左移2位,对所述第一数据的第4个第一分组(第4行数据)循环左移3位,从而得到第二数据。所述第二数据包含4个第二分组B1(0,5,10,15)、B2(4,9,14,3)、B3(8,13,2,7)和B4(12,1,6,11),每一个所述第二数据的第二分组对应所述第二数据的一列数据。
通过步骤S100执行完第一轮加密运算的移位操作后,将继续执行将第一轮加密运算的列运算和第二轮加密运算的移位操作进行结合的操作。所述进行结合的操作通过步骤S200来实现。
在现有的AES算法中,在每一轮加密运算的移位操作之前可以执行将数据和轮密钥异或的操作和非线性变换的操作。那么,在本发明的实施例中,可以在执行步骤S200之前,对所述n个第二分组中的数据分别进行非线性变换,即,对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。在本发明的实施例中,也可以在执行步骤S200之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算,即,对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
步骤S200,对所述第二数据的n个第二分组分别进行预设运算,在所述预设运算中将第一轮加密运算的列运算和第二轮加密运算的移位操作进行结合。
具体地,请参考图4,所述预设运算包括步骤S201至S204。下面将结合图6对所述预设运算进行详细说明。
步骤S201,将第k个第二分组进行第k次预设列运算,以形成第k个第三分组。
例如,在图6中,将第二数据的第1个第二分组B1(0,5,10,15)进行第1次预设列运算,以形成第1个第三分组C1(M0,M5,M10,M15),将第二数据的第2个第二分组B2(4,9,14,3)进行第2次预设列运算,以形成第2个第三分组C2(M4,M9,M14,M3),将第二数据的第3个第二分组B3(8,13,2,7)进行第3次预设列运算,以形成第3个第三分组C3(8M,13M,2M,7M),将第二数据的第4个第二分组B4(12,1,6,11)进行第4次预设列运算,以形成第4个第三分组C4(M12,M1,M6,M11)。
如前所述,在现有的AES算法中,在每一轮加密运算的移位操作之前可以执行将数据和轮密钥异或的操作和非线性变换的操作。如果在执行步骤S200之前,没有对所述n个第二分组中的数据分别进行非线性变换,那么可以在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行所述非线性变换。例如,在形成第1个第三分组C1(M0,M5,M10,M15)之后对所述第一个第三分组进行非线性变换。所述非线性变换可以为S盒线性变换。
步骤S202,在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n。
例如,在图6中,在将第二数据的第1个第二分组B1(0,5,10,15)进行第1次列运算,以形成第1个第三分组C1(M0,M5,M10,M15)后,形成4个第四分组D1(M0)、D2(M5)、D3(M10)和D4(M15),第1个第四分组D1包含第1个第三分组C1的第1个数据M0,第2个第四分组D2包含第1个第三分组C1的第2个数据M5,第3个第四分组D3包含第1个第三分组C1的第3个数据M10,第4个第四分组D4包含第1个第三分组C1的第4个数据M15。
在将第二数据的第2个第二分组B2(4,9,14,3)进行第2次列运算,以形成第2个第三分组C2(M4,M9,M14,M3)后,形成4个第四分组D1(M0,M4)、D2(M5,M9)、D3(M10,M14)和D4(M15,M3),第1个第四分组D1包含第1个第六分组F1的第1个数据M0和第2个第三分组C2的第1个数据M4,第2个第四分组D2包含第1个第六分组F1的第2个数据M5和第2个第三分组C2的第2个数据M14,第3个第四分组D3包含第1个第六分组F1的第3个数据M10和第2个第三分组C2的第3个数据M14,第4个第四分组D4包含第1个第六分组F1的第4个数据M15和第2个第三分组C2的第4个数据M3。
在将第二数据的第3个第二分组B3(8,13,2,7)进行第3次列运算,以形成第3个第三分组C3(M8,M13,M2,M7)后,形成4个第四分组D1(M0,M4,M8)、D2(M9,M5,M13)、D3(M10,M14,M2)和D4(M15,M3,M7),第1个第四分组D1包含第1个第六分组F1的第1个数据M0、第2个第六分组F2的第1个数据M4和第3个第三分组C3的第1个数据M8;第2个第四分组D2包含第1个第六分组F1的第2个数据M9、第2个第六分组F2的第2个数据M5和第3个第三分组C3的第2个数据M13;第3个第四分组D3包含第1个第六分组F1的第3个数据M10、第2个第六分组F2的第3个数据M14和第3个第三分组C3的第3个数据M2,第4个第四分组D4包含第1个第六分组F1的第4个数据M15、第2个第六分组F2的第4个数据M3和第3个第三分组C3的第4个数据M7。
在将第二数据的第4个第二分组B4(12,1,6,11)进行第4次列运算,以形成第4个第三分组C4(M12,M1,M6,M11)后,形成4个第四分组D1(M0,M4,M8,M12)、D2(M9,M13,M5,M1)、D3(M2,M10,M14,M6)和D4(M15,M3,M7,M11),第1个第四分组D1包含第1个第六分组F1的第1个数据M0、第2个第六分组F2的第1个数据M4、第3个第六分组F3的第1个数据M8和第4个第三分组C4的第1个数据M12;第2个第四分组D2包含第1个第六分组F1的第2个数据M9、第2个第六分组F2的第2个数据M13、第3个第六分组F3的第2个数据M5和第4个第三分组C4的第2个数据M1;第3个第四分组D3包含第1个第六分组F1的第3个数据M2、第2个第六分组F2的第3个数据M10、第3个第六分组F3的第3个数据M14、和第4个第三分组C4的第3个数据M6,第4个第四分组D4包含第1个第六分组F1的第4个数据M15、第2个第六分组F2的第4个数据M3、第3个第六分组F3的第4个数据M7、和第4个第三分组C4的第4个数据M11。
步骤S203,对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;
例如,在图6中,在执行第1次预设列运算,并形成4个第四分组D1(M0)、D2(M5)、D3(M10)和D4(M15)后,可以对所述4个第四分组进行第二移位操作,由于每一个所述第四份组都包含一个数据,所以进行所述第二移位操作后形成的4个第五分组分别为E1(M0)、E2(M5)、E3(M10)和E4(M15)。
在执行第2次列运算,并形成4个第四分组D1(M0,M4)、D2(M5,M9)、D3(M10,M14)和D4(M15,M3)后,可以对所述4个第四分组进行第二移位操作,具体地,第2次列运算后,k=2,由于要求m≤k,可以执行对第1个和第2个第四分组执行所述第二移位操作,那么将第1个第四分组的第2位至第(2-(1-1))位循环右移1位,所述第1个第四分组保持不变,将第2个第四分组的第2位至第(2-(2-1))位循环右移1位,所述第2个第四分组中的M5和M9交换位置,那么形成的4个第五分组为E1(M0,M4)、E2(M9,M5)、E3(M10,M14)和E4(M15,M3)。
在执行第3次列运算,并形成4个第四分组D1(M0,M4,M8)、D2(M9,M5,M13)、D3(M10,M14,M2)和D4(M15,M3,M7)后,可以对所述4个第四分组进行第二移位操作,具体地,第3次列运算后,k=3,由于要求m≤k,可以执行对第1个、第2个和第3个第四分组执行所述第二移位操作,那么将第1个第四分组的第3位至第(3-(1-1))位循环右移1位,所述第1个第四分组保持不变,将第2个第四分组的第3位至第(3-(2-1))位循环右移1位,所述第2个第四分组中的M5和M13交换位置,将第3个第四分组的第3位至第(3-(3-1))位循环右移1位,那么形成的4个第五分组为E1(M0,M4,M8)、E2(M9,M13,M5)、E3(M2,M10,M14)和E4(M15,M3,M7)。
在执行第4次列运算,并形成4个第四分组D1(M0,M4,M8,M12)、D2(M9,M13,M5,M1)、D3(M2,M10,M14,M6)和D4(M15,M3,M7,M11)后,可以对所述4个第四分组进行第二移位操作,具体地,第4次列运算后,k=4,由于要求m≤k,可以执行对第1个、第2个、第3个和第4个第四分组执行所述第二移位操作,那么将第1个第四分组的第4位至第(4-(1-1))位循环右移1位,所述第1个第四分组保持不变,将第2个第四分组的第4位至第(4-(2-1))位循环右移1位,所述第2个第四分组中的M5和M1交换位置,将第3个第四分组的第4位至第(4-(3-1))位循环右移1位,将第4个第四分组的第4位至第(4-(4-1))位循环右移1位,那么形成的4个第五分组为E1(M0,M4,M8,M12)、E2(M9,M13,M1,M5)、E3(M2,M6,M10,M14)和E4(M11,M15,M3,M7)。
步骤S204,根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k;
例如,在图6中,在第1次列运算和所述第二移位操作后,形成4个第五分组分别为E1(M0)、E2(M5)、E3(M10)和E4(M15),根据所述4个第五分组可以获得1个第六分组F1(M0,M5,M10,M15)。
在第2次列运算和所述第二移位操作后,形成4个第五分组为E1(M0,M4)、E2(M9,M5)、E3(M10,M14)和E4(M15,M3)。根据所述4个第五分组可以获得2个第六分组,F1(M0,M9,M10,M15)和F2(M4,M5,M14,M3)。
在第3次列运算和所述第二移位操作后,形成4个第五分组为E1(M0,M4,M8)、E2(M9,M13,M5)、E3(M2,M10,M14)和E4(M15,M3,M7)。根据所述4个第五分组可以获得3个第六分组,F1(M0,M9,M2,M15)、F2(M4,M13,M10,M3)和F3(M8,M5,M14,M7)。
在第3次列运算和所述第二移位操作后,形成4个第五分组为E1(M0,M4,M8,M12)、E2(M9,M13,M1,M5)、E3(M2,M6,M10,M14)和E4(M11,M15,M3,M7)。根据所述4个第五分组可以获得4个第六分组,F1(M0,M9,M2,M11)、F2(M4,M13,M6,M15)、F3(M8,M1,M10,M3)和F4(M12,M5,M14,M7)。
需要说明的是,在上述技术方案中,每一次移位操作和列运算的原始数据可以是从同一寄存器读取,并在操作后将结果写入同一寄存器,也就是说,在加密算法的过程中,所有轮的移位操作和列运可以复用同一寄存器,从而有效地提高了加密系统的性能。
步骤S300,将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组。
也就是说,可以将第一轮加密运算的列运算和第二轮加密运算的移位操作的结合操作结果作为第二轮加密运算的列运算和第三轮加密运算的移位操作的结合操作的输入,
例如,可以将对所述第二数据的4个第二个分组分别进行所述预设运算后获得的4个所述第六分组F1(M0,M9,M2,M11)、F2(M4,M13,M6,M15)、F3(M8,M1,M10,M3)和F4(M12,M5,M14,M7)。分别作为第三数据的4个第二分组。并根据所述第三数据的4个第二分组继续执行所述执行操作和的预设运算。
通过上述步骤S200和S300可以实现将第一轮加密运算的列运算和第二轮加密运算的移位操作进行结合,所述方法还可以包括步骤S400和S500,以实现将第二轮加密运算的列运算和第三轮加密运算的移位操作进行结合。
具体地,步骤S400,对所述第三数据的n个第二分组分别进行所述预设运算;步骤S500,将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
本发明实施例提供的数据处理方法还可以包括三轮以上的加密运算中的列运算和移位操作的结合,具体实施方式和上述步骤S200和S300类似。
本发明的实施例还提供了一种数据处理装置。请参考图7,所述数据处理装置200包括:第一处理单元210,用于对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n;第二处理单元220,用于对所述第二数据的n个第二分组分别进行预设运算;第三处理单元230,用于将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组。
具体地,请参考图8,所述第二处理单元220可以包括:预设列运算子单元221,用于将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;第一转换子单元222,用于在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n;第二转换子单元223,用于对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;第三转换子单元224,用于根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k。
在本发明的实施例中,所述装置200还可以包括:第四处理单元240,用于对所述第三数据的n个第二分组分别进行所述预设运算;第五处理单元250,用于将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
在本发明的实施例中,所述装置200还可以包括:第六处理单元260,用于在对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。
具体地,请参考图9,所述第二处理单元220还可以包括:非线性变换子单元225,用于在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行所述非线性变换。
在本发明的实施例中,所述装置200还可以包括:第七处理单元270,用于在对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (10)

1.一种数据处理方法,适于AES加密算法,其特征在于,包括:
在第一轮加密运算中,对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n,所述第一数据为第一轮加密运算第一移位操作前的数据;
在除所述第一轮加密运算之外的每一轮加密运算中,对第二数据的n个第二分组分别进行预设运算,将相邻加密运算中的上一轮加密运算的列运算和下一轮加密运算的移位操作结合,所述预设运算包括:将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;
在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n;
对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;
根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k;
将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组;
所述第二数据为相邻加密运算中上一轮加密运算中的列运算之前的数据,其中,在第二轮加密运算中,所述第二数据即为所述第一轮加密运算中进行第一移位操作后得到的数据。
2.如权利要求1所述的方法,其特征在于,还包括:对所述第三数据的n个第二分组分别进行所述预设运算;将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
3.如权利要求1所述的方法,其特征在于,还包括:对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。
4.如权利要求1所述的方法,其特征在于,还包括:在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行非线性变换。
5.如权利要求1所述的方法,其特征在于,还包括:对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
6.一种数据处理装置,适于AES加密算法,其特征在于,包括:
第一处理单元,用于在第一轮加密运算中,对第一数据的n个第一分组进行第一移位操作,以将所述第一数据的第k个第一分组进行循环左移k-1位,形成第二数据,所述第二数据包含n个第二分组,每个所述第一分组包含n个数据,每个所述第二分组包含n个数据,其中,1≤k≤n,所述第一数据为第一轮加密运算第一移位操作前的数据;
第二处理单元,用于在除所述第一轮加密运算之外的每一轮加密运算中,对第二数据的n个第二分组分别进行预设运算,将相邻加密运算中的上一轮加密运算的列运算和下一轮加密运算的移位操作结合,所述第二数据为相邻加密运算中上一轮加密运算中的列运算之前的数据,其中,在第二轮加密运算中,所述第二数据即为所述第一轮加密运算中进行第一移位操作后得到的数据;
所述第二处理单元包括:预设列运算子单元,用于将第k个第二分组进行第k次预设列运算,以形成第k个第三分组;
第一转换子单元,用于在第k次预设列运算后,根据对第k-1个所述第二分组进行所述预设运算后获得的第1个至第k-1个第六分组和所述第k个第三分组,获得n个第四分组,其中,第i个所述第四分组包括所述第1个第六分组至第k-1个第六分组的第i数据和所述第k个第三分组的第i个数据,1≤i≤n;
第二转换子单元,用于对所述n个第四分组进行第二移位操作,以将第m个所述第四分组的第k位至第k-(m-1)位循环右移动1位,形成n个第五分组,其中,1≤m≤k;
第三转换子单元,用于根据所述n个第五分组获得k个第六分组,其中,第j个所述第六分组包括所述第1个至第n个第五分组的第j个数据,1≤j≤k;
第三处理单元,用于将对所述第二数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第三数据的n个第二分组。
7.如权利要求6所述的装置,其特征在于,还包括:第四处理单元,用于对所述第三数据的n个第二分组分别进行所述预设运算;第五处理单元,用于将对所述第三数据的n个第二个分组分别进行所述预设运算后获得的n个所述第六分组分别作为第四数据的n个第二分组。
8.如权利要求6所述的装置,其特征在于,还包括:第六处理单元,用于在对所述第二数据的n个第二分组分别进行预设运算之前,对所述n个第二分组中的数据分别进行非线性变换。
9.如权利要求6所述的装置,其特征在于,所述第二处理单元还包括:非线性变换子单元,用于在将第k个第二分组进行第k次预设行运算后,对所述第k个第三分组中的数据进行非线性变换。
10.如权利要求6所述的装置,其特征在于,还包括:第七处理单元,用于在对所述第二数据的n个第二分组分别进行预设运算之前,将所述第二数据的n个第二分组中的数据分别和对应轮密钥进行异或运算。
CN201310754497.1A 2013-12-31 2013-12-31 数据处理方法和装置 Active CN104753663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310754497.1A CN104753663B (zh) 2013-12-31 2013-12-31 数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310754497.1A CN104753663B (zh) 2013-12-31 2013-12-31 数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN104753663A CN104753663A (zh) 2015-07-01
CN104753663B true CN104753663B (zh) 2018-02-23

Family

ID=53592826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310754497.1A Active CN104753663B (zh) 2013-12-31 2013-12-31 数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN104753663B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677921A (zh) * 2004-03-31 2005-10-05 华为技术有限公司 通过可编程器件实现数据加密的方法
CN1833399A (zh) * 2003-06-16 2006-09-13 韩国电子通信研究院 瑞恩多尔块密码装置及其加密/解密方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI290426B (en) * 2005-02-03 2007-11-21 Sanyo Electric Co Encryption processing circuit
US8175265B2 (en) * 2008-09-02 2012-05-08 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1833399A (zh) * 2003-06-16 2006-09-13 韩国电子通信研究院 瑞恩多尔块密码装置及其加密/解密方法
CN1677921A (zh) * 2004-03-31 2005-10-05 华为技术有限公司 通过可编程器件实现数据加密的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《AES 算法中密钥扩展和列混合单元的可重构设计》;高娜娜等;《北京信息科技大学学报》;20120831;全文 *

Also Published As

Publication number Publication date
CN104753663A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
Sun et al. MILP‐aided bit‐based division property for primitives with non‐bit‐permutation linear layers
Bilgin et al. Efficient and first-order DPA resistant implementations of Keccak
CN101176134B (zh) 信息处理装置
KR101091749B1 (ko) 암호 처리 장치, 암호 처리 방법 및 기록매체
CN103051442B (zh) 采用Feistel-PG结构的密码装置及加密方法
CN106233660A (zh) 加密处理设备、加密处理方法和程序
CN106133810A (zh) 加密处理装置、加密处理方法、以及程序
JP2009537025A5 (zh)
CN110784307B (zh) 轻量级密码算法scenery实现方法、装置及存储介质
CN103634101A (zh) 加密处理方法及设备
WO2013129054A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US20130010963A1 (en) Multiplicative splits to protect cipher keys
Karakoç et al. Biclique cryptanalysis of LBlock and TWINE
CN104484615B (zh) 适用于可重构阵列架构的基于空间随机化抗故障攻击方法
CN107967414A (zh) 微控制芯片指令加密方法、解密方法及加/解密系统
CN104601321B (zh) 密钥扩展方法和装置
CN104753663B (zh) 数据处理方法和装置
Guo et al. A New Method To Find All The High-Probability Word-Oriented Truncated Differentials: Application To Midori, SKINNY And CRAFT
Bi et al. Conditional cube attack on round-reduced River Keyak
Lim et al. Differential fault attack on lightweight block cipher PIPO
Lin et al. General model of the single-key meet-in-the-middle distinguisher on the word-oriented block cipher
CN108092760A (zh) 一种分组密码的协处理器装置和非线性变换方法
CN106100826B (zh) 一种数据变换方法和装置
Liu et al. Finding ordinary cube variables for Keccak-MAC with greedy algorithm
Zhao et al. Improved cube-attack-like cryptanalysis of reduced-round Ketje-Jr and Keccak-MAC

Legal Events

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