Winziger Verschlüsselungsalgorithmus - Tiny Encryption Algorithm
Allgemeines | |
---|---|
Designer | Roger Needham , David Wheeler |
Erstmals veröffentlicht | 1994 |
Nachfolger | XTEA |
Verschlüsselungsdetail | |
Schlüsselgrößen | 128 Bit |
Blockgrößen | 64 Bit |
Struktur | Feistel-Netzwerk |
Runden | Variable; empfohlen 64 Feistel-Runden (32 Zyklen) |
Beste öffentliche Kryptoanalyse | |
TEA leidet unter äquivalenten Schlüsseln (siehe Text; Kelsey et al., 1996) und kann mit einem Related-Key-Angriff gebrochen werden , der 2 23 ausgewählte Klartexte und eine Zeitkomplexität von 2 32 erfordert . Die beste strukturelle Kryptoanalyse von TEA in der Standardeinstellung für einen einzelnen geheimen Schlüssel ist die Nullkorrelations-Kryptanalyse, die 21 Runden in 2 121,5 Mal mit weniger als dem vollständigen Codebuch durchbricht |
In der Kryptographie ist der Tiny Encryption Algorithm ( TEA ) eine Blockverschlüsselung, die sich durch ihre einfache Beschreibung und Implementierung auszeichnet, typischerweise einige Codezeilen. Es wurde von David Wheeler und Roger Needham vom Cambridge Computer Laboratory entworfen ; Es wurde erstmals 1994 auf dem Fast Software Encryption Workshop in Leuven vorgestellt und erstmals im Rahmen dieses Workshops veröffentlicht.
Die Chiffre unterliegt keinen Patenten .
Eigenschaften
TEA arbeitet mit zwei 32-Bit-Ganzzahlen ohne Vorzeichen (könnte von einem 64-Bit- Datenblock abgeleitet werden ) und verwendet einen 128-Bit- Schlüssel . Es hat eine Feistel-Struktur mit vorgeschlagenen 64 Runden, die typischerweise in Paaren implementiert werden, die als Zyklen bezeichnet werden . Es hat einen extrem einfachen Schlüsselplan , der das gesamte Schlüsselmaterial für jeden Zyklus genau gleich mischt. Verschiedene Vielfache einer magischen Konstante werden verwendet, um einfache Angriffe aufgrund der Symmetrie der Runden zu verhindern. Die magische Konstante 2654435769 oder 0x9E3779B9 wird als ⌊2 32 / ϕ ⌋ gewählt, wobei ϕ der Goldene Schnitt ist (als Nichts-auf-meine-Hülse-Zahl ).
TEA hat ein paar Schwächen. Vor allem leidet es unter gleichwertigen Schlüsseln – jeder Schlüssel entspricht drei anderen, was bedeutet, dass die effektive Schlüsselgröße nur 126 Bit beträgt . Dadurch ist TEA als kryptografische Hash-Funktion besonders schlecht . Diese Schwäche führte zu einer Methode zum Hacken der Xbox -Spielekonsole von Microsoft , bei der die Chiffre als Hash-Funktion verwendet wurde. TEA ist auch anfällig für einen Related-Key-Angriff, der 2 23 ausgewählte Klartexte unter einem Related-Key-Paar mit 2 32 Zeitkomplexität erfordert . Aufgrund dieser Schwächen wurde die XTEA- Chiffre entwickelt.
Versionen
Die erste veröffentlichte Version von TEA wurde durch eine zweite Version ergänzt, die Erweiterungen enthielt, um sie sicherer zu machen. Block TEA (der zusammen mit XTEA spezifiziert wurde ) arbeitet mit Blöcken beliebiger Größe anstelle der 64-Bit-Blöcke des Originals.
Eine dritte Version ( XXTEA ), die 1998 veröffentlicht wurde, beschrieb weitere Verbesserungen zur Erhöhung der Sicherheit des Block-TEA-Algorithmus.
Referenzcode
Es folgt eine Anpassung der Referenzverschlüsselungs- und -entschlüsselungsroutinen in C , die von David Wheeler und Roger Needham öffentlich zugänglich gemacht wurden:
#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;
}
Beachten Sie, dass die Referenzimplementierung auf numerische Mehrbytewerte wirkt. Das Originalpapier gibt nicht an, wie die Zahlen, auf die es reagiert, aus binären oder anderen Inhalten abzuleiten sind.
Siehe auch
- RC4 – Eine Stromchiffre , die wie TEA sehr einfach zu implementieren ist.
- XTEA – Erste Version des Nachfolgers von Block TEA.
- XXTEA – Der Nachfolger von Block TEA wurde korrigiert.
- Treyfer - Ein einfacher und kompakter Verschlüsselungsalgorithmus mit 64-Bit-Schlüsselgröße und Blockgröße.
Anmerkungen
- ^ Matthew D. Russell (27. Februar 2004). „Kleinheit: Ein Überblick über TEA und verwandte Chiffren“ . Archiviert vom Original am 12. August 2007.
- ^ a b Kelsey, John; Schneier, Bruce; Wagner, David (1997). Related-Key-Kryptanalyse von 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 und TEA . Skript zur Vorlesung Informatik . 1334 . S. 233–246. CiteSeerX 10.1.1.35.8112 . doi : 10.1007/BFb0028479 . ISBN 978-3-540-63696-0.
- ^ Bogdanow, Andrej; Wang, Meiqin (2012). Null-Korrelation Lineare Kryptoanalyse mit reduzierter Datenkomplexität (PDF) . Skript zur Vorlesung Informatik . 7549 . Fast Software Encryption 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, ein winziger Verschlüsselungsalgorithmus . Skript zur Vorlesung Informatik . 1008 . Leuven, Belgien: Schnelle Softwareverschlüsselung: Zweiter internationaler Workshop. S. 363–366. doi : 10.1007/3-540-60590-8_29 . ISBN 978-3-540-60590-4.
- ^ Kelsey, John; Schneier, Bruce; Wagner, David (1996). Schlüsselschema-Kryptanalyse von IDEA, G-DES, GOST, SAFER und Triple-DES (PDF) . Skript zur Vorlesung Informatik . 1109 . S. 237–251. doi : 10.1007/3-540-68697-5_19 . ISBN 978-3-540-61512-5.
- ^ Michael Steil. „17 Fehler, die Microsoft im Xbox-Sicherheitssystem gemacht hat“ . Archiviert vom Original am 16. April 2009.
Verweise
-
Andem, Vikram Reddy (2003). "Eine Kryptoanalyse des Tiny Encryption Algorithm, Masterarbeit" (PDF) . Tuscaloosa: Die Universität von Alabama. Cite Journal erfordert
|journal=
( Hilfe ) - Hernández, Julio César; Isasi, Pedro; Ribagorda, Arturo (2002). „Eine Anwendung genetischer Algorithmen auf die Kryptoanalyse eines runden TEA“ . Tagungsband des Symposiums 2002 über Künstliche Intelligenz und ihre Anwendung .
- Hernández, Julio César; Sierra, José Maria; Isasi, Pedro; Ribargorda, Arturo (2003). Finden effizienter Unterscheidungsmerkmale für kryptografische Abbildungen mit einer Anwendung auf die Blockchiffre TEA . Proceedings of the 2003 Congress on Evolutionary Computing . 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, Benjamin; Mex-Perera, JC (2001). Unterscheidung von TEA von einer zufälligen Permutation: Reduzierte Rundenversionen von TEA haben keinen SAC oder erzeugen keine Zufallszahlen (PDF) . Verfahren der IMA Int. Conf. Über Kryptographie und Codierung 2001 . Skript zur Vorlesung Informatik. 2260 . S. 374–377. doi : 10.1007/3-540-45325-3_34 . ISBN 978-3-540-43026-1. Archiviert vom Original (PDF) am 26.04.2012.
- Mond, Dukjae; Hwang, Kyungdeok; Lee, Wonil; Lee, Sangjin; Lim, Jongin (2002). Unmögliche differentielle Kryptoanalyse von reduziertem rundem XTEA und TEA (PDF) . Skript zur Vorlesung Informatik . 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). Differentielle Kryptoanalyse von TEA und XTEA . In Proceedings of ICISC 2003 . Skript zur Vorlesung Informatik. 2971 . S. 402–417. doi : 10.1007/978-3-540-24691-6_30 . ISBN 978-3-540-21376-5.
Externe Links
- Testvektoren für TEA
- JavaScript-Implementierung von XXTEA mit Base64
- PHP-Implementierung von XTEA (deutsche Sprache)
- JavaScript-Implementierung von XXTEA
- JavaScript- und PHP-Implementierungen von XTEA (niederländischer Text)
- AVR ASM-Implementierung
- SEA-skalierbarer Verschlüsselungsalgorithmus für kleine eingebettete Anwendungen (Standaert, Piret, Gershenfeld, Quisquater - Juli 2005 UCL Belgien & MIT USA)