TEA(Tiny Encryption Algorithm)

2023-03-11,,

简介

TEA是一种简单高效的加解密算法,以速度快,实现简单著称。TEA算法每一次可以操作64-bit数据,采用128-bit作为key,算法采用迭代的形式,推荐的迭代轮数是64,最少32。

代码(默认32轮)

void encrypt(unsigned long *v, unsigned long *k) {
    unsigned long y=v[0], z=v[1], sum=0, i;           //set up

unsigned long delta=0x9e3779b9;                   // a key schedule constant
    unsigned long a=k[0], b=k[1], c=k[2], d=k[3];  // cache key

for (i=0; i < 32; i++) {                                 // basic cycle start
        sum += delta;
        y += ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
         z += ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);  // end cycle
    }

v[0]=y;
    v[1]=z;
}

void decrypt(unsigned long *v, unsigned long *k) {
    unsigned long y=v[0], z=v[1], sum=0xC6EF3720, i;  // set up

unsigned long delta=0x9e3779b9;    // a key schedule constant

unsigned long a=k[0], b=k[1], c=k[2], d=k[3];    // cache key

for(i=0; i<32; i++) {                            // basic cycle start
        z -= ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
        y -= ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
        sum -= delta;                                // end cycle
    }

v[0]=y;
    v[1]=z;
}

TEA(Tiny Encryption Algorithm)的相关教程结束。

《TEA(Tiny Encryption Algorithm).doc》

下载本文的Word格式文档,以方便收藏与打印。