CN1258148C - 高安全等级对称密钥算法的加密、解密方法及加密器 - Google Patents
高安全等级对称密钥算法的加密、解密方法及加密器 Download PDFInfo
- Publication number
- CN1258148C CN1258148C CN 03113387 CN03113387A CN1258148C CN 1258148 C CN1258148 C CN 1258148C CN 03113387 CN03113387 CN 03113387 CN 03113387 A CN03113387 A CN 03113387A CN 1258148 C CN1258148 C CN 1258148C
- Authority
- CN
- China
- Prior art keywords
- transformation
- encryption
- round
- key
- row
- 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.)
- Expired - Fee Related
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000009466 transformation Effects 0.000 claims abstract description 196
- 238000006467 substitution reaction Methods 0.000 claims abstract description 32
- 238000002156 mixing Methods 0.000 claims abstract description 23
- 238000009792 diffusion process Methods 0.000 claims description 32
- 238000011426 transformation method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 230000002441 reversible effect Effects 0.000 claims description 9
- 238000000844 transformation Methods 0.000 claims description 7
- 230000001131 transforming effect Effects 0.000 claims description 6
- 102100024061 Integrator complex subunit 1 Human genes 0.000 claims description 3
- 101710092857 Integrator complex subunit 1 Proteins 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 2
- 230000008859 change Effects 0.000 claims description 2
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 235000019800 disodium phosphate Nutrition 0.000 description 19
- 238000005457 optimization Methods 0.000 description 7
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
高安全等级的对称密钥算法的加密、解密方法及加密器是一种对称密钥DSP加密器,加密方法是由N轮加密轮相串联组合而成,每个加密轮的加密顺序是行移位变换、S盒替代列混合变换、子密钥模2加变换,每个加密轮的最后输出即子密钥模2加变换接下一加密轮的输入即行移位变换,解密方法为:由N轮解密轮相串联组合而成,每个解密轮的解密顺序是子密钥模2加变换、逆列混合变换、逆S盒替代变换、逆行移位变换,每个解密轮的最后输出即逆行移位变换接下一解密轮的输入即子密钥模2加变换,加密器由DSP模块、FLASH模块、McBSPO扩展口所组成,该方法可以将加密速度提高2.16倍,解密速度提高2倍。
Description
一、技术领域:
本发明是一种对称密钥DSP加密器,属于信息加密保护的技术领域。
二、技术背景
由于计算机计算能力不断的提高以及基于Internet的分布式计算的发展,对密钥长度只有56bit的DES算法构成了巨大的威胁,因此,1997年4月15日美国国家标准技术研究所(NIST)发起征集高级加密标准(AES)算法的活动,并于2000年10月2日公布Rijndael作为美国新一代的数据加密标准,旨在保护政府及其他组织的敏感、非机密信息的传输。
Rijndael算法是一种数据块长度为128bits,密钥长度可变的迭代分组密码,密钥块长度可分别为128、192或256bits。由于Rijndael算法源自Square算法,其结构具有很强灵活性,易于扩展。
但是,Rijndael算法也存在字节模乘运算速度慢,密钥长度还比较短(最长也只有256bits),不能满足高安全等级的场合,另外原算法存在加解密速度不等的缺点。
采用Rijndael算法作为核心的基于DSP的专用加密器,市面上还没出现。将Rijndael算法进行扩展并做成一种能在DSP器件上快速运行的加密器在国内外也是一种空白。
三.发明内容
1.技术问题
本发明的目的是提供一种可以将加密速度提高2倍以上、结构简单、成本低、易操作的一种高安全等级对称密钥算法的加密、解密方法及加密器
2.技术方案
本发明的高安全等级对称密钥算法的加密、解密方法,由N轮加密轮相串联组合而成,每个加密轮的加密顺序是行移位变换、S盒替代列混合变换、子密钥模2加变换,每个加密轮的最后输出即子密钥模2加变换接下一加密轮的输入即行移位变换,明文和种子密钥进行数据/密钥相加,数据/密钥相加的结果送第0轮的行移位变换,同时种子密钥经密钥扩散7产生的加密轮子密钥Wi分别送每个加密轮的最后一个变换即子密钥模2加变换;最后一轮的加密轮的加密顺序是S盒替代变换、行移位变换、子密钥模2加变换,最后一轮加密轮的子密钥模2加变换输出密文。
行移位变换的变换方法为:行移位变换对状态的每一行的字节单独进行循环移位操作,满足下列关系:第0行和第4行不移位;第1行和第5行移1个字节;第2行和第6行如果Nb=4或Nb=6,移2个字节,否则移3个字节;第3行和第7行如果Nb=4或Nb=6,移3个字节,否则移4个字节。
S盒替代列混合变换的变换方法为:预先对S盒的每个字节分别和02,03,04,05模m(x)乘,构成4张一维扩展的S盒置换表,(MUL02,MUL03,MUL04,MUL05),对扩展算法的加密轮的变换顺序进行重新排列,把S盒替代和行移位顺序对调,将S盒替代变换合并到列混合变换。变换的时候先根据列混合变换的系数从各张扩展S盒置换表中找到状态每一列字节变换后的数值,然后把这些数值进行异或运算,等到状态某一字节整个变换后的新数值;以此类推,可以得到状态其他字节变换后的新数值。子密钥模2加变换的变换方法为:子密钥模2加变换就是将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节。
加密的轮次数Nr由Nk和Nb共同确定,也就是Nr的数值等于Nk和Nb中的大的数值再加上6,因而得到Nr为10,12或14。
密钥扩散由两个过程组成:
1)密钥扩散:种子密钥扩散成扩散密钥;
2)轮子密钥的选取:每轮使用的子密钥从扩散密钥中选取。
与原算法的不同之处在于:
每次选取的字是64bits即8字节
轮常数由8字节的常数构成,这8字节的前面7个字节为0,第一轮的最后一个字节为01,其余各轮的最后一个字节由前面一轮的轮常数的最后一个字节模乘’02’构成。
解密方法为:由N轮解密轮相串联组合而成,每个解密轮的解密顺序是子密钥模2加变换、逆列混合变换、逆S盒替代变换、逆行移位变换,每个解密轮的最后输出即逆行移位变换接下一解密轮的输入即子密钥模2加变换,密文和种子密钥经过数据/密钥相加,数据/密钥相加的结果送第0轮的子密钥模2加变换,同时种子密钥经密钥扩散产生的解密轮子密钥Wi分别送每个解密轮的第一个变换即子密钥模2加变换;最后一轮的解密轮的解密顺序是子密钥模2加变换、逆S盒替代变换、逆行移位变换,最后一轮解密轮的逆行移位变换输出明文。
逆列混合变换变换方法为:不改变每一轮的4个变换的顺序,只是对逆列混合变换进行修改,预先编制4张从0到255分别和02,03,04,05模m(x)乘的一维因子表(LUT02,LUT03,LUT04,LUT05),变换的时候,先根据列混合逆变换的系数从各张乘数因子表中找到状态每一列字节模乘后的数值,然后把这些数值进行异或运算,等到状态某一字节逆变换后的新数值,以此类推,可以得到状态其他字节变换后的新数值。
高安全等级的对称密钥算法的加密器,由DSP模块、FLASH模块、McBSP0扩展口所组成,DSP模块的“D15-D0”与FLASH模块的“D15-D0”端相接,DSP模块的“A15-A0”与FLASH模块的“A15-A0”端相接,DSP模块的“MSTRB、R/W”通过与门接FLASH模块的“WE”端,DSP模块的“MSTRB”解一非门的输入端,该非门的输出端和DSP模块(13)的“R/W”分别接一与非门的两个输入端,该与非门的输出端接FLASH模块的“OE”端,DSP模块的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0扩展口。
3.技术效果
本发明对一种扩展的Rijndael算法的加密过程和解密过程分别提出快速实现方案,并将快速实现方案应用在一种普通的TMS320VC5402的硬件平台构成的一种高安全等级的对称密钥算法加密器,通过对加密器的实测说明使用我们的提出的快速实现方法,可以将加密速度提高2.16倍,解密速度提高2倍。如果结合DSPs技术,可以使该加密器的加密速度提高5.80倍,解密速度提高5.50倍。同时加解密近似相等。
四.附图说明
图1是本发明加密方法的流程示意图。其中有:行移位变换1、S盒替代_列混合变换2、子密钥模2加变换3,明文4、种子密钥5、数据/密钥相加6、密钥扩散7。
图2是本发明解密方法的流程示意图。其中有:逆列混合变换9、逆S盒替代变换10、逆行移位变换11,密文12。
图3是本发明加密器的结构示意图。其中有:DSP模块13、FLASH模块14、McBSP0扩展口15。
图4时本发明加密器的实现电路图。
五.具体实施方式
本发明的高安全等级对称密钥算法的加密、解密方法,由N轮加密轮相串联组合而成,每个加密轮的加密顺序是行移位变换、S盒替代_列混合变换、子密钥模2加变换,每个加密轮的最后输出即子密钥模2加变换接下一加密轮的输入即行移位变换,明文和种子密钥进行数据/密钥相加,数据/密钥相加的结果送第0轮的行移位变换,同时种子密钥经密钥扩散7产生的加密轮子密钥Wi分别送每个加密轮的最后一个变换即子密钥模2加变换;最后一轮的加密轮的加密顺序是S盒替代变换、行移位变换、子密钥模2加变换,最后一轮加密轮的子密钥模2加变换输出密文。
行移位变换的变换方法为:行移位变换对状态的每一行的字节单独进行循环移位操作,满足下列关系:第0行和第4行不移位;第1行和第5行移1个字节;第2行和第6行如果Nb=4或Nb=6,移2个字节,否则移3个字节;第3行和第7行如果Nb=4或Nb=6,移3个字节,否则移4个字节。
S盒替代列混合变换的变换方法为:预先对S盒的每个字节分别和02,03,04,05模m(x)乘,构成4张一维扩展S盒替代_列混合变换表(MUL02,MUL03,MUL04,MUL05),对扩展算法的加密轮的变换顺序进行重新排列,把S盒替代列混合变换和行移位顺序对调,将S盒替代列混合变换合并到列混合变换。变换的时候先根据列混合变换的系数从各张扩展S盒置换表中找到状态每一列字节变换后的数值,然后把这些数值进行异或运算,等到状态某一字节整个变换后的新数值;以此类推,可以得到状态其他字节变换后的新数值。
子密钥模2加变换的变换方法为:子密钥模2加变换就是将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节。
加密的轮次数Nr由Nk和Nb共同确定,也就是Nr的数值等于Nk和Nb中的大的数值再加上6,因而得到Nr为10,12或14。
密钥扩散由两个过程组成:
1)密钥扩散:种子密钥扩散成扩散密钥;
2)轮子密钥的选取:每轮使用的子密钥从扩散密钥中选取。
与原算法的不同之处在于:
每次选取的字是64bits即8字节
轮常数由8字节的常数构成,这8字节的前面7个字节为0,第一轮的最后一个字节为01,其余各轮的最后一个字节由前面一轮的轮常数的最后一个字节左移1位构成。
本发明根据Rijndael的特点,设计一种数据和密钥长度均可为256/384/512比特的扩展的Rijndael算法,使加解密速度基本相等。在此基础上,分别对该扩展算法的加密和解密过程提出快速实现方案,解决包括原算法和扩展算法的字节模乘运算速度慢的缺点。将该算法移植到普通DSP硬件平台上(该平台以TMS320VC5402为核心,包括外围的基本的数据输入输出通道),并结合DSPs存储器的特点,采用代码段的定位方法,以及使用相应的支持软件提供的代码优化器,对扩展的Rijndael算法综合优化,加解密速度得到了很大的提高。
快速实现方案:
在扩展的Rijndael算法的列混合变换(MixColumn)中,需要进行64·Nb(Nb为数据块长度除以64)次字节模乘运算,程序的运算量是192·Nb次查表运算和64·Nb次GF(28)上的加法运算,运算量比较大。如果我们将这192·Nb次模乘运算化成64·Nb次查表运算,将大大减少运算开销。本专利针对扩展的Rijndael算法每轮加解密的特点,分别提出快速实现方案。
加密过程的快速实现方案:
由于行移位变换是一种线性变换,它并不改变每一输入状态的元素的数值,只是对其中的第1、2、3、5、6、7行元素进行重新排列,因此可以把扩展算法的加密轮的变换顺序进行重新排列,把S盒替代和行移位顺序对调,根据(1)式和(2)式,可将S盒替代变换合并到列混合变换。
s′(x)=a(x)s(x)mod(x8+1) (1)
其中
a(x)={03}x7+{05}x6+{03}x5+{02}x4+{02}x3+{04}x2+{02}x+{02} (2)
根据(2)式,可得如下式子:
MUL02[·]=S[·]·02mod m(x) (3)
MUL03[·]=S[·]·03mod m(x) (4)
MUL04[·]=S[·]·04mod m(x) (5)
MUL05[·]=S[·]·05mod m(x) (6)
由(3)、(4)、(5)和(6)式可以分别编制4张一维扩展的S盒置换表,它们的元素分别是S盒的元素mod m(x)乘02、mod m(x)乘03、mod m(x)乘04和mod m(x)乘05。
解密过程的快速实现方案:
解密方法为:由N轮解密轮相串联组合而成,每个解密轮的解密顺序是子密钥模2加变换、逆列混合变换、逆S盒替代变换、逆行移位变换,每个解密轮的最后输出即逆行移位变换接下一解密轮的输入即子密钥模2加变换,密文和种子密钥经过数据/密钥相加,数据/密钥相加的结果送第0轮的子密钥模2加变换,同时种子密钥经密钥扩散产生的解密轮子密钥Wi分别送每个解密轮的第一个变换即子密钥模2加变换;最后一轮的解密轮的解密顺序是子密钥模2加变换、逆S盒替代变换、逆行移位变换,最后一轮解密轮的逆行移位变换输出明文。
逆列混合变换变换方法为:不改变每一轮的4个变换的顺序,只是对逆列混合变换进行修改,预先编制4张从0到255分别和02,03,04,05模m(x)乘的一维因子表(LUT02,LUT03,LUT04,LUT05),变换的时候,先根据列混合逆变换的系数从各张乘数因子表中找到状态每一列字节模乘后的数值,然后把这些数值进行异或运算,等到状态某一字节逆变换后的新数值,以此类推,可以得到状态其他字节变换后的新数值。
不改变每一轮的4个变换的顺序,只是对逆列混合变换进行修改,但不改变其基本的思想。某一状态s’=(s’i,j,i=0,1...7,j=0,1,...Nb-1)经过逆列混合变换后变换为s=(si,j,i=0,1...7,j=0,1,...Nb-1),那么它们两者的关系如(7)式和(8)式所示。
s(x)=a-1(x)s′(x)mod(x8+1) (7)
其中
a-1(x)={03}x7+{04}x6+{03}x5+{03}x4+{02}x3+{05}x2+{02}x+{03} (8)
根据(8)式,可得如下式子:
LUT02[i]=i·02mod m(x) (9)
LUT03[i]=i·03mod m(x) (10)
LUT04[i]=i·04mod m(x) (11)
LUT05[i]=i·05mod m(x) (12)
(9)~(12)式中i=0,1,2...255
因此,LUT02、LUT03、LUT04、LUT05实质上就是一张普通的mod m(x)乘因子表,这4张一维表用于列混合逆变换。
在TMS320VC5402上加解密算法的实现以及代码的优化:
TMS320VC5402中有两种片内存储器:双寻址存储器(DARAM)和单寻址存储器。双寻址存储器的特点是允许CPU在单个周期内对其访问两次。单寻址存储器有两种形式:(1)单寻址读/写存储器(SARAM),(2)单寻址只读存储器(ROM或DROM),CPU可以在单个周期内对每个存储单元访问一次。这两种存储器均可映射到程序空间和数据空间。另外,TMS320VC5402可以外挂片外存储器,但CPU对片外存储单元访问一次,至少要两个周期。与片外存储器相比,片内存储器具有不需要插入等待状态、成本和功耗低等优点。
与之相配套,TI公司提供了相应的代码开发集成环境-Code ComposerStudio(CCS),它将代码生成工具和调试工具集成在一起,可以提供处理器信息和监视程序性能。CCS能在一个控制窗口内使用所有的工具。
CCS自带有代码优化器Optimizer,它能够对包含在CCS Project里面的所有源代码进行4个不同层次的优化:寄存器(Register)级优化、局部变量(Local)级优化、全局变量(Global)级优化、文件(FILE)级优化,这4个层次的优化范围和程度是逐步扩展和深化的。
结合我们提出的方案1、方案2、程序段映射方式和CCS自带有程序优化器,我们在TMS320VC5402硬件平台上用ANSI C语言实现了扩展的Rijndael加解密算法,并且对算法的进行不同层次的优化,使得加密器的运算速度的到了大幅度的提高。
扩展的Rijndael算法:
本扩展算法能实现的数据块长度和种子密钥长度均为256/384/512bits。加密的中间结果,即状态(State)是一个8行、Nb列的矩阵,其中Nb为数据块长度除以64。加秘密钥是一个8行、Nk列的矩阵,其中Nk为密钥长度除以64。
加密的轮数(Nr)由(13)式确定。
Nr=max{Nk,Nb}+6 (13)
由于Nk,Nb∈{4,6,8},所以Nr∈{10,12,14}
加密过程由以下几个部分组成:
1.一个初始轮的密钥模2加。
2.Nr-1轮:依次进行S盒替代变换(SubBytes)、行移位变换(ShiftRows)、列混合变换(MixColumns)和子密钥模2加(Key Addition)。
3.一个结束轮:依次进行S盒替代变换、行移位变换和子密钥模2加,不包括列混合变换。
加密轮和原算法一样,由4个变换组成:S盒替代变换、行移位变换、列混合变换和子密钥模2加。
S盒替代变换:
与原算法一样,S和替代变换是一个非线性的字节替代变换。该变换使用一个和原算法一样的S盒(由256个元素组成的一维表),根据中间结果的每一字节的数值检索S盒中对应的替代值。
S盒的构建:
S盒是一种可逆的置换表,由两个子变换组成:
1.有限域GF(28)上的乘法逆,元素{00}的映射为本身。
2.有限域GF(2)上的仿射,如(14)式所示。
b′i=bib(i+4)mod8b(i+5)mod8b(i+6)mod8b(i+7)mod8ci (14)
其中,0≤i≤8,bi是变换字节的第ibit,{c7c6c5c4c3c2c1c0}=(63h)=(01100011b}。
行移位变换:
行移位变换对状态的每一行的字节单独进行循环移位操作,每一行移位的字节数满足如下关系:
s′r,c=sr,(c+shift(r,Nb))mod Nb,0<r<8,0≤c<Nb (15)
移位值shift(r,Nb)是由状态中该字节的行号和状态的列数(Nb)所决定的,它们满足下列关系:第0行和第4行不移位,其它各行右移的值满足下表所示。
| r=1 | r=2 | r=3 | r=5 | r=6 | r=7 | |
| Nb=4 | 1 | 2 | 3 | 1 | 2 | 3 |
| Nb=6 | 1 | 2 | 3 | 1 | 2 | 3 |
| Nb=8 | 1 | 3 | 4 | 1 | 3 | 4 |
列混合变换:
这一部分和原算法差别比较大。列混合变换对状态进行列与列的操作。状态的每一列被看作一个8项多项式s(x),多项式的系数在GF(28)上,并且和一个固定多项式a(x)模x8+1乘,即,列混合变换满足下列关系:
s′(x)=a(x)s(x)mod(x8+1) (16)
其中,s(x)、s’(x)分别为对应状态的列变换的输入和输出,
a(x)={03}x7+{05}x6+{03}x5+{02}x4+{02}x3+{04}x2+{02}x+{02} (17)
在逆变换中,满足下式的变换关系。
s(x)=a-1(x)s′(x)mod(x8+1) (18)
其中
a-1(x)={03}x7+{04}x6+{03}x5+{03}x4+{02}x3+{05}x2+{02}x+{03} (19)
由(17)式和(19)式可以看出,a(x)和a-1(x)的系数均不为0,同时都分布在1~5之间,上界为5。相对于原算法(其列混合变换的系数的上界为3,而逆变换的上界为14),扩展算法的系数分布非常的集中,具有的扩散能力和抗各种攻击能力更强。从我们对算法开销的测试,可以看出,加解密速度近似相等;其主要原因就是因为系数分布在相同的并且非常集中的区间上。
子密钥模2加变换:
与原算法一样,子密钥模2加变换就是将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节。其变换关系满足下式。
[s’0,c,s’1,c,s’2,c,s’3,c,s’4,c,s’5,c,s’6,c,s’7,c]=[s0,c,s1,c,s2,c,s3,c,s4,c,s5,c,s6,c,s7,c]xor[wround*Nb+c] (20)
其中,0≤c<Nb,0≤round<Nr,[wi]为密钥扩散形成的轮子密钥。
密钥扩散:
与原算法一样,密钥扩散由两个过程组成:
1.密钥扩散:种子密钥扩散成扩散密钥;
2.轮子密钥的选取:每轮使用的子密钥从扩散密钥中选取。
与原算法的不同之处在于:
每次选取的字是64bits(8字节)而不是32bits(4字节);
轮常数的由(21)式定义。
Rcon[i]=(RC[i],{00},{00},{00},{00},{00},{00},{00}) (21)
RC[i]的值由下面两式确定:
RC[1]=’01’ (22)
RC[i]=x·(RC[i-1])=x(x-1) (23)
高安全等级的对称密钥算法的加密器,由DSP模块、FLASH模块、McBSP0扩展口所组成,DSP模块的“D15-D0”与FLASH模块的“D15-D0”端相接,DSP模块的“A15-A0”与FLASH模块的“A15-A0”端相接,DSP模块的“MSTRB、R/W”通过与门接FLASH模块的“WE”端,DSP模块的“MSTRB”解一非门的输入端,该非门的输出端和DSP模块(13)的“R/W”分别接一与非门的两个输入端,该与非门的输出端接FLASH模块的“OE”端,DSP模块的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0扩展口。
Claims (7)
1.一种高安全等级对称密钥算法的加密方法,其特征在于加密方法为:由N轮加密轮相串联组合而成,每个加密轮的加密顺序是行移位变换(1)、S盒替代列混合变换(2)、子密钥模2加变换(3)、每个加密轮的最后输出,即子密钥模2加变换(3),接下一加密轮的输入即行移位变换(1),明文(4)和种子密钥(5)进行数据/密钥相加,数据/密钥相加(6)的结果送第0轮的行移位变换(1),同时种子密钥(5)经密钥扩散(7)产生的加密轮子密钥Wi分别送每个加密轮的最后一个变换即子密钥模2加变换(3);最后一轮的加密轮的加密顺序是S盒替代变换(8)、行移位变换(1)、子密钥模2加变换(3),最后一轮加密轮的子密钥模2加变换(3)输出密文;其中:行移位变换(1)即对状态的每一行的字节单独进行循环移位操作;S盒替代_列混合变换(2)即对扩展算法的加密轮的变换顺序进行重新排列,把S盒替代和行移位顺序对调,将S盒替代变换合并到列混合变换;子密钥模2加变换(3)即将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节;行移位变换(1)的变换方法为:行移位变换对状态的每一行的字节单独进行循环移位操作,满足下列关系:第0行和第4行不移位;第1行和第5行移1个字节;第2行和第6行如果Nb=4,其中Nb为该加密算法中每次进入加密轮中数据块的长度除以64,或Nb=6,移2个字节,否则移3个字节;第3行和第7行如果Nb=4或Nb=6,移3个字节,否则移4个字节;S盒替代_列混合变换(2)的变换方法为:预先对S盒的每个字节分别和02,03,04,05模m(x)乘,其中m(x)=x8+1,构成4张一维扩展的S盒置换表:MUL02、MUL03、MUL04、MUL05,其中这4张表的具体描述和限定如下列方程式所示:
MUL02[·]=S[·]·02mod m(x)
MUL03[·]=S[·]·03mod m(x)
MUL04[·]=S[·]·04mod m(x)
MUL05[·]=S[·]·05mod m(x)
其中m(x)=x8+1
对扩展算法的加密轮的变换顺序进行重新排列,把S盒替代和行移位顺序对调,将S盒替代变换合并到列混合变换;变换的时候先根据列混合变换的系数从各张扩展S盒置换表中找到状态每一列字节变换后的数值,然后把这些数值进行异或运算,得到状态某一字节整个变换后的新数值;以此类推,可以得到状态其他字节变换后的新数值;子密钥模2加变换(3)的变换方法为:子密钥模2加变换就是将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节。
2.根据权利要求1所述的高安全等级对称密钥算法的加密方法,其特征在于加密的轮次数Nr由Nk和Nb共同确定,其中Nk为种子密钥的长度整除64所得的整数,Nb为该加密算法中每次进入加密轮中数据块的长度整除64所得的整数,也就是Nr的数值等于Nk和Nb中的大的数值再加上6,因而得到Nr为10,12或14。
3.根据权利要求1所述的高安全等级对称密钥算法的加密方法,其特征在于密钥扩散(7)由两个过程组成:
1)密钥扩散:种子密钥扩散成扩散密钥;
2)轮子密钥的选取:
●每轮使用的子密钥从扩散密钥中选取;
●每次选取的字是64bits即8字节;
●轮常数由8字节的常数构成,这8字节的前面7个字节为0,第一轮的最后一个字节为01,其余各轮的最后一个字节由前面一轮的轮常数的最后一个字节模乘’02’构成。
4.一种高安全等级对称密钥算法的解密方法,其特征在于解密方法为:由N轮解密轮相串联组合而成,每个解密轮的解密顺序是子密钥模2加变换(3)、逆列混合变换(9)、逆S盒替代变换(10)、逆行移位变换(11)、每个解密轮的最后输出即逆行移位变换(11)接下一解密轮的输入即子密钥模2加变换(3),密文(12)和种子密钥(5)经过数据/密钥相加(6),数据/密钥相加(6)的结果送第0轮的子密钥模2加变换(3),同时种子密钥(5)经密钥扩散(7)产生的解密轮子密钥Wi分别送每个解密轮的第一个变换即子密钥模2加变换(3);最后一轮的解密轮的解密顺序是子密钥模2加变换(3)、逆S盒替代变换(10)、逆行移位变换(11),最后一轮解密轮的逆行移位变换(11)输出明文;子密钥模2加变换(3)的变换方法为:子密钥模2加变换就是将由密钥扩散而得到的轮子密钥模2加到状态中的每一字节;逆行移位变换(11)即为行移位变换(1)的逆变换;逆列混合变换(9)即为根据列混合逆变换的系数对状态进行列与列的操作的变换;逆S盒替代变换(10)为S盒替代变换(8)的逆变换;S盒替代变换(8)是一个非线性的字节替代变换;该变换使用一个S盒,它由256个元素组成的一维表,根据中间结果的每一字节的数值检索S盒中对应的替代值,根据中间结果的每一字节的数值检索S盒中对应的替代值;S盒是一种可逆的置换表,由两个子变换组成:
1.有限域GF(28)上的乘法逆,元素{00}的映射为本身;
2.有限域GF(2)上的仿射,如下列方程式所示:
b′i=bib(i+4)mod8b(i+5)mod8b(i+6)mod8b(i+7)mod8ci
其中,0≤i<8,bi是变换字节的第i bit,{c7c6c5c4c3c2c1c0}={63h}={01100011b}。
5.根据权利要求4所述的高安全等级对称密钥算法的解密方法,其特征在于逆列混合变换(9)变换方法为:不改变每一轮的4个变换的顺序,只是对逆列混合变换进行修改,预先编制四张乘数因子表:LUT02、LUT03、LUT04和LUT05,其中这4张表的具体描述和限定如下列方程式所示:
LUT02[i]=i·02mod m(x)
LUT03[i]=i·03mod m(x)
LUT04[i]=i·04mod m(x)
LUT05[i]=i·05mod m(x)
其中i=0,1,2...255,m(x)=x8+1
变换的时候,先根据列混合逆变换的系数从各张乘数因子表中找到状态每一列字节模乘后的数值,然后把这些数值进行异或运算,得到状态某一字节逆变换后的新数值,以此类推,可以得到状态其他字节变换后的新数值。
6.根据权利要求4所述的高安全等级对称密钥算法的解密方法,其特征在于逆行移位变换(11)为行移位变换(1)的逆变换,行移位变换(1)的变换方法为:行移位变换对状态的每一行的字节单独进行循环移位操作,满足下列关系:第0行和第4行不移位;第1行和第5行移1个字节;第2行和第6行如果Nb=4,Nb为该加密算法中每次进入加密轮中数据块的长度除以64,或Nb=6,移2个字节,否则移3个字节;第3行和第7行如果Nb=4或Nb=6,移3个字节,否则移4个字节。
7.一种高安全等级对称密钥算法的加密器,其特征在于加密器由DSP模块(13)、FLASH模块(14)、McBSP0扩展口(15)所组成,DSP模块(13)的“D15-D0”与FLASH模块(14)的“D15-D0”端相接,DSP模块(13)的“A15-A0”与FLASH模块(14)的“A15-A0”端相接,DSP模块(13)的“MSTRB、R/W”通过与门接FLASH模块(14)的“WE”端,DSP模块(13)的“MSTRB”接一非门的输入端,该非门输出端和DSP模块(13)的“R/W”分别接一与非门的两个输入端,该与非门的输出端接FLASH模块(14)的“OE”端,DSP模块(13)的“BCLKR0、BFSR0、BDR0、BCLKX0、BFSX0、BDX0、INT0、INT1、IACK”接McBSP0扩展口(15)。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 03113387 CN1258148C (zh) | 2003-05-01 | 2003-05-01 | 高安全等级对称密钥算法的加密、解密方法及加密器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 03113387 CN1258148C (zh) | 2003-05-01 | 2003-05-01 | 高安全等级对称密钥算法的加密、解密方法及加密器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1445681A CN1445681A (zh) | 2003-10-01 |
| CN1258148C true CN1258148C (zh) | 2006-05-31 |
Family
ID=27814708
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN 03113387 Expired - Fee Related CN1258148C (zh) | 2003-05-01 | 2003-05-01 | 高安全等级对称密钥算法的加密、解密方法及加密器 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1258148C (zh) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100080395A1 (en) * | 2006-11-17 | 2010-04-01 | Koninklijke Philips Electronics N.V. | Cryptographic method for a white-box implementation |
| CN102023937A (zh) * | 2010-11-19 | 2011-04-20 | 苏州国芯科技有限公司 | 一种用于usb储存设备的数据流加密方法 |
| CN102404123A (zh) * | 2012-01-04 | 2012-04-04 | 王勇 | 一种基于算法变换思想的加密方法 |
| CN102664730B (zh) * | 2012-05-02 | 2014-11-12 | 西安电子科技大学 | 基于高级加密标准aes的128比特位密钥扩展方法 |
| CN102624520B (zh) * | 2012-05-02 | 2014-10-29 | 西安电子科技大学 | 基于aes的192比特位密钥扩展系统及方法 |
| CN102857334B (zh) * | 2012-07-10 | 2015-07-08 | 记忆科技(深圳)有限公司 | 一种实现aes加解密的方法及装置 |
| CN103500294B (zh) * | 2013-09-23 | 2016-03-23 | 北京荣之联科技股份有限公司 | 一种文件加解密方法和装置 |
| DE102015211668B4 (de) | 2015-06-24 | 2019-03-28 | Volkswagen Ag | Verfahren und Vorrichtung zur Erhöhung der Sicherheit bei einer Fernauslösung, Kraftfahrzeug |
| KR101914453B1 (ko) * | 2015-10-29 | 2018-11-02 | 삼성에스디에스 주식회사 | 암호화 장치 및 방법 |
| CN105939190A (zh) * | 2016-06-23 | 2016-09-14 | 天津中安华典数据安全科技有限公司 | 基于fpga的离线生成密钥的aes数据加密方法 |
| CN113472835B (zh) * | 2020-08-17 | 2024-09-03 | 海信集团控股股份有限公司 | 数据读取、上传方法及设备 |
| CN116186742A (zh) * | 2023-04-24 | 2023-05-30 | 东方空间技术(山东)有限公司 | 一种箭载数据加密存储的方法、装置及设备 |
-
2003
- 2003-05-01 CN CN 03113387 patent/CN1258148C/zh not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CN1445681A (zh) | 2003-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1258148C (zh) | 高安全等级对称密钥算法的加密、解密方法及加密器 | |
| CN1898896A (zh) | 高级加密标准算法的可编程数据加密引擎 | |
| CN112202547B (zh) | 一种轻量级分组密码gfcs实现方法、装置及可读存储介质 | |
| CN1672352A (zh) | 基于先进加密标准(aes)的硬件密码机 | |
| CN1172235C (zh) | 扩充密钥发生器、加密/解密单元、扩充密钥产生方法 | |
| CN1663172A (zh) | 为aes rijndael分组密码产生轮次密钥 | |
| WO2020188269A1 (en) | Cryptography using a cryptographic state | |
| CN1527531A (zh) | 一种数据加密标准或三重数据加密标准的实现方法 | |
| CN112287333B (zh) | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 | |
| JPH07199808A (ja) | 暗号化方法及びシステム | |
| CN102185692A (zh) | 基于aes加密算法的多模式可重构加密方法 | |
| CN105959107B (zh) | 一种新型高安全的轻量级sfn分组密码实现方法 | |
| Gueron | Advanced encryption standard (AES) instructions set | |
| CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
| CN1677921A (zh) | 通过可编程器件实现数据加密的方法 | |
| CN111478766A (zh) | 一种分组密码meg实现方法、装置及存储介质 | |
| CN112134691B (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
| CN1281023C (zh) | 离散数据分块加密方法 | |
| CN1180351C (zh) | 强化错乱的分组密码加密方法 | |
| CN104011732A (zh) | 双合成域高级加密标准存储器加密引擎 | |
| CN202257543U (zh) | 针对aes对称加密算法的指令优化处理器 | |
| CN1633030A (zh) | 一种循环冗余校验的快速计算方法 | |
| Gueron et al. | Hardware implementation of AES using area-optimal polynomials for composite-field representation GF (2^ 4)^ 2 of GF (2^ 8) | |
| CN107171782B (zh) | 一种基于可逆逻辑电路的aes私密日志加密方法 | |
| CN1795637A (zh) | 用于密钥扩展功能的低速存储器硬件实施的方法和设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| C19 | Lapse of patent right due to non-payment of the annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |