TEA/XTEA/XXTEA系列算法zpchcbd

"TEA"的全称为"TinyEncryptionAlgorithm"是1994年由英国剑桥大学的Davidj.wheeler发明的。

TEA算法也算是一种微型加密算法的。

在安全学领域,TEA(TinyEncryptionAlgorithm)是一种分组加密算法,它的实现非常简单,通常只需要很精短的几行代码。

TEA算法使用64位的明文分组和128位的密钥,它使用Feistel分组加密框架,需要进行64轮迭代,但是作者认为32轮已经足够了,所以32轮迭代加密后最后得到的密文就是64位。

简单的说就是,TEA加密解密是以原文以8字节(64位bit)为一组,密钥16字节(128位bit)为一组,(char为1字节,int为4字节,double为8字节),该算法加密轮次可变,作者建议为32轮,因为被加密的明文为64位,所以最终加密的结果也是64位。

TEA算法的图解如下图所示

从图解中可以看到运算有加法运算,位运算,异或运算。

流程1:

1、首先TEA加密解密是以原文以8字节,所以从两边各自传入四个字节

2、右边传入的4个字节,这里将这4个字节称呼为M,M进行了三个部分的操作,M左移4位与密钥[0]相加,M右移5位与密钥[1]相加,M与δ相加,最后这三个算出的值再异或

3、左边传入的4个字节,这里将这4个字节称呼为N,N=N+M流程2:

接着就到了下面这个部分,这里的话M和N交换了位置,

2、右边传入的4个字节,N进行了三个部分的操作,N左移4位与密钥[2]相加,N右移5位与密钥[3]相加,N与δ相加,最后这三个算出的值再异或

3、左边传入的4个字节,M=M+N

4、此时拿到的M和N就是加密过后的M和N

1、tea算法的特征就是DELTA值和十六个字节的密钥(也就是128位)。

2、在逆向程序的时候,可以利用ida的插件findcypto识别tea算法

3、x-=0x61c88647和x+=0x9e3779b9,这两个值是等价的,可能会在反汇编中看到

这里将上面测试的代码编译好拖入IDA中进行观察

可以看到δ就被反编译为v4-=1640531527;

但是反汇编中就是0x9e3779b9,如下图所示

我们这里用findcypto插件来进行识别测试,0x9e3779b9特征码被识别,如下图所示

前面有提到关于"但δ的精确值似乎并不重要",所以δ的值不一定需要0x9E3779B9,所以这里的话在加密解密的时候可以改变这个δ的值,改了之后就会导致部分识别加密的工具失效来达到算法魔改的目的。

测试代码,改变其中的δ的值

这里将上面测试的代码编译好拖入IDA中进行观察,可以看到这个插件就无法识别出TEA算法了,因为改了0x9E3779B9特征码

每次处理64位数据,使用128位密钥。数据和密钥都分割成32为无符号整型处理。

不同点:TEA标准中使用的32轮加密,而腾讯只用了16轮。

可以看到其他都一样的,就是迭代次数为16次

#includevoidencrypt(uint32_t*v,uint32_t*k){uint32_tv0=v[0],v1=v[1],sum=0,i;/*setup*/uint32_tdelta=0x9e3779b9;/*akeyscheduleconstant*/uint32_tk0=k[0],k1=k[1],k2=k[2],k3=k[3];/*cachekey*/for(i=0;i<16;i++){/*basiccyclestart*/sum+=delta;v0+=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);v1+=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);}/*endcycle*/v[0]=v0;v[1]=v1;}voiddecrypt(uint32_t*v,uint32_t*k){uint32_tv0=v[0],v1=v[1],i;/*setup*/uint32_tdelta=0x9e3779b9;/*akeyscheduleconstant*/uint32_tsum=delta<<4;uint32_tk0=k[0],k1=k[1],k2=k[2],k3=k[3];/*cachekey*/for(i=0;i<16;i++){/*basiccyclestart*/v1-=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);v0-=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);sum-=delta;}/*endcycle*/v[0]=v0;v[1]=v1;}XTEA算法XTEA算法介绍XTEA算法也被称作为CorrectedBlockTEA

XTEA是TEA的升级版,增加了更多的密钥表,移位和异或操作等等,设计者是RogerNeedham,DavidWheeler

之后TEA算法被发现存在缺陷,作为回应,设计者提出了一个TEA的升级版本——XTEA(有时也被称为"tean")。XTEA跟TEA使用了相同的简单运算,但它采用了截然不同的顺序,为了阻止密钥表攻击,四个子密钥(在加密过程中,原128位的密钥被拆分为4个32位的子密钥)采用了一种不太正规的方式进行混合,但速度更慢了。

THE END
1.LeetCode热题HOT100(java算法)实时更新未完设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例1: 输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, https://www.ctyun.cn/zhishi/p-444954
2.51c大模型~合集91qq6669490e54384的技术博客这能够结合不同偏好优化算法训练的模型的优点。例如,apple发现利用反例的算法(例如在线 RLHF、DPO、IPO)可以提高数学推理技能,而拒绝采样 RS 可以有效学习指令遵循和写作技能。 Scaling up distillation。对于较大的模型,仔细迭代数据质量和模型质量比数量更重要。对于较小的模型,扩大蒸馏提示数量,可以实现小模型巨大的https://blog.51cto.com/whaosoft/12848734
3.MindSporeTypeError-total_step或step_per_epoch或decay_epoch不是int。 TypeError-is_stair不是bool。 TypeError-learning_rate或decay_rate不是float。 ValueError-learning_rate或decay_rate小于等于0。 支持平台: AscendGPUCPU 样例: >>>importmindspore.nnasnn>>>learning_rate=0.1>>>decay_rate=0.9>>>total_step=6>>https://www.mindspore.cn/docs/zh-CN/r1.7/api_python/nn/mindspore.nn.exponential_decay_lr.html
4.林林宋? 输入格式:“language关键字+文本”首先过transformer-AutoTokenizer按照letter进行编码;编码序列送入charsiug2p模型(T5ForConditionalGeneration)? 输出格式:输出也是来源于发音词典 & g2p 模型预测结果两个部分。 2023-12-06 14:04:37228 原创【meta-mms-tts+uroma encoding】Scaling Speech Technology to 1,https://m.blog.csdn.net/qq_40168949
5.TEA算法加密/解密在线工具TEA算法加密/解密在线工具 技术标签:TEA算法加密/解密TEA算法TEA加密 查看原文 加密解密工具 之 波利比奥斯方阵密码 波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便https://www.pianshen.com/article/5477961997/
6.3D计算机视觉系统的高精度摄象机定标算法—DLTEAⅡ(如何获取全文?欢迎:购买知网充值卡、在线充值、在线咨询) CAJViewer阅读器支持CAJ、PDF文件格式,AdobeReader仅支持PDF格式 【相似文献】 中国期刊全文数据库前30条 1范洪,袁保宗3-D计算机视觉系统的高精度摄象机定标算法—DLTEAⅡ[J];电子学报;1992年11期 https://www.cnki.com.cn/Article/CJFDTotal-DZXU199211002.htm
7.TEA系列算法101安全客算法也是一个不断演进的过程,从TEA,XTEA,即便是XXTEA依然也被提出存在选择明文攻击的可能。安全是一个不断攻防的过程,并且每一个方面都可能称为切入点,这点从Xbox被破解这件事情上也能看的出来。 参考链接 Wiki TEA Wiki XTEA Wiki XXTEA Wiki-Tiny_Encryption_Algorithm https://www.anquanke.com/post/id/224198
8.tea加密解密算法TEA_DELTA 是 TEA 算法中使用的常量值,其选择是为了增加加密的安全性和混淆性。在 TEA 算法中,TEA_DELTA 的值是 0x9e3779b9,这个值被广泛接受并在实践中使用。 TEA_DELTA 值的选取是基于一些数学性质和经验规则,它能够提供一定程度的安全性。改变 TEA_DELTA 的值可能会影响加密算法的性能和安全性。 https://www.jianshu.com/p/640a52b805ae
9.TEA加密算法的C/C++实现#antTEA加密算法的C/C++实现 TEA(Tiny Encryption Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称。算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。目前我只知道QQ一直用的是16轮TEA。没什么好说的,http://www.cppblog.com/ant/archive/2007/10/12/31326.aspx
10.c++代码实现tea加密算法的实例详解C语言这篇文章主要介绍了c++代码实现tea加密算法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 通过c++来实现tea加密算法,最终编译成so文件,以JNI的方式提供给https://www.jb51.net/article/184495.htm
11.数据的加密传输——单片机上实现TEA加密解密算法数据的加密传输——单片机上实现TEA加密解密算法,点击数:4544 【楼主位】nilxy 积分:36 派别: 等级:--- 来自:南国 各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性。常用的加密解密算法比如DES、RSA等,受限于单片机的内存和运算http://www.360doc.com/content/11/0927/18/7503466_151678625.shtml
12.TEA加密算法Java实现最近在使用Java实现QQ的基本通讯协议,QQ的通讯协议中使用MD5算法两次加密密码,并将通讯中的所有数据包使用TEA算法进行加密。MD5加密可以通过Java API提供的MessageDigest直接进行,而TEA加密则需自己编写。 TEA加密每次使用128bit密钥加密64bit数据,生成加密数据亦为64bit,为典型的对称加密算法。该算法使用C语言实现非常简单https://www.iteye.com/blog/zzhangyx-1560966
13.python的TEA加解密算法整合hawkli在网友bingo的帮助下,找到了可以在python下使用的TEA加解密算法,同时我查了一下,这个算法是MIT授权,简单来说就是随便用随便改。 经过测试,这个算法是线程安全的,这样我终于能解决我的程序中令人头疼的加解密问题了。 我把整个加解密算法打包到一个类中,如果有谁要用,引用起来很方便,直接抄我的代码就行了。 http://blog.chinaunix.net/uid-324919-id-135731.html
14.有没有专门做艺术的网站/潍坊百度关键词优化如果需要将运算分组,可以使用圆括号。如果愿意的话,可以使用let和declare在一行中为多个变量赋值。如果希望在一个算术表达式中使用一个变量值,则不需要在变量名前使用$,但是,如果您愿意的话,也可以这么做。 清单 2给出了 bash 中的更多算法例子。 清单2. 更多算术赋值例子http://www.flsr.cn/news/1218277.html
15.密码学一文读懂XTEA加密本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。https://developer.aliyun.com/article/952907
16.XTea加密算法用AS3实现的结果与C语言的结果不同——原因分析一个AIR应用程序使用了XTea算法生成授权码,AIR就跟Flash差不多,使用的脚本语言叫AS3 为了写个对应的https://www.52pojie.cn/forum.php?mod=viewthread&tid=1963507
17.SYT6098免费在线预览全文 ICS75.180.99 E 10 备爽号 :8205-2001 中华人民共和国石油天然气行业标准 SY广T6098- 2000 天然气可采储量计算方法 Theestimatedmethodsofnaturalgasrecoverablereserves 2000一12一25发布 2001一06一01实施 国家石油和化学工业局 发布 SY/T 6098- 2000 目 次 前言 … W 1 范围 2 引用标准https://max.book118.com/html/2019/0408/8034132007002016.shtm
18.SSL在线工具Xtea在线加解密Xteaencryption在线Xtea加解密,Xtea是微型加密算法(Tea)的变种,使用128位的密钥为64位的信息块进行加密,进行 64 轮迭代;可自定义密钥、偏移量,支持CBC、ECB等5种加解密模式,ZeroPadding、Pkcs5Padding等5种填充模式。首页 SSL工具 XTEA加解密 字符集 * 密码* 偏移量 * 模式* 填充* 编码* 加密 解密 https://www.ssleye.com/ssltool/xtea_cipher.html