【技术实现步骤摘要】
一种轻量化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加密算法的硬件加速器,以解决现有技术存在的上述问题,同时满足硬 ...
【技术保护点】
【技术特征摘要】
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的第一路最大距离可分矩阵乘法电路单元的输出;其二输入为受控制模块信号控制的二选一的数据选择器,数据选择器两端分别为一组循环移位寄存器和移位寄存器;其三输...
【专利技术属性】
技术研发人员:李丽,袁明铸,傅玉祥,王鑫宇,洪婉源,何书专,李伟,
申请(专利权)人:南京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。