当前位置: 首页 > 专利查询>南京大学专利>正文

一种轻量化Twofish加密算法加速器及其加速方法技术

技术编号:37998210 阅读:8 留言:0更新日期:2023-06-30 10:12
本发明专利技术提出了一种轻量化Twofish加密算法加速器及其加速方法,其中的主要的模块包括控制器模块、子密钥生成模块、轮运算模块和输入输出白化模块。本发明专利技术提出了实现S盒单元置换功能的高效硬件加速电路,并在每一轮运算中引入线性反馈移位寄存器随机选择S盒中的置换电路,从而提高加密过程的安全性;本发明专利技术提出的轮运算模块与扩展子秘钥生成单元这两个核心部分在硬件资源上高度共享,根据控制信号切换功能交替运行,因此资源利用较少,硬件实现规模小轻量化,能够良好地适应在SoC中的模块集成。成。成。

【技术实现步骤摘要】
一种轻量化Twofish加密算法加速器及其加速方法


[0001]本专利技术涉及一种轻量化Twofish加密算法的硬件加速器的设计,属于SoC(System on Chip)设计中加解密算法硬件实现和硬件加速器的


技术介绍

[0002]Twofish是一种对称加密算法,其块大小为128bit,密钥长度为256bit。它是NIST替换DES算法的高级加密标准(AES)算法的候选算法。在其诞生时对于大多数平台来说,128

bit keys的表现要比Rijndael要慢,但是在256

bit keys的表现要好于Rijndael加密算法。
[0003]Twofish算法以其良好的的快速加解密能力和优异的保密性和抗攻击性在数据加密和网络安全通信等方面得到了广泛的应用。在实际的应用系统中,通常和其他加密技术共同构成一个完整的加密体系。

技术实现思路

[0004]专利技术目的:提出一种轻量化Twofish加密算法的硬件加速器,以解决现有技术存在的上述问题,同时满足硬件加密模块在SoC中的轻量化集成需求。
[0005]技术方案:
[0006]一种轻量化Twofish加密算法加速器,包括:
[0007]轮运算模块,用于对明文进行加密,实现加密运算中的Feistel结构,在每次加密过程中重复运行直至满足预定轮次;
[0008]包含线性反馈移位寄存器、非线性S盒单元、最大距离可分矩阵乘法电路单元、模加法器、以及循环移位寄存器;
>[0009]线性反馈移位寄存器模块与非线性S盒单元信号连接,随机输出N位伪随机序列以供轮运算中模块随机选择对应的置换电路,N为自然数;
[0010]子密钥生成模块,包括子密钥S生成单元和扩展子密钥K生成单元,用于根据输入的初始密钥生成对应的密钥,并输出至非线性S盒单元;
[0011]白化模块,用于实现输入输出白化处理;
[0012]控制器模块,与所述子密钥生成模块和轮运算模块信号连接,用于对整个加密硬件系统进行调度与控制。
[0013]根据本申请的一个方面,所述控制器模块,接收外部输入的控制信号,负责对加密运行过程中轮运算模块和扩展子密钥K生成单元进行的轮次计数,当轮运算单元进行到预定轮次时发送结束信号;
[0014]所述控制器模块通过选通连接轮运算模块和扩展子密钥K生成单元公用部分的数据选择器,在不同的功能模式间切换,实现模块交替运行;
[0015]线性反馈移位寄存器的输出通过数据选择器与非线性S盒单元连接,根据产生序列的不同选通包含不同置换电路的非线性S盒,以增加在轮运算模块在每一轮运行时对于
模块非线性S盒选择上的随机性。
[0016]根据本申请的一个方面,所述非线性S盒单元包括8种结构不同的电路,每一非线性S盒单元由三个固定的置换电路构成,每个置换都有两种不同的电路可选取;
[0017]所述非线性S盒单元为两路并行,每个非线性S盒单元由4路分别包含3个q置换电路的结构组成,其内部的q置换电路的构成方式由线性反馈移位寄存器模块输出的伪随机序列决定;
[0018]所述q置换电路具有两种不同的类型;q置换电路由4组4bit输入4bit输出的ROM查找表、4组4bit异或电路、两组移位寄存器和两组循环移位寄存器构成;两种q置换电路都是8bit相同结构的固定置换,不同q置换电路对应的ROM查找表中使用的数据不同。
[0019]根据本申请的一个方面,所述模加法器由加法器和移位寄存器组成,所述加法器为第一路加法器和第二路加法器双路并行的32位三输入加法器,用于计算两路32位输入数据与扩展密钥之间的有限域运算,32位三输入加法器为不带进位的加法器;
[0020]所述32位三输入加法器的其中一路的输入为上下两路最大距离可分矩阵乘法电路计算输出结果和扩展子密钥,另一路三输入加法器的输入为矩阵乘法电路计算输出结果、经过移位寄存器左移一位的下路矩阵乘法计算结果和扩展子密钥;
[0021]第一路加法器的两个输入为两路位宽为32bit的最大距离可分矩阵乘法电路单元的输出,其三输入为受控制模块的信号控制的二选一的数据选择器;数据选择器的两个输入为0和该轮轮运算所需要用到的偶次序扩展子密钥;当控制信号通过数据选择器选通信号0时,加法器呈现为扩展子密钥生成单元的功能;当控制信号通过数据选择器选通偶次序扩展子密钥的信号时,加法器呈现为轮运算模块的功能;
[0022]所述第二路加法器的其一输入为位宽为32bit的第一路最大距离可分矩阵乘法电路单元的输出;其二输入为受控制模块信号控制的二选一的数据选择器,数据选择器两端分别为一组循环移位寄存器和移位寄存器;其三输入为受控制模块信号控制的二选一的数据选择器,数据选择器两端分别为信号0和该轮轮运算所需要的奇次序扩展子密钥,其内部的循环移位寄存器组对输入数据实现左移8位的循环移位功能,移位寄存器组对输入数据实现左移移位并在末位补零的功能;
[0023]对于第二路加法器中其一输入,当控制信号通过数据选择器选通循环移位寄存器组时,加法器呈现为扩展子密钥生成单元的功能;当控制信号通过数据选择器选通移位寄存器组时,加法器呈现为轮运算模块的功能;当控制信号通过数据选择器选通信号0时,加法器呈现为扩展子密钥生成单元的功能;当控制信号通过数据选择器选通奇次序扩展子密钥的信号时,加法器呈现为轮运算模块的功能;
[0024]对于第二路加法器,两个输出分别直接连接数据选择器和先连接循环移位寄存器组再连接数据选择器,当控制信号选通循环移位寄存器组时,加法器的输出结果呈现为扩展子密钥生成单元的输出;当控制信号直接选通加法器的输出时,输出结果呈现为轮运算模块的输出,输出所连接的循环移位寄存器组,实现对输入数据进行循环左移9位的移位功能。
[0025]根据本申请的一个方面,所述扩展子密钥生成单元与轮运算单元共同使用两路32位加法器,两路加法器的输入端分别具有一个和两个2选1的数据选择器,控制器模块通过控制信号选通不同的输入信号,来改变两路加法器的实际输入,使加法器呈现出轮运算模
块或子秘钥K生成单元的部分专用功能。
[0026]根据本申请的一个方面,所述子密钥S生成单元产生加密过程的16轮运算所需要用到的2组32bit的子密钥S;所述扩展子密钥K生成单元产生40组32bit的子密钥K。
[0027]根据本申请的一个方面,所述子密钥S生成单元包含8路并行的8位有限域乘法器,产生两组参与非线性S盒单元运算的子密钥;当轮运算模块处于运行状态时,两组子密钥与S盒单元中的中置换电路前两组输出结果进行异或运算。
[0028]根据本申请的一个方面,所述扩展子密钥K生成单元产生的40组密钥K用于在输入白化与输出白化阶段分别与明文数据和密文数据共同作为异或运算电路的输入;
[0029]生成的前8组32bit位宽的子密钥用于在输入输出白化模块中与需要处理的字数据进行异或;其产生的后32组位宽为32bit的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种轻量化Twofish加密算法加速器,其特征在于,包括:轮运算模块,用于对明文进行加密,实现加密运算中的Feistel结构,在每次加密过程中重复运行直至满足预定轮次;包含线性反馈移位寄存器、非线性S盒单元、最大距离可分矩阵乘法电路单元、模加法器、以及循环移位寄存器;线性反馈移位寄存器模块与非线性S盒单元信号连接,随机输出N位伪随机序列以供轮运算中模块随机选择对应的置换电路,N为自然数;子密钥生成模块,包括子密钥S生成单元和扩展子密钥K生成单元,用于根据输入的初始密钥生成对应的密钥,并输出至非线性S盒单元;白化模块,用于实现输入输出白化处理;控制器模块,与所述子密钥生成模块和轮运算模块信号连接,用于对整个加密硬件系统进行调度与控制。2.根据权利要求1所述的轻量化Twofish加密算法加速器,其特征在于,所述控制器模块,接收外部输入的控制信号,负责对加密运行过程中轮运算模块和扩展子密钥K生成单元进行的轮次计数,当轮运算单元进行到预定轮次时发送结束信号;所述控制器模块通过选通连接轮运算模块和扩展子密钥K生成单元公用部分的数据选择器,在不同的功能模式间切换,实现模块交替运行;线性反馈移位寄存器的输出通过数据选择器与非线性S盒单元连接,根据产生序列的不同选通包含不同置换电路的非线性S盒,以增加在轮运算模块在每一轮运行时对于模块非线性S盒选择上的随机性。3.根据权利要求1所述的轻量化Twofish加密算法加速器,其特征在于,所述非线性S盒单元包括8种结构不同的电路,每一非线性S盒单元由三个固定的置换电路构成,每个置换都有两种不同的电路可选取;所述非线性S盒单元为两路并行,每个非线性S盒单元由4路分别包含3个q置换电路的结构组成,其内部的q置换电路的构成方式由线性反馈移位寄存器模块输出的伪随机序列决定;所述q置换电路具有两种不同的类型;q置换电路由4组4bit输入4bit输出的ROM查找表、4组4bit异或电路、两组移位寄存器和两组循环移位寄存器构成;两种q置换电路都是8bit相同结构的固定置换,不同q置换电路对应的ROM查找表中使用的数据不同。4.根据权利要求1所述的轻量化Twofish加密算法加速器,其特征在于,所述模加法器由加法器和移位寄存器组成,所述加法器为第一路加法器和第二路加法器双路并行的32位三输入加法器,用于计算两路32位输入数据与扩展密钥之间的有限域运算,32位三输入加法器为不带进位的加法器;所述32位三输入加法器的其中一路的输入为上下两路最大距离可分矩阵乘法电路计算输出结果和扩展子密钥,另一路三输入加法器的输入为矩阵乘法电路计算输出结果、经过移位寄存器左移一位的下路矩阵乘法计算结果和扩展子密钥;第一路加法器的两个输入为两路位宽为32bit的最大距离可分矩阵乘法电路单元的输出,其三输入为受控制模块的信号控制的二选一的数据选择器;数据选择器的两个输入为0和该轮轮运算所需要用到的偶次序扩展子密钥;当控制信号通过数据选择器选通信号0时,
加法器呈现为扩展子密钥生成单元的功能;当控制信号通过数据选择器选通偶次序扩展子密钥的信号时,加法器呈现为轮运算模块的功能;所述第二路加法器的其一输入为位宽为32bit的第一路最大距离可分矩阵乘法电路单元的输出;其二输入为受控制模块信号控制的二选一的数据选择器,数据选择器两端分别为一组循环移位寄存器和移位寄存器;其三输...

【专利技术属性】
技术研发人员:李丽袁明铸傅玉祥王鑫宇洪婉源何书专李伟
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1