从密码学角度看TX常用的TEA加密算法

本文分析了腾讯(TX)在协议和本地数据中广泛使用的TEA加密算法,重点讨论了其对CBC模式的改进,包括加密轮数、随机数填充、SALT和校验字段的使用。尽管TEA算法的安全性已被破解,但在动态密钥的保护下,仍能满足部分加密需求。此外,文章还指出了TX算法在性能优化上的潜在问题,如字节对齐和字节序处理,以及异或操作的效率。
摘要由CSDN通过智能技术生成

免责声明:此文档的目的是为了分析TX常用的TEA算法,参考信息全部根据网上公开的资料,关键信息也做了过滤,不存在任何攻击和泄密。

TEA这个简单加密算法在中国如此有名,大概主要因为腾讯在大量协议,本地数据中使用这个算法。网上很多人甚至直接将TX的加密算法称为TEA算法。

TX的算法,数据分块的加密的确采用的是TEA(第一代)算法,密钥16个字节,每次处理的分块数据是8个字节(2个32位整数),但标准的TEA算法推荐处理的轮数是32轮甚至64轮,而腾讯使用的是16轮。应该是为了加快速度。

腾讯的加密算法,是于一个数据流(BUFFER)的处理,采用的的是改进CBC的算法(看见一片blog称这个是交织算法,很贴切)。你可以这样认为TEA这类对称加密算法是针ECB的(Electroniccodebook),是处理一个定长的数据块的。但如果如果对于流数据只采用ECB算法是有巨大风险的,因为对称加密算法的本质是相同的原文和密钥,得到的密文肯定一致,如果对于流数据,单纯的分块处理,很容易让人伪造密文数据(维基上都有人针对某个图片做ECB预算,对比原图和加密后的图像,你仍然可以从密文图片上看出很多信息)。CBC算法对于这个问题的改造是在密文前面加入一个随机数生成的初始化向量IV(Initialization Vector),通过ECB算法得到的密文半成品要和前一个密文,(包括IV)进行异或预算预算得到密文,因为随机数每次都不一致。这样你可以认为密文是永远不会重复的,而且这样伪造的难度大大提升。另外CBC的算法是在ECB的基础上的,所以如果你的长度不足以填充一个块&#

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值