简述TEA加密算法

摘要:
QQ是我们生活中常用到的一种即时社交工具,那么今天我们就来了解一种在QQ的数据传输协议中使用的对称加密算法——TEA加密算法。TEA加密算法TEA加密算法是一种分组密码算法,全称为"Tiny Encryption Algorithm" ,特点就是速度快,代码量小,但却拥有很强的抗差分分析能力,对 64 位数据加密的密钥长达 128 位,安全性相当好。TEA加密算法的原理TEA加密和解密时都使用一个常量值,这个常量值为0x9e3779b,这个值是近似黄金分割率。然后利用不断增加

QQ是我们生活中常用到的一种即时社交工具,那么今天我们就来了解一种在QQ的数据传输协议中使用的对称加密算法——TEA加密算法。

TEA加密算法

TEA加密算法是一种分组密码算法,全称为"Tiny Encryption Algorithm" ,特点就是速度快,代码量小,但却拥有很强的抗差分分析能力,对 64 位数据加密的密钥长达 128 位,安全性相当好。

TEA加密算法

TEA加密算法的原理

TEA加密和解密时都使用一个常量值,这个常量值为0x9e3779b,这个值是近似黄金分割率。然后利用不断增加的Delta(黄金分割率)值作为变化,使得每轮的加密是不同,该加密算法的迭代次数可以改变,建议的迭代次数为32轮。

TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。

TEA加密算法

TEA加密算法的演变

由于针对TEA加密算法的攻击不断出现,TEA也出现了很多版本的升级版。

  • XTEA

相比于TEA,XTEA算法的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点,增加了更多的密钥表,移位和异或操作等。

TEA加密算法

  • Block TEA

Block TEA算法可以对32位的任意整数倍长度的变量块进行加解密的操作,该算法将XTEA轮循函数依次应用于块中的每个字,并且将它附加于被应用字的邻字。

  • XXTEA

XXTEA使用跟Block TEA相似的结构,但在处理块中每个字时利用了相邻字,且用拥有两个输入量的MX函数代替了XTEA轮循函数。

TEA加密算法的优点

TEA采用与DES算法类似的Feistel结构,迭代的每次循环使用加法和移位操作,对明文和密钥进行扩散和混乱,实现明文的非线性变换。

TEA密钥长度和迭代次数都是DES的两倍,抗“试错法”攻击的强度不低于DES算法。算法以32bits的字为运算单位,而不是耗费计算能力的逐位运算。但并没有采用像DES那样的转换矩阵,所以TEA算法安全、高效、占用存储空间少,非常适合在嵌入式系统中应用。


免责声明:文章转载自《简述TEA加密算法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TargetMap|基于地图的数据统计制作平台Telegraph:一个只有写作界面的极简写作平台下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

单麦克风AI降噪模块及解决方案

前记   随着以AI为核心的智能设备的广泛发展,语音这个非常重要的入口一直是很多厂商争夺的市场。作为音频采集的前端设备,能采集到的距离远,清晰度高,无噪声的信号是一个非常重要的能力。这样就对音频前端降噪提出了新的需求,需要前端降噪更加智能化,更加深度化,更加低成本化。  面对市场的强劲需求和市场的不断变化,该团队在降噪算法领域经过多年的技术积累和沉淀,把降...

sws_getContext函数参数介绍

原型: SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat,...

OpenCV学习(13) 细化算法(1)

程序编码参考经典的细化或者骨架算法文章: T. Y. Zhang and C. Y. Suen, “A fast parallel algorithm for thinning digital patterns,” Comm. ACM, vol. 27, no. 3, pp. 236-239, 1984. 它的原理也很简单:       我们对一副二值图像...

2.5 整数和算法

2.5.1 引言   正如2.1节所说, 算法这一术语最初指的是用整数的十进制法表示的用法进行算术运算的过程。修改后能处理二进制表示的这些算法是计算机算术的基础。这些算法为理解算法这一概念及算法复杂度提供了很好的实例。因此本书将讨论这些算法。   除算术中常用的整数算法以外,还有许多涉及整数的算法,包括欧里几德算法,这是最有用的算法之一,很可能是数学中最古...

【高性能并行计算】——第四课 线性代数方程组的并行求解

    LU分解在本质上是高斯消元法的一种表达形式。实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm):从下至上地对矩阵A做初等行变换,将对角线左下方的元素变成零,然后再证明这些行变换的效果等同于左乘一系列单位下三角矩阵,这一系列单位下三角矩阵的乘积的逆就是L...

图论算法》关于匈牙利算法的两三事

  这是一篇简单的匈牙利算法的理解篇,首先匈牙利算法的名字听起来就和匈牙利牛肉饭一样让人产生食欲(?)233。   好的接下来我们开始正式带大家了解什么叫匈牙利算法。   那么要了解算法的基本原理,我们先看一张图 在这张图里,我们可以清楚的看出图上的点被我们分成了两种,一种是数字,另一种是字母,并且数字与数字、字母与字母之间是没有互相连接的边的,这种点被...