首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OS上实现微加密算法

在OS上实现微加密算法
EN

Stack Overflow用户
提问于 2014-03-16 06:31:45
回答 1查看 859关注 0票数 0

我正在完成Stroustrup的“编程:使用C++的原则和实践”中的练习。在第25章中,他介绍了微型加密算法(TEA)。他和网站上的一些文件声称,它没有被破坏,考虑到代码是多么的短,这似乎“太好了,不可能是真的!”

注意,我必须将long变量更改为int变量,因为位移位设计为在具有sizeof(var) = 4的系统上实现。

OS实现的长度为8字节类型,因此如果不进行此更改,Stroustrup的代码将无法工作。

有人能推荐其他一些琐碎的改进措施,使TEA在OS上运行更高效和/或更好的安全性吗?

代码语言:javascript
复制
void encipher(
    const unsigned int* const v,
    unsigned int* const w,
    const unsigned int* const k
    )
{
    unsigned int y = v[0];
    unsigned int z = v[1];
    unsigned int sum = 0;
    unsigned int delta = 0x9E3779B9;
    unsigned int n = 32;

    while(n-- > 0) {
        y += (z << 4 ^ z >> 5) + z ^ sum + k[sum & 3];
        sum += delta;
        z += (y << 4 ^ y >> 5) + y ^ sum + k[sum>>11 & 3];
    }
    w[0]=y;
    w[1]=z;
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-16 07:11:49

维基百科 (来吧,伙计,谷歌!)

茶有几个弱点。最值得注意的是,它存在相同的密钥--每个密钥相当于另外三个密钥,这意味着有效密钥大小仅为126位。因此,TEA作为加密哈希函数尤其糟糕。这一弱点导致了一种攻击微软Xbox游戏控制台的方法,在Xbox游戏机中,密码被用作哈希函数。TEA也容易受到相关密钥攻击的影响,这种攻击需要在相关密钥对下选择2^23个明文,时间复杂度为2^32。针对这些缺点,设计了XTEA密码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22433734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档