<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Extended_Tiny_Encryption_Algorithm</id>
	<title>Extended Tiny Encryption Algorithm - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Extended_Tiny_Encryption_Algorithm"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Extended_Tiny_Encryption_Algorithm&amp;action=history"/>
	<updated>2026-05-15T18:06:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Extended_Tiny_Encryption_Algorithm&amp;diff=1055691&amp;oldid=prev</id>
		<title>imported&gt;Schreibknecht1312: /* growthexperiments-addlink-summary-summary:2|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Extended_Tiny_Encryption_Algorithm&amp;diff=1055691&amp;oldid=prev"/>
		<updated>2025-04-23T09:01:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:2|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Blockchiffre&lt;br /&gt;
| name           = XTEA&lt;br /&gt;
| bild           = XTEA InfoBox Diagram.svg&lt;br /&gt;
| bildname       = Zwei Feistel-Runden (ein Zyklus) von XTEA&lt;br /&gt;
| entwickler     = [[Roger Needham]], [[David Wheeler]]&lt;br /&gt;
| datum          = 1997&lt;br /&gt;
| abgeleitet     = [[Tiny Encryption Algorithm|TEA]]&lt;br /&gt;
| schlüssellänge = 128 Bit&lt;br /&gt;
| blockgröße     = 64 Bit&lt;br /&gt;
| struktur       = [[Feistelchiffre]]&lt;br /&gt;
| runden         = variabel, 64 Feistelrunden (32 Zyklen) empfohlen&lt;br /&gt;
| kryptoanalyse  = Stand 2009 können bis zu 36 Feistelrunden erfolgreich angegriffen werden.&lt;br /&gt;
}}&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;XTEA&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;tended &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;iny &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;ncryption [[Algorithmus|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;lgorithm]]&amp;#039;&amp;#039;) ist eine [[Blockchiffre]], die als Verbesserung der Blockchiffre [[Tiny Encryption Algorithm|TEA]] entwickelt wurde. XTEA ist wie TEA bekannt für ihre einfache Beschreibung und Implementierung. Der Code als C-Programm umfasst nur einige Zeilen. XTEA wurde von [[David Wheeler]] und [[Roger Needham]] an der [[Universität Cambridge]] im Jahr 1997 entwickelt. XTEA ist wie auch sein Vorgänger TEA frei von Patenten.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
XTEA ist eine [[Feistelchiffre]] mit 64&amp;amp;nbsp;[[Bit]] großen Datenblöcken und einem 128&amp;amp;nbsp;Bit langen Schlüssel. In der Regel werden 64 Runden = 32 Zyklen berechnet (empfohlener Wert, kann auch geändert werden). Der Mechanismus zur Erzeugung der Rundenschlüssel ist sehr einfach gehalten. Das Einbringen eines sogenannten Deltas, das wie bei TEA als &amp;lt;math&amp;gt;\lfloor (\sqrt{5}-1) \cdot 2^{31} \rfloor&amp;lt;/math&amp;gt; definiert ist, verhindert einen Angriff, der die Symmetrie der einzelnen Runden ausnutzt. Allerdings wird bei XTEA das Delta anders in die Runde eingebracht, was hauptsächlich die Stärkung der Verschlüsselung bewirkt.&lt;br /&gt;
&lt;br /&gt;
2009 präsentierte Jiqiang Lu einen &amp;#039;&amp;#039;Related-key rectangle attack&amp;#039;&amp;#039; auf 36 Runden.&amp;lt;ref&amp;gt;Jiqiang Lu: &amp;#039;&amp;#039;Related-key rectangle attack on 36 rounds of the XTEA block cipher&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;International Journal of Information Security&amp;#039;&amp;#039;, February 2009, S.&amp;amp;nbsp;1–11, Springer-Verlag.&amp;lt;/ref&amp;gt; Dieser Angriff betrifft bis zum Stand 2015 die höchste Rundenanzahl.&lt;br /&gt;
Andrey Bogdanov und Meiqin Wang stellten 2012 außerdem eine &amp;#039;&amp;#039;Zero correlation linear cryptanalysis&amp;#039;&amp;#039; auf 27 Runden XTEA vor.&amp;lt;ref&amp;gt;Andrey Bogdanov und Meiqin Wang: &amp;#039;&amp;#039;Zero correlation linear cryptanalysis with reduced data complexity&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Proceedings of FSE 2012&amp;#039;&amp;#039;, S.&amp;amp;nbsp;29–48, Springer-Verlag.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referenzcode ==&lt;br /&gt;
Es folgt die Adaptierung der [[Referenzimplementierung]] der Ver- und Entschlüsselungsroutinen in [[C (Programmiersprache)|C]], die als [[Public Domain]] von David Wheeler und Roger Needham veröffentlicht wurde:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* gegeben sind 64 Datenbits in v[0] und v[1] und 128 Schlüsselbits in k[0] bis k[3] */&lt;br /&gt;
/* Die Daten werden mit 2 * num_cycles Runden verschlüsselt */&lt;br /&gt;
&lt;br /&gt;
void encipher (unsigned int num_cycles, uint32_t v[2], uint32_t const k[4]) {&lt;br /&gt;
    unsigned int i;&lt;br /&gt;
    const uint32_t delta = 0x9E3779B9;&lt;br /&gt;
    uint32_t v0 = v[0], v1 = v[1], sum = 0;&lt;br /&gt;
    for (i=0; i &amp;lt; num_cycles; i++) {&lt;br /&gt;
        v0 += (((v1 &amp;lt;&amp;lt; 4) ^ (v1 &amp;gt;&amp;gt; 5)) + v1) ^ (sum + k[sum &amp;amp; 3]);&lt;br /&gt;
        sum += delta;&lt;br /&gt;
        v1 += (((v0 &amp;lt;&amp;lt; 4) ^ (v0 &amp;gt;&amp;gt; 5)) + v0) ^ (sum + k[(sum&amp;gt;&amp;gt;11) &amp;amp; 3]);&lt;br /&gt;
    }&lt;br /&gt;
    v[0] = v0; v[1] = v1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void decipher (unsigned int num_cycles, uint32_t v[2], uint32_t const k[4]) {&lt;br /&gt;
    unsigned int i;&lt;br /&gt;
    const uint32_t delta = 0x9E3779B9;&lt;br /&gt;
    uint32_t v0 = v[0], v1 = v[1], sum = delta * num_cycles;&lt;br /&gt;
    for (i=0; i &amp;lt; num_cycles; i++) {&lt;br /&gt;
        v1 -= (((v0 &amp;lt;&amp;lt; 4) ^ (v0 &amp;gt;&amp;gt; 5)) + v0) ^ (sum + k[(sum&amp;gt;&amp;gt;11) &amp;amp; 3]);&lt;br /&gt;
        sum -= delta;&lt;br /&gt;
        v0 -= (((v1 &amp;lt;&amp;lt; 4) ^ (v1 &amp;gt;&amp;gt; 5)) + v1) ^ (sum + k[sum &amp;amp; 3]);&lt;br /&gt;
    }&lt;br /&gt;
    v[0] = v0; v[1] = v1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Adaptierung zur Originalimplementierung betreffend kleinere Randpunkte:&lt;br /&gt;
* Die Originalimplementierung verwendet die Typen &amp;lt;code&amp;gt;unsigned long&amp;lt;/code&amp;gt; statt der [[64-bit]]-tauglichen &amp;lt;code&amp;gt;uint32_t&amp;lt;/code&amp;gt; Typen.&lt;br /&gt;
* Der Originalcode verwendete keine &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; Typen.&lt;br /&gt;
* Der Originalcode vermeidet redundante Klammerungen, was die Lesbarkeit des Codes reduziert.&lt;br /&gt;
&lt;br /&gt;
== XXTEA ==&lt;br /&gt;
XXTEA oder &amp;#039;&amp;#039;Extended XTEA&amp;#039;&amp;#039; ist eine 1998 ebenfalls von Wheeler und Needham vorgestellte verbesserte Version von XTEA.&amp;lt;ref name=&amp;quot;XXTEA&amp;quot;&amp;gt;{{Internetquelle |autor=David J. Wheeler, Roger M. Needham |url=https://www.movable-type.co.uk/scripts/xxtea.pdf |titel=Correction to XTEA |hrsg=Computer Laboratory, Cambridge University |datum=1998 |sprache=en |abruf=2024-03-25}}&amp;lt;/ref&amp;gt; Die Blockgröße ist variabel, ein Block besteht aus zwei oder mehr 32-Bit-Wörtern, und die Rundenzahl richtet sich nach der Blockgröße.&lt;br /&gt;
&lt;br /&gt;
=== Referenzimplementierung ===&lt;br /&gt;
David Wheeler und Roger Needham veröffentlichten folgenden Referenzcode für XXTEA:&amp;lt;ref name=&amp;quot;XXTEA&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
  #define DELTA 0x9e3779b9&lt;br /&gt;
  #define MX (((z&amp;gt;&amp;gt;5^y&amp;lt;&amp;lt;2) + (y&amp;gt;&amp;gt;3^z&amp;lt;&amp;lt;4)) ^ ((sum^y) + (key[(p&amp;amp;3)^e] ^ z)))&lt;br /&gt;
  &lt;br /&gt;
  void btea(uint32_t *v, int n, uint32_t const key[4]) {&lt;br /&gt;
    uint32_t y, z, sum;&lt;br /&gt;
    unsigned p, rounds, e;&lt;br /&gt;
    if (n &amp;gt; 1) {          /* Coding Part */&lt;br /&gt;
      rounds = 6 + 52/n;&lt;br /&gt;
      sum = 0;&lt;br /&gt;
      z = v[n-1];&lt;br /&gt;
      do {&lt;br /&gt;
        sum += DELTA;&lt;br /&gt;
        e = (sum &amp;gt;&amp;gt; 2) &amp;amp; 3;&lt;br /&gt;
        for (p=0; p&amp;lt;n-1; p++) {&lt;br /&gt;
          y = v[p+1]; &lt;br /&gt;
          z = v[p] += MX;&lt;br /&gt;
        }&lt;br /&gt;
        y = v[0];&lt;br /&gt;
        z = v[n-1] += MX;&lt;br /&gt;
      } while (--rounds);&lt;br /&gt;
    } else if (n &amp;lt; -1) {  /* Decoding Part */&lt;br /&gt;
      n = -n;&lt;br /&gt;
      rounds = 6 + 52/n;&lt;br /&gt;
      sum = rounds*DELTA;&lt;br /&gt;
      y = v[0];&lt;br /&gt;
      do {&lt;br /&gt;
        e = (sum &amp;gt;&amp;gt; 2) &amp;amp; 3;&lt;br /&gt;
        for (p=n-1; p&amp;gt;0; p--) {&lt;br /&gt;
          z = v[p-1];&lt;br /&gt;
          y = v[p] -= MX;&lt;br /&gt;
        }&lt;br /&gt;
        z = v[n-1];&lt;br /&gt;
        y = v[0] -= MX;&lt;br /&gt;
        sum -= DELTA;&lt;br /&gt;
      } while (--rounds);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sicherheit ===&lt;br /&gt;
2010 veröffentlichte Elias Yarrkov einen [[Kryptoanalyse#Chosen_Plaintext|Chosen Plaintext Angriff]], der auf [[Differenzielle Kryptoanalyse|Differenzieller Kryptoanalyse]] beruht und mit 2&amp;lt;sup&amp;gt;59&amp;lt;/sup&amp;gt; Versuchen erfolgreich ist.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Elias Yarrkov |url=https://eprint.iacr.org/2010/254 |titel=Cryptanalysis of XXTEA |werk=Cryptology ePrint Archive |datum=2010 |sprache=en |abruf=2024-03-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anwendungen ===&lt;br /&gt;
XXTEA wird beispielsweise eingesetzt im Funkprotokoll des Kollisionswarngerätes [[FLARM]] sowie im ADS-L Standard.&amp;lt;ref&amp;gt;{{Internetquelle |autor=EASA |url=https://www.easa.europa.eu/en/downloads/137503/en |titel=Technical Specification for ADS-L transmissions using SRD-860 frequency band (ADS-L 4 SRD-860) |hrsg=EASA |datum=2022-12-20 |sprache=en |abruf=2024-03-25}}&amp;lt;/ref&amp;gt; Eine wissenschaftliche Studie der [[ETH Zürich]] kam zu dem Ergebnis, dass es aus Sicht der [[Informationssicherheit]] keinen offensichtlichen Grund mehr für die Verschlüsselung gebe und FLARM nicht sicherer sei als andere bestehende Luftfahrtprotokolle, die von Anfang an ohne kryptographische Sicherheitsmaßnahmen entwickelt wurden.&amp;lt;ref name=&amp;quot;Wang&amp;quot;&amp;gt;{{Literatur |Autor=Boya Wang, Giorgio Tresoldi, Martin Strohmeier, Vincent Lenders |Titel=On the Security of the FLARM Collision Warning System |Sammelwerk=Proceedings of the 2022 ACM on Asia Conference on Computer and Communications Security |Verlag=Association for Computing Machinery |Ort=New York, NY, USA |Datum=2022-05-30 |Reihe=ASIA CCS &amp;#039;22 |ISBN=978-1-4503-9140-5 |DOI=10.1145/3488932.3517409 |Seiten=267–278}}&amp;lt;/ref&amp;gt; Analog gilt diese Schlussfolgerung auch für ADS-L.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://web.archive.org/web/20190819094634/http://143.53.36.235:8080/tea.htm verschiedene TEA- und XTEA-Implementierungen] (Archivlink, englisch)&lt;br /&gt;
* [http://www.php-einfach.de/sonstiges_generator_xtea.php PHP Implementierung von XTEA]&lt;br /&gt;
* [http://www.cix.co.uk/~klockstone/teavect.htm Testvektoren für TEA und XTEA] (englisch)&lt;br /&gt;
* [https://kryptografie.de/kryptografie/chiffre/xxtea.htm XXTEA auf kryptografie.de]&lt;br /&gt;
* [https://github.com/xxtea/xxtea-c XXTEA Quelle-Code in C auf Github]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Blockverschlüsselung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Schreibknecht1312</name></author>
	</entry>
</feed>