Apró titkosítási algoritmus
A kriptográfiában a Tiny Encryption Algorithm ( TEA) egy blokk-rejtjelek algoritmusa , amely a leírás és a megvalósítás egyszerűségéről (általában néhány sornyi kódból) nevezetes. David Wheeler és Roger Needham , a Cambridge Computer Laboratory tervezte , és először 1994 -ben mutatták be a Fast Software Encryption Workshopon (Wheeler és Needham, 1994). Nem vonatkozik rá semmilyen szabadalom .
Tulajdonságok
A TEA 64 bites blokkon működik, és 128 bites kulcsot használ . Tartalmaz egy javasolt Feistel-hálózati struktúrát 64 körben, amelyeket általában párokban valósítanak meg, amelyeket ciklusoknak neveznek . Rendkívül egyszerű kulcsgenerációval rendelkezik, minden ciklushoz ugyanúgy keveri az összes kulcstartalmat. Egy mágikus állandó különböző többszöröseit használják a támadások megelőzésére a körök szimmetriája alapján.
A TEA-nak vannak gyengeségei. A legfigyelemreméltóbb az, hogy ekvivalens kulcsokkal rendelkezik: mindegyik kulcs három másik kulcsnak felel meg, és ez azt jelenti, hogy az effektív kulcshossz mindössze 126 bit (Kelsey et. al., 1996). Ez a gyengeség adott egy módszert a Microsoft Xbox konzoljának feltörésére , ahol az algoritmust hash függvényként használták . A TEA érzékeny a kapcsolódó kulcsú támadásokra is, amelyek 2 23 választott egyszerű szöveget igényelnek egy pár kapcsolódó kulcshoz, 2 32 kronológiai összetettséggel (Kelsey et. al., 1997).
E gyengeségek miatt a TEA néhány változatát tervezték, beleértve az XTEA -t is .
Hivatkozási kód
Az alábbiakban a titkosítási és visszafejtési rutinok adaptációja látható, amelyet David Wheeler és Roger Needham publikáltak:
void encrypt(unsigned long* v, unsigned long* k) {
előjel nélküli hosszú v0=v[0], v1=v[1], összeg=0, i; /* beállítás */
unsigned long delta=0x9e3779b9; /* egy kulcsütemezési állandó */
előjel nélküli hosszú k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* gyorsítótár kulcsa */
for (i=0; i < 32; i++) { /* alapvető ciklus indítása */
összeg += delta;
v0 += (v1<<4)+k0 ^ v1+összeg ^ (v1>>5)+k1;
v1 += (v0<<4)+k2 ^ v0+összeg ^ (v0>>5)+k3; /* end loop */
}
v[0]=v0; v[1]=v1;
}
void decrypt(unsigned long* v, unsigned long* k) {
előjel nélküli hosszú v0=v[0], v1=v[1], összeg=0xC6EF3720, i; /* beállítás */
unsigned long delta=0x9e3779b9; /* egy kulcsütemezési állandó */
előjel nélküli hosszú k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* gyorsítótár kulcs */
for(i=0; i<32; i++) { /* alapvető ciklus indítása */
v1 -= (v0 << 4)+k2 ^ v0+összeg ^ (v0 >> 5)+k3;
v0 -= (v1 << 4)+k0 ^ v1+összeg ^ (v1 >> 5)+k1;
összeg -= delta; /* end loop */
}
v[0]=v0; v[1]=v1;
}
Hivatkozások
- David J. Wheeler és Roger M. Needham. TEA, egy apró titkosítási algoritmus. In Bart Preneel, szerkesztő: Fast Software Encryption: Second International Workshop, Lecture Notes in Computer Science , 1008. kötet, 363–366. oldal, Leuven, Belgium, 1994. december 14–16.
- John Kelsey , Bruce Schneier és David Wagner . Az IDEA, G-DES, GOST, SAFER és Triple-DES kulcs-ütemezésű kriptoanalízise. Lecture Notes in Computer Science, 1109: 237–251, 1996.
- John Kelsey, Bruce Schneier és David Wagner. 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 és TEA kapcsolódó kulcsú kriptoanalízise . Lecture Notes in Computer Science, 1334: pp233–246, 1997.
- Julio César Hernández, Pedro Isasi és Arturo Ribagorda. Genetikai algoritmusok alkalmazása egy körös TEA kriptoanalízisére. A 2002. évi Mesterséges Intelligenciával és Alkalmazásával foglalkozó Szimpózium anyaga, 2002.
- Julio César Hernández, José María Sierra, Pedro Isasi és Arturo Ribargorda. Hatékony megkülönböztetők keresése kriptográfiai leképezésekhez a TEA blokk titkosító alkalmazással. In Proceedings of the 2003 Congress on Evolutionary Computation, 2003.
- Julio César Hernández, José María Sierra, Arturo Ribagorda, Benjamin Ramos és JC Mex-Perera. A TEA megkülönböztetése véletlenszerű permutációtól: A TEA redukált kerek változatai nem rendelkeznek SAC-val, vagy nem generálnak véletlen számokat. In Proceedings of the IMA Int. Conf. on Cryptography and Coding 2001, 374–377. oldal, 2001.
- Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee és Jongin Lim. A redukált kerek XTEA és TEA lehetetlen differenciális kriptoanalízise. Lecture Notes in Computer Science, 2365: 49-60, 2002. ISSN 0302-9743.
- Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee és Sangjin Lee. TEA és XTEA differenciál kriptoanalízise. In Proceedings of ICISC 2003, 2003b.
Külső linkek
- Az apró titkosítási algoritmus kriptoanalízise
- A TEA-t hirdető és különféle megvalósításokat kínáló weboldal
- Tesztvektorok a TEA-hoz
- Felmérés a TEA-ról és az XTEA-ról és ezek kriptoanalíziséről
- Az XXTEA JavaScript implementációja Base64-gyel
- A TEA JavaScript implementációja
- Az XTEA JavaScript és PHP implementációi (angol szöveg)
- Az XXTEA JavaScript és PHP implementációja