Khalil Shreateh specializes in cybersecurity, particularly as a "white hat" hacker. He focuses on identifying and reporting security vulnerabilities in software and online platforms, with notable expertise in web application security. His most prominent work includes discovering a critical flaw in Facebook's system in 2013. Additionally, he develops free social media tools and browser extensions, contributing to digital security and user accessibility.

Get Rid of Ads!


Subscribe now for only $3 a month and enjoy an ad-free experience.

Contact us at khalil@khalil-shreateh.com

 

 

Tiny Encryption Algorithm
Tiny Encryption Algorithm
The Tiny Encryption Algorithm (TEA) is a 64-bit block cipher, The Tiny Encryption Algorithm (TEA) is a 64-bit block cipher, developed by David Wheeler and Roger Needham. It uses a 128-bit key and is renowned for its simplicity and compact implementation.

TEA employs a Feistel-like structure, typically running for 64 rounds (32 pairs). Its operations are limited to additions, XORs, and shifts, avoiding complex S-boxes or multiplications. This design makes it exceptionally fast and suitable for resource-constrained environments. A unique "magic constant" (delta) is incorporated to prevent simple attacks.

While efficient, TEA was later found vulnerable to related-key attacks, prompting the creation of improved versions like XTEA and XXTEA.

TEA

The Tiny Encryption Algorithm, or TEA, is a Feistel cipher invented by David Wheeler. It is intended for
use in applications where code size is at a premium, or where it is necessary for someone to remember the
algorithm and code it on an arbitrary machine at a later time.

The round function is based on a shift and add operation, with the carry bit providing the nonlinearity. The
golden ratio $\frac{\sqrt{5}-1}{2}$ is added in every second round to prevent chosen plaintext attacks
(can you see why?). The official specification is given in C and is:


void code(long* v, long* k)
{
unsigned long y=v[0],z=v[1],sum=0, /* set up */
delta=0x9e3779b9, n=32 ; /* key schedule constant*/

while (n-->0)
{ /* basic cycle start */
sum += delta;
y += (z<<4)+k[0] ^ z+sum ^ (z>>5)+k[1];
z += (y<<4)+k[2] ^ y+sum ^ (y>>5)+k[3]; /* end cycle */
}
v[0]=y; v[1]=z;

}

Since its round function is relatively weak, with nonlinearity coming only from the carry propagation, TEA
has 64 rounds. However, its simplicity means that it runs more quickly in software than many other
algorithms with fewer, more complex, rounds.
Social Media Share