Lille krypteringsalgoritme - Tiny Encryption Algorithm
|
To Feistel-runder (en cyklus) af TEA
| |
| Generel | |
|---|---|
| Designere | Roger Needham , David Wheeler |
| Først offentliggjort | 1994 |
| Efterfølgere | XTEA |
| Krypteringsdetaljer | |
| Nøglestørrelser | 128 bit |
| Blokstørrelser | 64 bit |
| Struktur | Feistel-netværk |
| Runder | variabel; anbefalede 64 Feistel-runder (32 cyklusser) |
| Bedste offentlige kryptanalyse | |
| TEA lider af ækvivalente nøgler (se tekst; Kelsey et al., 1996) og kan brydes ved hjælp af et angreb med relateret nøgle, der kræver 2 23 valgte almindelige tekster og en tidskompleksitet på 2 32 . Den bedste strukturelle kryptanalyse af TEA i standardindstillingen for enkelt hemmelig nøgle er nul-korrelations-kryptanalyse, der bryder 21 runder på 2 121,5 tid med mindre end den fulde kodebog | |
I kryptografi er Tiny Encryption Algorithm ( TEA ) en blokciffer, der er kendt for sin enkelhed med beskrivelse og implementering , typisk et par kodelinjer. Det blev designet af David Wheeler og Roger Needham fra Cambridge Computer Laboratory ; det blev først præsenteret på Fast Software Encryption- værkstedet i Leuven i 1994 og først offentliggjort under proceduren for denne workshop.
Krypteringen er ikke underlagt nogen patenter .
Ejendomme
TEA fungerer på to 32-bit usignerede heltal (kan stamme fra en 64-bit datablok ) og bruger en 128-bit nøgle . Den har en Feistel-struktur med en foreslået 64 runder, typisk implementeret i par kaldet cykler . Det har en ekstremt enkel nøgleplan , der blander alt nøglemateriale på nøjagtig samme måde for hver cyklus. Forskellige multipla af en magisk konstant bruges til at forhindre enkle angreb baseret på symmetrien af runderne. Den magiske konstant, 2654435769 eller 0x9E3779B9 vælges til at være 322 32 / ϕ ⌋, hvor ϕ er det gyldne forhold (som intet-op-min-ærme-nummer ).
TEA har et par svagheder. Mest bemærkelsesværdigt lider den af ækvivalente nøgler - hver nøgle svarer til tre andre, hvilket betyder, at den effektive nøglestørrelse kun er 126 bit . Som et resultat er TEA især dårlig som en kryptografisk hash-funktion . Denne svaghed har ført til en metode til hacking Microsoft 's Xbox spillekonsol , hvor cipher blev brugt som en hash-funktion. TEA er også modtagelig for et angreb med relateret nøgle, som kræver 2 23 valgte almindelige tekster under et beslægtet nøglepar med 2 32 tidskompleksitet. På grund af disse svagheder blev XTEA- chiffer designet.
Versioner
Den første offentliggjorte version af TEA blev suppleret med en anden version, der indeholdt udvidelser for at gøre det mere sikkert. Blok TEA (som blev specificeret sammen med XTEA ) fungerer på blokke med vilkårlig størrelse i stedet for originalens 64-bit blokke.
En tredje version ( XXTEA ), der blev offentliggjort i 1998, beskrev yderligere forbedringer til forbedring af sikkerheden ved Block TEA-algoritmen.
Referencekode
Følgende er en tilpasning af referencekrypterings- og dekrypteringsrutiner i C , frigivet til det offentlige domæne af David Wheeler og Roger Needham:
#include <stdint.h>
void encrypt (uint32_t v[2], const uint32_t k[4]) {
uint32_t v0=v[0], v1=v[1], sum=0, i; /* set up */
uint32_t delta=0x9E3779B9; /* a key schedule constant */
uint32_t k0=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;
}
void decrypt (uint32_t v[2], const uint32_t k[4]) {
uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i; /* set up; sum is (delta << 5) & 0xFFFFFFFF */
uint32_t delta=0x9E3779B9; /* a key schedule constant */
uint32_t k0=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;
}
Bemærk, at referenceimplementeringen virker på numeriske værdier for flere byte. Det originale papir specificerer ikke, hvordan man kan udlede numrene, det handler på, fra binært eller andet indhold.
Se også
- RC4 - En streamcipher, der ligesom TEA er designet til at være meget enkel at implementere.
- XTEA - Første version af Block TEAs efterfølger.
- XXTEA - Korrigeret Block TEAs efterfølger.
- Treyfer - En enkel og kompakt krypteringsalgoritme med 64-bit nøglestørrelse og blokstørrelse.
Bemærkninger
- ^ Matthew D. Russell (27. februar 2004). "Tyndhed: En oversigt over TEA og relaterede cifre" . Arkiveret fra originalen den 12. august 2007.
- ^ a b Kelsey, John; Schneier, Bruce; Wagner, David (1997). Relateret nøgle-kryptanalyse af 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 og TEA . Forelæsningsnotater i datalogi . 1334 . s. 233-246. CiteSeerX 10.1.1.35.8112 . doi : 10.1007 / BFb0028479 . ISBN 978-3-540-63696-0.
- ^ Bogdanov, Andrey; Wang, Meiqin (2012). Nul-korrelation lineær kryptanalyse med reduceret datakompleksitet (PDF) . Forelæsningsnotater i datalogi . 7549 . Hurtig softwarekryptering 2012. s. 29–48. doi : 10.1007 / 978-3-642-34047-5_3 . ISBN 978-3-642-34046-8.
- ^ a b c Wheeler, David J .; Needham, Roger M. (1994-12-16). TEA, en lille krypteringsalgoritme . Forelæsningsnotater i datalogi . 1008 . Leuven, Belgien: Hurtig softwarekryptering: Andet internationalt værksted. s. 363–366. doi : 10.1007 / 3-540-60590-8_29 . ISBN 978-3-540-60590-4.
- ^ Kelsey, John; Schneier, Bruce; Wagner, David (1996). Nøgleplan kryptanalyse af IDEA, G-DES, GOST, SAFER og Triple-DES (PDF) . Forelæsningsnotater i datalogi . 1109 . s. 237-251. doi : 10.1007 / 3-540-68697-5_19 . ISBN 978-3-540-61512-5.
- ^ Michael Steil. "17 Fejl, Microsoft har lavet i Xbox-sikkerhedssystemet" . Arkiveret fra originalen den 16. april 2009.
Referencer
-
Andem, Vikram Reddy (2003). "En kryptanalyse af den lille krypteringsalgoritme, kandidatafhandling" (PDF) . Tuscaloosa: University of Alabama. Citer journal kræver
|journal=( hjælp ) - Hernández, Julio César; Isasi, Pedro; Ribagorda, Arturo (2002). "En anvendelse af genetiske algoritmer til kryptoanalysen af en rund TEA" . Procedurer fra 2002-symposiet om kunstig intelligens og dets anvendelse .
- Hernández, Julio César; Sierra, José María; Isasi, Pedro; Ribargorda, Arturo (2003). Finde effektive skillevægge til kryptografiske kortlægninger med en applikation til blokkrypteringen TEA . Forhandlingerne fra Kongressen om Evolutionær Beregning i 2003 . 3 . s. 2189–2193. doi : 10.1109 / CEC.2003.1299943 . HDL : 10016/3944 . ISBN 978-0-7803-7804-9. S2CID 62216777 .
- Hernández, Julio César; Sierra, José María; Ribagorda, Arturo; Ramos, Benjamín; Mex-Perera, JC (2001). At skelne mellem TEA og tilfældig permutation: Reducerede runde versioner af TEA har ikke SAC eller genererer ikke tilfældige tal (PDF) . Proceduren for IMA Int. Konf. Om kryptografi og kodning 2001 . Forelæsningsnotater i datalogi. 2260 . s. 374–377. doi : 10.1007 / 3-540-45325-3_34 . ISBN 978-3-540-43026-1. Arkiveret fra originalen (PDF) den 26.04.2012.
- Måne, Dukjae; Hwang, Kyungdeok; Lee, Wonil; Lee, Sangjin; Lim, Jongin (2002). Umulig differentiel kryptanalyse af reduceret runde XTEA og TEA (PDF) . Forelæsningsnotater i datalogi . 2365 . s. 49–60. doi : 10.1007 / 3-540-45661-9_4 . ISBN 978-3-540-44009-3.
- Hong, Seokhie; Hong, Deukjo; Ko, Youngdai; Chang, Donghoon; Lee, Wonil; Lee, Sangjin (2003). Differentiel kryptanalyse af TEA og XTEA . I Proceedings of ICISC 2003 . Forelæsningsnotater i datalogi. 2971 . s. 402–417. doi : 10.1007 / 978-3-540-24691-6_30 . ISBN 978-3-540-21376-5.
eksterne links
- Testvektorer til TEA
- JavaScript-implementering af XXTEA med Base64
- PHP implementering af XTEA (tysk sprog)
- JavaScript-implementering af XXTEA
- JavaScript og PHP implementeringer af XTEA (hollandsk tekst)
- AVR ASM implementering
- SEA skalerbar krypteringsalgoritme til små indlejrede applikationer (Standaert, Piret, Gershenfeld, Quisquater - juli 2005 UCL Belgien og MIT USA)
