CN102025484A - 一种分组密码加解密方法 - Google Patents

一种分组密码加解密方法 Download PDF

Info

Publication number
CN102025484A
CN102025484A CN 201010593392 CN201010593392A CN102025484A CN 102025484 A CN102025484 A CN 102025484A CN 201010593392 CN201010593392 CN 201010593392 CN 201010593392 A CN201010593392 A CN 201010593392A CN 102025484 A CN102025484 A CN 102025484A
Authority
CN
China
Prior art keywords
bits
prime
encryption
box
carried out
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.)
Granted
Application number
CN 201010593392
Other languages
English (en)
Other versions
CN102025484B (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN2010105933929A priority Critical patent/CN102025484B/zh
Publication of CN102025484A publication Critical patent/CN102025484A/zh
Application granted granted Critical
Publication of CN102025484B publication Critical patent/CN102025484B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种分组密码加解密方法,属于数据加密解密领域。本发明算法设计了一种对称的加密结构,尤其是本发明的S盒设计能配置加密需要的S变换和解密需要的S逆变换而无需增加额外的电路资源,利于加解密一体的硬件电路实现,比AES加解密一体的电路需要更少的面积资源。本发明算法复杂的S盒构造可以抵抗现有已知的攻击方法。在较少轮数(3轮)加密情况下可以提供很高的加密速度,并且利用相同的加解密硬件可以用同样的速度进行解密。该算法特别适合专用ASIC实现,可以实现加解密专用算法的专用集成电路芯片。也可用于FPGA上的IP核设计。在FPGA上本发明资源消耗少于AES算法,且速度更快。

Description

一种分组密码加解密方法
技术领域
本发明属于数据加密解密领域,尤其涉及一种高吞吐率数据加密算法。
背景技术
在高吞吐率大规模数据条件下,如航空中的通信,需要传输海量数据,一般都是在高频和超高频无线传输,频带在20GHz左右,有大量带宽可以使用,但是电波传输也造成数据容易被获取,需要更高的加密安全性。
AES算法是现今最流行的分组加密算法,已经被多方分析且广为全世界所使用。AES算法的缺点是轮变换次数太多,而减少轮变换会导致安全性降低,满足不了高速需求。而AES算法的加密算法和解密算法有区别,电路只有部分可以进行可重构的利用,加解密一体的电路资源消耗要比仅有加密电路的资源消耗多大概20%。
发明内容
本发明的目的是提供一种高吞吐量的加解密方法,该方法在安全性上与AES算法接近,但是能达到比AES算法更高的吞吐量,在硬件实现上具有更少的电路面积。
本发明设计了一种可重构的S盒配置方法。根据密钥来配置每次加解密所需要的5个S盒,实现非线性变换更高的混乱程度,使得本发明算法在达到足够强的加密程度所需要的轮数相应减少,能达到比AES更高的吞吐量。
本发明算法设计了一种对称的加密结构,尤其是本发明的S盒设计能配置加密需要的S变换和解密需要的S逆变换而无需增加额外的电路资源,利于加解密一体的硬件电路实现,比AES加解密一体的电路需要更少的面积资源。
本发明提供的技术方案如下:
加密结构流程如图1,明文每次加密明文分组长度为128比特,密钥长度为128比特。S盒的生成结构如图2所示,S盒的输入为24比特,记作KS=KS1||KS2...||KS24。
方案1:一种分组密码加密方法,其特征在于,其加密过程如下:
步骤1:将128比特的密钥按执行密钥扩展,产生608比特的扩展密钥,将密钥扩展中产生的最后96比特扩展密钥作为加密过程中用的4个S盒的密钥,配置S盒,密钥对应关系如图4a所示;
步骤2:将128位的明文输入(即待解密数据)分成16组,记为[Z1||Z2||...||Z16],每组8比特;
步骤3:将明文与扩展密钥进行异或运算,扩展密钥为起始扩展密钥128比特;
[ Z 1 ′ | | Z 2 ′ | | . . . | | Z 16 ′ ] = [ Z 1 | | Z 2 | | . . . | | Z 16 ] ⊕ [ K 1 | | K 2 | | . . . | | K 128 ]
步骤4:将加密数据进行S变换:前64比特经过S1变换(注:S1变换指附图1中S盒密钥1所对应的S盒执行的变换步骤。下文中的S2、S3、S4均参照此注释),后64比特经过S2变换;
[Z1′||Z2′||...||Z16′]=[S1Z1||S1Z2||...||S1Z8||S2Z9||S2Z10||...||S2Z16]
步骤5:将加密数据的后64位进行线性变换,乘以变换矩阵异或常数,再与前半部分做异或运算生成前64比特数据,后64比特不变;
F ( Zn ) = Zn * 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 ⊕ 1 1 1 0 0 1 0 1
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤6:进行行列变换,按照以下式子对16组数据进行重新排序;
[Z1′||Z2′||...||Z16′]
=Z15||Z16||Z13||Z14||Z11||Z12||Z9||Z10||Z6||Z5||Z8||Z7||Z2||Z1||Z4||Z3]
步骤7:将加密数据与扩展密钥进行异或运算;
F ( Zn ) = Zn * 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 ⊕ 1 1 1 0 0 1 0 1
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤8:将加密数据进行S变换,前64比特经过S3变换,后64比特经过S4变换;
[Z1′||Z2′||...||Z16′]=[S3Z1||S3Z2||...||S3Z8||S4Z9||S4Z10||...||S4Z16]
步骤9:将加密数据与扩展密钥进行异或运算,扩展密钥为第N轮密钥,长为128比特;
[ Z 1 ′ | | Z 2 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 | | Z 2 | | . . . | | Z 16 ] ⊕ [ K 128 * N + 1 | | K 128 * N + 2 | | . . . | | K 128 * N + 128 ]
步骤10:重复步骤4至步骤9一共3轮,最终产生密文输出。
方案2:作为方案1的一种优选方案,其特征在于,所述步骤1中的密钥扩展方法如下(参见图3,密钥输入为128比特记为[K1||K2||…||K128],输出608比特[K1||K2||…||K608]):
1)配置用于密钥扩展的随机S盒,将[K1||K2||...||K24]与[K25||K26||...||K48]进行异或,得到[KS1||KS2||...||KS24];
2)将密钥分为16个分组,每个分组8比特;
3)将每个分组进行S变换;S变换用到的S盒为步骤1)配置好的S盒;
4)将每个分组进行位移运算,如图3中所示不同比特长度,向左循环移位;例如第11组的数据为10011101,位移运算为向左循环3位,那么输出为11101100;
5)将每个分组进行常数项异或运算,生成新的子密钥序列;常数项如图3中所示,例如第11组的数据为11101100,那么根据表中应该异或的常数项为1,那么输出为11101101;
6)将16个分组合为128比特,产生新一轮扩展密钥,进行下一轮密钥扩展;
7)重复步骤2)至步骤6)一共五轮,第1至4轮在加密中的密钥异或运算中使用;第五轮取前96比特,作为加密过程四个可重构S盒(或解密过程的四个S逆盒)的配置使用。
方案3:作为方案2的一种优选方案,其特征在于,所述S盒为根据密钥即时构造生成的,其构造步骤如下:
1)取[KS1||KS2||KS3||KS4]4比特作为M表的输入,如表1所示。例如输入[KS1||KS2||KS3||KS4]为0100,对应的本原多项式为x8+x6+x4+x3+x2+x+1,对应的线性移位寄存器(LFSR)的各抽头系数则为10101111;
2)对[KS5||KS6||KS7||KS8]和[KS1||KS2||KS3||KS4]作比较,若不等则取[KS5||KS6||KS7||KS8]4比特作为第二个M表的输入;若相等,则取[KS5||KS6||KS7||KS8]与0111异或运算结果作为第二个M表的输入;M表与步骤1中所述相同;
3)M表输出线性移位寄存器的抽头系数,线性移位寄存器按照输出的系数进行配置;
4)计数器工作,驱动2个LFSR完成255次移位;
5)LFSR1输出的8比特数据与[KS9||KS10||...||KS16]进行异或运算生成8比特地址,LFSR2输出的8比特数据与[KS17||KS18||...||KS24]进行异或运算生成8比特数据;
6)把8比特地址0x00对应的数据0x00预先写入S盒,设置标志位Flag缺省为0,如果Flag为0,在计数器驱动下把对应的255组地址的数据写入S盒,实现S变换功能;如果Flag为1,在计数器驱动下把对应的255组地址的数据对调写入S盒,实现S逆变换。
方案4:作为方案1的一种优选方案,其特征在于,所述步骤5中的变换矩阵为AES中所采用的仿射矩阵。
本发明同时提供了与之对应的解密方法,方案如下:
方案5:与方案1所述加密方法对应的解密方法,其特征在于,其解密过程如下:
步骤1:将128比特的密钥按执行密钥扩展,产生608比特的扩展密钥;将密钥扩展中产生的最后96比特扩展密钥作为加密过程中用的4个S盒的密钥,配置S盒,密钥对应关系如图4b所示;
步骤2:密文输入为128比特,将他们分成16组,记为[Z1||Z2||...||Z16],每组8比特;
步骤3:将密文与扩展密钥进行异或运算,扩展密钥为起始扩展密钥128比特;
[ Z 1 ′ | | Z 2 ′ | | . . . | | Z 16 ′ ] = [ Z 1 | | Z 2 | | . . . | | Z 16 ] ⊕ [ K 385 | | K 386 | | . . . | | K 512 ]
步骤4:将加密数据进行S逆变换:前64比特经过S3逆变换,后64比特经过S4逆变换;
[Z1′||Z2′||...||Z16′]=[S1Z1||S1Z2||...||S1Z8||S2Z9||S2Z10||...||S2Z16]
步骤5:将加密数据的后64位进行线性变换,乘以变换矩阵异或常数,再与前半部分做异或运算生成前64比特数据,后64比特不变;
F ( Zn ) = Zn * 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 ⊕ 1 1 1 0 0 1 0 1
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤6:进行行列变换,按照以下式子对16组数据进行重新排序;
[Z1′||Z2′||...‖Z16′]
=Z15||Z16||Z13||Z14||Z11||Z12||Z9||Z10||Z6||Z5||Z8||Z7||Z2||Z1||Z4||Z3]
步骤7:将加密数据与扩展密钥进行异或运算;
F ( Zn ) = Zn * 1 0 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 ⊕ 1 1 1 0 0 1 0 1
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤8:将加密数据进行S逆变换,前64比特经过S1逆变换,后64比特经过S2逆变换;
[Z1′||Z2′||...||Z16′]=[S3Z1||S3Z2||...||S3Z8||S4Z9||S4Z10||...||S4Z16]
步骤9:将解密数据与扩展密钥进行异或运算,扩展密钥为第N轮密钥,长为128比特;
[ Z 1 ′ | | Z 2 ′ | | . . . | | Z 16 ′ ] =
[ Z 1 | | Z 2 | | . . . | | Z 16 ] ⊕ [ K 128 * ( 3 - N ) + 1 | | K 128 * ( 3 - N ) + 2 | | . . . | | K 128 * ( 3 - N ) + 128 ]
步骤10:重复步骤4至步骤9一共3轮,最终产生明文输出。
方案6:作为方案5的一种优选方案,其特征在于,所述步骤1中的密钥扩展方法和方案2所述的方法相同。
方案7:作为方案6的一种优选方案,其特征在于,所述S盒为根据密钥即时构造生成的,其构造方法和方案3所述的方法相同,但在方案3所述步骤6)中设置标志位Flag为1。
本发明的有益效果:本发明算法复杂的S盒构造可以抵抗现有已知的攻击方法,特别是能够抵抗差分密码分析和线性密码分析等。在较少轮数(3轮)加密情况下可以提供很高的加密速度,并且利用相同的加解密硬件可以用同样的速度进行解密。该算法特别适合专用ASIC实现,可以实现加解密专用算法的专用集成电路芯片。也可用于FPGA上的IP核设计。在FPGA上本发明资源消耗少于AES算法,且速度更快。具体性能如图5所示。
附图说明
图1为本发明算法结构流程图
图2为本发明核心S盒生成结构图
图3为本发明算法密钥扩展流程图
图4a为本发明加密数据流图
图4b为本发明解密数据流图
图5为本发明与AES算法性能比较图
图6为本发明实施例芯片系统结构设计图
具体实施方式
本加密算法针对的是大吞吐量大量数据下的加密传输,大致的工作环境如下:有专门用于双方通信交换密钥的传输模块来获得密钥,在获得密钥后,用本加密算法的芯片进行大量数据的高吞吐量加密,采用密码本的加密模式。因为数据量远远大于密钥的长度,本发明的创新之处就是采用了跟密钥扩展相关的随机S盒,构建了一种加解密一体的加密结构。本发明所用到的S盒使用了预先根据密钥扩展的一部分构造的随机S盒,这种S盒完全抵抗AES中用到的GF域上求逆的S盒可能具有的代数攻击,而只跟密钥扩展的随机性有关,在每次进行完多个分组加密以后更换密钥产生新的S盒,可以构造出完善的非线性变换。并且降低了达到AES非线性程度所需要的轮数,进而得到了比AES更高的吞吐效率。各模块按对称过程排列,由于异或运算和S盒运算都只跟密钥有关,而本发明中的S盒为可重构设计,只需调换输入输出的顺序就可以生成对应的S逆盒,轮变换中间的线性变换由几部分组成实现了加解密的统一结构。因此整个加解密算法可以用同一硬件设施实现。
S盒的构造:该算法主要就是依靠S盒的高随机性和非线性提高了安全性能使得整体轮数下降提高吞吐率,因此S盒的设计至关重要。8比特数据长度的S盒记录了输入输出的一一对应关系,数据范围为0至255。本发明设计了一种S盒的构造方法,根据密钥即时生成一个新的S盒数值写入存储器中供加密使用,与其他加密算法采用的固定S盒相比有更好的非线性。本发明利用了本原多项式的M序列具有遍历2n-1值的性质,由8阶本原多项式的M序列恰好可以遍历1-255的数据,而8阶本原多项式有2^4个,输入输出各根据密钥选择其中一个组成输入输出对,实现遍历1-255到1-255的一一对应,人工把0输入对应到0输出上。电路实现时,M序列由线性位移寄存器电路实现,密钥扩展输入4位地址到存储器M表中,M表输出8位线性移位寄存器的抽头选择信号,控制线性移位寄存器的输出。一共生成2组数据,组成一组S盒的输入输出信息,存入储存器中。为了防止输入和输出数据的扩展密钥相同导致S盒脆弱,加了一个密钥比较判决器,如果2组扩展密钥相同,则在加密扩展密钥上异或7(0111),克服了可能的弱密钥性。
对于一个S盒,扩展S盒密钥有24比特。8阶本原多项式一共有16种,因此需要4比特来选择,首先输入2组各4比特扩展密钥进行比较后进入M表。M表查找对应的本原多项式序列抽头,驱动现行移位寄存器(LFSR)在计数器的控制下依次输出255个不同的数据,然后再与2组各8比特的扩展密钥进行异或运算,最后一组数据做输入,另一组做输出写入S盒。S盒的输入00对应输出00不变。当进行逆运算时,输入和输出对调,直接实现S盒的逆。
整个加密算法由两对线性变换配合中间的行列交叉组成了加解密一体的结构,两端的S盒与不同轮数中的异或密钥运算均可以依靠改变密钥输入顺序来实现加解密结构的统一。
本发明算法分组长度为128位,密钥长度为128位,由特殊构成的S盒提供非线性变换实现数据的混乱,由线性变换部分实现数据的扩散,变换遵循雪崩效应准则和位独立准则。
如图6所示,是本发明算法的专用芯片的系统结构设计图。本发明的专用加密芯片采用特许半导体0.35微米制造工艺,根据高速远距离图像加密传输的要求,以ASIC设计原理为基础,针对图像加解密的每个独立的功能模块的设计指标,充分考虑到图像信息的高速、保密的性质,对芯片的设计合理平衡应用的各种参数。针对系统的每个功能模块都进行合理的设计,满足其性能指标。整个芯片结构根据电路原理进行优化,从而确定整个系统的框架和各模块的性能指标,使该加密算法具有很高的抗解密强度和比软件更高的速度,并且能适用于各类加密设备。
该设计由输入输出模块、密钥扩展模块和加密模块构成。中间最大部分的是4个可重构S盒块,每个可重构S盒块由8个8比特可重构S盒组成。
以下是加解密流程:
(一)密钥扩展流程:
步骤1:芯片与外部设备通信,读入加密密钥128比特,由输入输出模块分2次读取放入输入输出寄存器当中。
步骤2:初始密钥读入128比特,将其前24比特和25-48比特进行异或运算,结果输入重构S盒块1和重构S盒块3中,生成密钥扩展S盒。
步骤3:初始密钥128比特写入密钥扩展寄存器中。
步骤4:初始密钥分成2组64比特输入重构S盒块1和重构S盒块3中,输出合并为128比特,输入位移/异或电路。输出结果存入密钥扩展寄存器中。
步骤5:输出结果继续输入S盒进行下一轮密钥扩展,一共进行5轮,第5轮仅留下前96比特,这样密钥扩展寄存器当中会留下608比特的扩展密钥以供加密使用。
(二)加密流程:
步骤1:清空可重构S盒1,3,在扩展密钥控制器的选择下读取4个可重构S盒块的4组24比特S盒扩展密钥,进行S盒初始化。
步骤2:从输入输出寄存器读取128比特明文输入。
步骤3:在扩展密钥控制器的控制下输入128比特的第一组扩展密钥与明文进行异或运算。
步骤4:数据经过可重构S盒块1和2。
步骤5:数据经过线性变换电路/行列交叉电路。
步骤6:数据经过可重构S盒块3和4。
步骤7:数据与扩展密钥下128比特进行异或运算。
步骤8:重复步骤4,一共进行3轮加密。
步骤9:最后一轮输出结果存在输入输出寄存器里,等待外部模块读取。
(三)解密流程:
解密流程和加密流程公用一套密钥扩展模块,在密钥扩展控制器的控制下选择相应的扩展密钥进行解密流程,具体扩展密钥选择如图4a、图4b所示,器件结构完全一样。
步骤1:清空可重构S盒1,3,在扩展密钥控制器的选择下读取4个可重构S盒块的4组24比特S盒扩展密钥,进行S逆盒初始化。
步骤2:从输入输出寄存器读取128比特明文输入。
步骤3:在扩展密钥控制器的控制下输入第385-512比特的扩展密钥与明文进行异或运算。
步骤4:数据经过可重构S盒块1和2。
步骤5:数据经过线性变换电路/行列交叉电路。
步骤6:数据经过可重构S盒块3和4。
步骤7:数据与扩展密钥前128比特进行异或运算。
步骤8:重复步骤4,一共进行3轮解密。
步骤9:最后一轮输出结果存在输入输出寄存器里,等待外部模块读取。
在具体设计中加入了4级流水线,使最小路径延迟小于2.5ns,频率可以达到400MHz以上。理论吞吐量达到预期的5Gbit/s。
该算法工作流程与前面所叙述流程图一致,设计了用该算法加密的芯片。对于整个系统版图的设计验证,根据ASIC芯片设计思想,对芯片版图进行合理布局,采用相应的软件平台进行芯片设计。本项目ASIC芯片设计采用特许半导体0.35微米制造工艺,选择半定制方式,使用特许晶圆厂提供标准单元库进行开发。设计采用Verilog硬件描述语言开发,Mentor公司的Modelsim仿真,Synopsys公司的Design Complier电路综合,Synopsys的Astro布局布线,Cadence公司的IC版图修改,并通过芯片设计各项验证仿真测试,进行成功流片。
  输入   对应本原多项式   线性移位寄存器抽头系数
  0000   x8+x4+x3+x2+1   10001110
  0001   x8+x5+x3+x+1   10010101
  0010   x8+x5+x3+x2+1   10010110
  0011   x8+x6+x3+x2+1   10100110
  0100   x8+x6+x4+x3+x2+x+1   10101111
  0101   x8+x6+x5+x+1   10110001
  0110   x8+x6+x5+x2+1   10110010
  0111   x8+x6+x5+x3+1   10110100
  1000   x8+x6+x5+x4+1   10111000
  1001   x8+x7+x2+x+1   11000011
  1010   x8+x7+x3+x2+1   11000110
  1011   x8+x7+x5+x3+1   11010100
  1100   x8+x7+x6+x+1   11100001
  1101   x8+x7+x6+x3+x2+x+1   11100111
  1110   x8+x7+x6+x5+x2+x+1   11110011
  1111   x8+x7+x6+x5+x4+x2+1   11111010
表1

Claims (7)

1.一种分组密码加密方法,其特征在于,其加密过程如下:
步骤1:将128比特的密钥按执行密钥扩展,产生608比特的扩展密钥,将密钥扩展中产生的最后96比特扩展密钥作为加密过程中用的4个S盒的密钥,配置S盒;
步骤2:将128位的明文输入分成16组,记为[Z1||Z2||...||Z16],每组8比特;
步骤3:将明文与扩展密钥进行异或运算;
步骤4:将加密数据进行S变换:前64比特经过S1变换,后64比特经过S2变换;
步骤5:将加密数据的后64位进行线性变换,乘以变换矩阵异或常数,再与前半部分做异或运算生成前64比特数据,后64比特不变;
步骤6:进行行列变换,按照以下式子对16组数据进行重新排序;
[Z1′||Z2′||...||Z16′]
=Z15||Z16||Z13||Z14||Z11||Z12||Z9||Z10||Z6||Z5||Z8||Z7||Z2||Z1||Z4||Z3]
步骤7:将加密数据与扩展密钥进行异或运算;
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤8:将加密数据进行S变换,前64比特经过S3变换,后64比特经过S4变换;
[Z1′||Z2′||...||Z16′]=[S3Z1||S3Z2||...||S3Z8||S4Z9||S4Z10||...||S4Z16]
步骤9:将加密数据与扩展密钥进行异或运算,扩展密钥为第N轮密钥,长为128比特;
[ Z 1 ′ | | Z 2 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 | | Z 2 | | . . . | | Z 16 ] ⊕ [ K 128 * N + 1 | | K 128 * N + 2 | | . . . | | K 128 * N + 128 ]
步骤10:重复步骤4至步骤9一共3轮,最终产生密文输出。
2.如权利要求1所述的加密方法,其特征在于,所述步骤1中的密钥扩展方法如下:
1)配置用于密钥扩展的随机S盒,将[K1||K2||...||K24]与[K25||K26||...||K48]进行异或,得到[KS1||KS2||...||KS24];
2)将密钥分为16个分组,每个分组8比特;
3)将每个分组进行S变换;
4)将每个分组进行位移运算;
5)将每个分组进行常数项异或运算,生成新的子密钥序列;
6)将16个分组合为128比特,产生新一轮扩展密钥,进行下一轮密钥扩展;
7)重复步骤2)至步骤6)一共五轮,第1至4轮在加密中的密钥异或运算中使用;第五轮取前96比特,作为加密过程四个可重构S盒的配置使用。
3.如权利要求2所述的加密方法,其特征在于,所述S盒为根据密钥即时构造生成的,其构造步骤如下:
1)取[KS1||KS2||KS3||KS4]4比特作为M表的输入;
2)对[KS5||KS6||KS7||KS8]和[KS1||KS2||KS3||KS4]作比较,若不等则取[KS5||KS6||KS7||KS8]4比特作为第二个M表的输入;若相等,则取[KS5||KS6||KS7||KS8]与0111异或运算结果作为第二个M表的输入;
3)M表输出线性移位寄存器的抽头系数,线性移位寄存器按照输出的系数进行配置;
4)计数器工作,驱动2个LFSR完成255次移位;
5)LFSR1输出的8比特数据与[KS9||KS10||...||KS16]进行异或运算生成8比特地址,LFSR2输出的8比特数据与[KS17||KS18||...||KS24]进行异或运算生成8比特数据;
6)把8比特地址0x00对应的数据0x00预先写入S盒,设置标志位Flag缺省为0,如果Flag为0,在计数器驱动下把对应的255组地址的数据写入S盒,实现S变换功能;如果Flag为1,在计数器驱动下把对应的255组地址的数据对调写入S盒,实现S逆变换。
4.如权利要求1所述的加密方法,其特征在于,所述步骤5中的变换矩阵为AES中所采用的仿射矩阵。
5.一种权利要求1所述的加密方法对应的解密方法,其特征在于,其解密过程如下:
步骤1:将128比特的密钥按执行密钥扩展,产生608比特的扩展密钥;将密钥扩展中产生的最后96比特扩展密钥作为加密过程中用的4个S盒的密钥,配置S盒;
步骤2:密文输入为128比特,将他们分成16组,记为[Z1||Z2||...||Z16],每组8比特;
步骤3:将密文与扩展密钥进行异或运算,扩展密钥为起始扩展密钥128比特;
步骤4:将加密数据进行S逆变换:前64比特经过S3逆变换,后64比特经过S4逆变换;
步骤5:将加密数据的后64位进行线性变换,乘以变换矩阵异或常数,再与前半部分做异或运算生成前64比特数据,后64比特不变;
步骤6:进行行列变换,按照以下式子对16组数据进行重新排序;
[Z1′||Z2′||...‖Z16′]
=Z15||Z16||Z13||Z14||Z11||Z12||Z9||Z10||Z6||Z5||Z8||Z7||Z2||Z1||Z4||Z3]
步骤7:将加密数据与扩展密钥进行异或运算;
[ Z 1 ′ | | Z 2 ′ | | . . . Z 8 ′ | | Z 9 ′ | | Z 10 ′ | | . . . | | Z 16 ′ ]
= [ Z 1 ⊕ F ( Z 9 ) | | Z 2 ⊕ F ( Z 10 ) | | . . . | | Z 8 ⊕ F ( Z 16 ) | | Z 9 | | Z 10 | | . . . | | Z 16 ]
步骤8:将加密数据进行S盒变换,前64比特经过S1逆变换,后64比特经过S2逆变换;
步骤9:将解密数据与扩展密钥进行异或运算,扩展密钥为第N轮密钥,长为128比特;
步骤10:重复步骤4至步骤9一共3轮,最终产生明文输出。
6.如权利要求5所述的解密方法,其特征在于,所述步骤1中的密钥扩展方法和权利要求2所述的方法相同。
7.如权利要求6所述的解密方法,其特征在于,所述S盒为根据密钥即时构造生成的,其构造方法和权利要求3所述的方法相同,但在权利要求3所述步骤6)中设置标志位Flag为1。
CN2010105933929A 2010-12-17 2010-12-17 一种分组密码加解密方法 Expired - Fee Related CN102025484B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105933929A CN102025484B (zh) 2010-12-17 2010-12-17 一种分组密码加解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105933929A CN102025484B (zh) 2010-12-17 2010-12-17 一种分组密码加解密方法

Publications (2)

Publication Number Publication Date
CN102025484A true CN102025484A (zh) 2011-04-20
CN102025484B CN102025484B (zh) 2012-07-04

Family

ID=43866387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105933929A Expired - Fee Related CN102025484B (zh) 2010-12-17 2010-12-17 一种分组密码加解密方法

Country Status (1)

Country Link
CN (1) CN102025484B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN102801519A (zh) * 2012-07-10 2012-11-28 记忆科技(深圳)有限公司 一种实现aes加解密的方法及装置
CN103152165A (zh) * 2013-01-25 2013-06-12 西安电子科技大学 基于fpga的超高速aes处理器及其实现方法
CN103401680A (zh) * 2013-07-24 2013-11-20 大连理工大学 一种矩阵旋转移位数字加密方法
CN103493062A (zh) * 2011-04-29 2014-01-01 阿尔特拉公司 用于保护可编程器件的编程数据的方法和装置
CN103500294A (zh) * 2013-09-23 2014-01-08 北京荣之联科技股份有限公司 一种文件加解密方法和装置
CN103684749A (zh) * 2013-11-26 2014-03-26 衡阳师范学院 一种基于面积与性能平衡优化的klein加密实现方法
CN104104499A (zh) * 2014-07-28 2014-10-15 深圳宝嘉电子设备有限公司 数据传输方法、电子密码锁装置及其控制方法
CN104184579A (zh) * 2014-09-12 2014-12-03 南京航空航天大学 基于双伪随机变换的轻量级分组密码vh算法
CN104883257A (zh) * 2014-06-12 2015-09-02 梁庆生 一种大数据加密方法
CN104579646B (zh) * 2015-01-30 2015-12-30 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用的方法、装置和电路
WO2016045217A1 (zh) * 2014-09-23 2016-03-31 深圳市汇顶科技股份有限公司 加密方法和加密装置
CN105933106A (zh) * 2016-04-08 2016-09-07 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
CN107425963A (zh) * 2017-05-09 2017-12-01 上海众人网络安全技术有限公司 一种密码墙的构建方法及系统
CN107491699A (zh) * 2016-06-10 2017-12-19 波音公司 用于对数据编码的方法和系统
CN107864035A (zh) * 2017-10-13 2018-03-30 华南理工大学 一种实现在aes电路中基于功耗均衡编码的抗dpa攻击方法
CN107888374A (zh) * 2016-09-29 2018-04-06 北京忆芯科技有限公司 Xts‑aes加密/解密流水线
CN108123791A (zh) * 2017-12-26 2018-06-05 衡阳师范学院 一种轻量级分组密码scs的实现方法与装置
CN109802824A (zh) * 2018-12-03 2019-05-24 大唐微电子技术有限公司 一种移位处理的方法、装置、计算机存储介质及终端
CN110276208A (zh) * 2016-09-29 2019-09-24 北京忆芯科技有限公司 加密电路、解密电路及其方法
CN111478766A (zh) * 2020-01-21 2020-07-31 衡阳师范学院 一种分组密码meg实现方法、装置及存储介质
CN115441942A (zh) * 2022-11-09 2022-12-06 四川振函创新智能科技有限公司 一种工业测控终端加密环网系统及数据传输控制方法
EP2715544B1 (en) * 2011-06-03 2022-12-21 Exelis Inc. Method and system for embedded high performance reconfigurable firmware cipher
WO2023107005A3 (en) * 2021-12-09 2023-08-10 Agency For Science, Technology And Research Aes cryptographic system and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015178082A1 (ja) 2014-05-21 2015-11-26 富士電機株式会社 情報処理装置、プログラム、及び記録媒体

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1696601A1 (en) * 2005-02-28 2006-08-30 Bastien Chopard Symmetrical encryption method
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法
KR100969961B1 (ko) * 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
CN101882991A (zh) * 2009-05-06 2010-11-10 上海华虹集成电路有限责任公司 基于分组密码算法的通讯数据流加密方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1696601A1 (en) * 2005-02-28 2006-08-30 Bastien Chopard Symmetrical encryption method
KR100969961B1 (ko) * 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
CN101882991A (zh) * 2009-05-06 2010-11-10 上海华虹集成电路有限责任公司 基于分组密码算法的通讯数据流加密方法
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN102185692B (zh) * 2011-04-25 2012-07-04 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN103493062B (zh) * 2011-04-29 2017-04-19 阿尔特拉公司 用于保护可编程器件的编程数据的方法和装置
CN103493062A (zh) * 2011-04-29 2014-01-01 阿尔特拉公司 用于保护可编程器件的编程数据的方法和装置
EP2715544B1 (en) * 2011-06-03 2022-12-21 Exelis Inc. Method and system for embedded high performance reconfigurable firmware cipher
CN102801519A (zh) * 2012-07-10 2012-11-28 记忆科技(深圳)有限公司 一种实现aes加解密的方法及装置
CN103152165A (zh) * 2013-01-25 2013-06-12 西安电子科技大学 基于fpga的超高速aes处理器及其实现方法
CN103152165B (zh) * 2013-01-25 2016-01-20 西安电子科技大学 基于fpga的超高速aes处理器及其实现方法
CN103401680A (zh) * 2013-07-24 2013-11-20 大连理工大学 一种矩阵旋转移位数字加密方法
CN103401680B (zh) * 2013-07-24 2016-06-15 大连理工大学 一种矩阵旋转移位数字加密方法
CN103500294A (zh) * 2013-09-23 2014-01-08 北京荣之联科技股份有限公司 一种文件加解密方法和装置
CN103500294B (zh) * 2013-09-23 2016-03-23 北京荣之联科技股份有限公司 一种文件加解密方法和装置
CN103684749A (zh) * 2013-11-26 2014-03-26 衡阳师范学院 一种基于面积与性能平衡优化的klein加密实现方法
CN103684749B (zh) * 2013-11-26 2016-06-29 衡阳师范学院 一种基于面积与性能平衡优化的klein加密实现方法
CN104883257A (zh) * 2014-06-12 2015-09-02 梁庆生 一种大数据加密方法
CN104883257B (zh) * 2014-06-12 2018-05-25 梁庆生 一种大数据加密方法
CN104104499A (zh) * 2014-07-28 2014-10-15 深圳宝嘉电子设备有限公司 数据传输方法、电子密码锁装置及其控制方法
CN104104499B (zh) * 2014-07-28 2017-05-24 深圳宝嘉电子设备有限公司 数据传输方法、电子密码锁装置及其控制方法
CN104184579A (zh) * 2014-09-12 2014-12-03 南京航空航天大学 基于双伪随机变换的轻量级分组密码vh算法
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 深圳市汇顶科技股份有限公司 加密方法和加密装置
CN104579646B (zh) * 2015-01-30 2015-12-30 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用的方法、装置和电路
CN105933106A (zh) * 2016-04-08 2016-09-07 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
CN105933106B (zh) * 2016-04-08 2019-03-05 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
CN107491699B (zh) * 2016-06-10 2023-09-19 波音公司 用于对数据编码的方法和系统
CN107491699A (zh) * 2016-06-10 2017-12-19 波音公司 用于对数据编码的方法和系统
CN107888374A (zh) * 2016-09-29 2018-04-06 北京忆芯科技有限公司 Xts‑aes加密/解密流水线
CN110276208A (zh) * 2016-09-29 2019-09-24 北京忆芯科技有限公司 加密电路、解密电路及其方法
CN107425963A (zh) * 2017-05-09 2017-12-01 上海众人网络安全技术有限公司 一种密码墙的构建方法及系统
CN107864035B (zh) * 2017-10-13 2020-06-19 华南理工大学 一种实现在aes电路中基于功耗均衡编码的抗dpa攻击方法
CN107864035A (zh) * 2017-10-13 2018-03-30 华南理工大学 一种实现在aes电路中基于功耗均衡编码的抗dpa攻击方法
CN108123791A (zh) * 2017-12-26 2018-06-05 衡阳师范学院 一种轻量级分组密码scs的实现方法与装置
CN109802824A (zh) * 2018-12-03 2019-05-24 大唐微电子技术有限公司 一种移位处理的方法、装置、计算机存储介质及终端
CN111478766A (zh) * 2020-01-21 2020-07-31 衡阳师范学院 一种分组密码meg实现方法、装置及存储介质
WO2023107005A3 (en) * 2021-12-09 2023-08-10 Agency For Science, Technology And Research Aes cryptographic system and method
CN115441942A (zh) * 2022-11-09 2022-12-06 四川振函创新智能科技有限公司 一种工业测控终端加密环网系统及数据传输控制方法

Also Published As

Publication number Publication date
CN102025484B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102025484B (zh) 一种分组密码加解密方法
CN1921382B (zh) 一种基于aes算法的加解密方法及加解密器
CN101626289B (zh) Aes加密芯片的设计方法及电脑加密机
CN101034978B (zh) 用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN103051442B (zh) 采用Feistel-PG结构的密码装置及加密方法
CN103503362B (zh) 数据处理装置、数据处理方法以及程序
CN106034021B (zh) 轻量级双模兼容aes加解密模块及其方法
CN103634101A (zh) 加密处理方法及设备
CN110784307B (zh) 轻量级密码算法scenery实现方法、装置及存储介质
CN105959107A (zh) 一种新型高安全的轻量级sfn分组密码实现方法
CN101431405B (zh) Des加密方法及其硬件电路实现方法
Prakasam et al. An enhanced energy efficient lightweight cryptography method for various IoT devices
Shashidhar et al. Design of high speed AES system for efficient data encryption and decryption system using FPGA
CN103746796A (zh) 一种实现智能卡sm4密码算法的协处理器
CN111478766B (zh) 一种分组密码meg实现方法、装置及存储介质
CN106788976A (zh) 一种aes加解密电路仿真分析方法及装置
CN105049203A (zh) 一种支持多工作模式的可配置3des加解密算法电路
Bajaj et al. AES algorithm for encryption
CN101355423B (zh) 流密码生成方法
Mahantesh et al. Design of secured block ciphers present and hight algorithms and its fpga implementation
Praveen et al. Implementation of DES using pipelining concept with skew core key scheduling in secure transmission of images
Jun et al. A design and implementation of high-speed 3DES algorithm system
Drozd et al. The device of secure data transmission based on Magma crypto algorithm with implementation on FPGA
KR20060014420A (ko) 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20151217

EXPY Termination of patent right or utility model