voidencrypt(unsignedlongv[2],unsignedlongk[4]){unsignedlongv0=v[0],v1=v[1],sum=0,i;/* set up */unsignedlongdelta=0x9E3779B9;/* a key schedule constant */unsignedlongk0=k[0],k1=k[1],k2=k[2],k3=k[3];/* cache key */for(i=0;i<32;i++){/* basic cycle start */sum+=delta;v0+=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);v1+=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);/* end cycle */}v[0]=v0;v[1]=v1;}voiddecrypt(unsignedlongv[2],unsignedlongk[4]){unsignedlongv0=v[0],v1=v[1],sum=0xC6EF3720,i;/* set up; sum is 32*delta */unsignedlongdelta=0x9E3779B9;/* a key schedule constant */unsignedlongk0=k[0],k1=k[1],k2=k[2],k3=k[3];/* cache key */for(i=0;i<32;i++){/* basic cycle start */v1-=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);v0-=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);sum-=delta;/* end cycle */}v[0]=v0;v[1]=v1;}
Konstanta má zabránit jednoduchým útokům na jednoduchost rund. Šifra má totiž velmi jednoduché rundovní klíče, kdy se ve všech rundách se používá stejný úvodní klíč.
Bezpečnost
TEA má několik slabin. Především ke každému klíči patří tři další klíče vytvářející stejný šifrový text, faktický prostor klíčů tak odpovídá jen 126 bitům. Navíc to oslabuje vlastnosti TEA pro použití jako kryptografické hašovací funkce, což bylo i historicky použito pro útok na systémy Xbox, které takto šifru TEA využívaly.