【TEA算法】基于FPGA的TEA算法的实现

1.软件版本

MATLAB2013b,quartusii12.1

2.本算法理论知识

标准的TEA算法使用64位的明文分组和128位的密钥,它使用Feistel分组加密框架,至少 32 轮的加密循环次数。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值并不重要,通常情况下,TEA 算法把它定义为

0x 9e3779b9(16进制数)。TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作为key,算法采用迭代的形式。

这里TEA算法的基本结构框图如下图所示:

 

 

 

在上面的加密和解密过程中:

X+sum表示X和sum相加;

A^B表示A和B做异或处理;

A<<K,表示将数值A按二进制左移4位;

A>>K,表示将数值A按二进制右移4位;

这里,分别设计到加法计算单元,异或计算单元和移位计算单元。

3.部分核心代码

    ·TEA加密算法的VHDL实现        

        加密部分,其VHDL代码如下所示:

 

 4.操作步骤与仿真结论

 

 

 

 

 

 

5.参考文献

[01]Andem, Vikram Reddy(2003).A Cryptanalysis of the Tiny Encryption Algorithm, Masters thesis.Tuscaloosa:The University of Alabama.

http://home.uchicago.edu/~andem/Vikram_Andem.pdf.

[02]Hernández, Julio César; Isasi, Pedro; Ribagorda,Arturo(2002)."An application of genetic algorithms to the cryptoanalysis of one round TEA". Proceedings of the 2002 Symposium on Artificial Intelligence and its Application.

http://www.actapress.com/PDFViewer.aspx?paperId=26972.

[03]Hernández, Julio César;Sierra,JoséMaría;Isasi,Pedro;Ribargorda.Arturo(2003)."Finding efficient distinguishers for cryptographic mappings, with an application to the block cipher TEA". Proceedings of the 2003 Congress on Evolutionary Computation 3:2189.doi:10.1109 /CEC.

http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1299943.A28-31

posted @ 2022-12-24 23:15  fpga和matlab  阅读(45)  评论(0编辑  收藏  举报