返回信息流QQ中采用tea算法加密,其中tea算法有漏洞,可以攻击
请问有人对这方面有了解吗?
或者提供些有用的资料 网站。
谢谢
这是一条镜像帖。来源:北邮人论坛 / security / #26625同步于 2010/1/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Security机器人发帖
QQ:TEA算法和MD5算法
oscar
2010/1/8镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
TEA算法简介
TEA算法是由剑桥大学计算机实验室的 David Wheeler和 Roger Needham 于1994年发明. TEA是Tiny Encryption Algorithm的缩写。特点是加密速度极快,高速高效,但是抗差分攻击能力差。
TEA加密算法是一种分组密码算法,其明文密文块64比特(8字节),密钥长度128比特(16字节)。TEA加密算法的迭代次数可以改变,建议的迭代次数为32轮,
//Tiny Encryption Algorithm
//标准32轮TEA,它是存在攻击的。建议使用TEA的升级版本XXTEA
//注意,v是64bit,k是128bit,切勿用错。
void tea_encrypt(unsigned long* v, unsigned long* k)
{
unsigned long v0=v[0], v1=v[1], sum=0, i;
unsigned long delta=0×9e3779b9;
unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3];
for (i=0; i < 32; i++)
{
sum += delta;
v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
}
v[0]=v0; v[1]=v1;
}
void tea_decrypt(unsigned long* v, unsigned long* k)
{
unsigned long v0=v[0], v1=v[1], sum=0xC6EF3720, i;
unsigned long delta=0×9e3779b9;
unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3];
for(i=0; i<32; i++)
{
v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
sum -= delta;
}
v[0]=v0; v[1]=v1;
}
Tiny Encryption Algorithm 的C实现太短小了,太容易理解了。
QQ应该是16轮TEA,外加一堆前后xor的东西。
网上公开的算法大多有些问题。
【 在 Xsetc (Akira) 的大作中提到: 】
: //Tiny Encryption Algorithm
: //标准32轮TEA,它是存在攻击的。建议使用TEA的升级版本XXTEA
: //注意,v是64bit,k是128bit,切勿用错。
: ...................