Tiny Encryption Algorithm: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Addbot (discussione | contributi)
m migrazione automatica di 8 collegamenti interwiki a Wikidata, d:q1595597
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
 
(19 versioni intermedie di 13 utenti non mostrate)
Riga 1:
{{Metodo crittografico
{{Infobox Block Ciphers
|immagine = TEA InfoBox Diagram.png
|fullName=Tiny Encryption Algorithm
Riga 12:
|rounds=variabili: raccomandanti 64 passaggi della funzione Feistel (32 cicli)
|cryptanalysis=Il TEA soffre del problema delle chiavi equivalenti (Kelsey ed altri autori, [[1996]]) e può essere violato utilizzando un [[attacco correlato alla chiave]] utilizzando 2<sup>23</sup> [[attacco con testo in chiaro scelto|testi in chiaro scelti]] ed un tempo di 2<sup>32</sup>.
}}In [[crittografia]] il '''Tiny Encryption Algorithm (TEA)''' è un [[cifrario a blocchi]] noto per la sua semplicità e facilità di [[implementazione]] (bastano in genere poche linee di codice). Fu ideato da [[David Wheeler (informatico)|David Wheeler]] e [[Roger Needham]] del dipartimento informatico dell'[[Università di Cambridge]]<ref>[httphttps://www.cl.cam.ac.uk/ Sito ufficiale del Computer Laboratory of Cambridge University]</ref>, e presentato per la prima volta nel [[1994]] al secondo [[Fast Software Encryption]], tenutosi a [[Lovanio]] ([[Belgio]])<ref>[http://citeseer.ist.psu.edu/102148.html TEA, a tiny encryption algorithm]</ref>.
 
L'algoritmo non è soggetto ad alcun [[brevetto]].
 
== Proprietà ==
Il TEA opera su [[dimensione blocco|blocchi]] di 64 [[bit]] ed utilizza una [[chiave crittografica]] lunga [[128 bit]]. Ha una struttura a [[rete di Feistel]] con 64 passaggi (suggeriti), in genere implementati a coppie denominate ''cicli''. Ha una funzione di [[gestore della chiave|gestione della chiave]] molto semplice, che ne mescola tutti i bit nella stessa maniera ad ogni ciclo. Vengono inoltre utilizzati i multipli di una costante per rendere l'algoritmo resistente agli attacchi più semplici basati sulla simmetria dei passaggi. Questa costante, 2654435769 (<math>\mathrm{9E3779B9_{16}}</math>) è scelta per essere <math>\lfloor 2^{32}/\phi\rfloor</math> dove <math>\phi</math> è la [[sezione aurea]].
 
Il TEA ha alcune debolezze la più grave delle quali è legata alle '''chiavi equivalenti''': ogni chiave è equivalente ad altre 3, il che significa che la lunghezza effettiva della chiave risulta essere di soli 126 bit<ref name="kelsey1996">[httphttps://www.schneier.com/paper-key-schedule.pdf Bruce Schneier e David Wagner: Key-schedule cryptanalysis of IDEA, G-DES, GOST, SAFER e Triple-DES] {{Webarchive|url=https://web.archive.org/web/20120208081900/http://www.schneier.com/paper-key-schedule.pdf |date=8 febbraio 2012 }} ([[1996]])</ref>. Come conseguenza di ciò, il TEA non è assolutamente indicato come [[hash|funzione crittografica di hash]]. Questa debolezza è stata usata per ''[[hacking|hackerare]]'' la [[Console (videogiochi)|console]] [[Microsoft]] [[X-BoxXbox]], dove il cifrario era utilizzato come [[funzione di hash]] per il controllo del software di avvio<ref>[http://www.xbox-linux.org/wiki/17_Mistakes_Microsoft_Made_in_the_Xbox_Security_System#Startup_Security.2C_Take_Two 17 Mistakes Microsoft Made in the Xbox Security System] {{webarchive|url=https://web.archive.org/web/20090416175601/http://www.xbox-linux.org/wiki/17_Mistakes_Microsoft_Made_in_the_Xbox_Security_System |data=16 aprile 2009 }}</ref>. Il TEA è anche suscettibile di un [[attacco correlato alla chiave]], che richiede 2<sup>23</sup> testi in chiaro scelti con una coppia di chiavi correlate ed un tempo di 2<sup>32</sup><ref>[http://citeseer.ist.psu.edu/318172.html Bruce Schneier e David Wagner: Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 and TEA] ([[1997]])</ref>.
 
L'inusuale minima dimensione del TEA lo renderebbe un'interessante scelta in molte situazioni dove si hanno vincoli estremi legati alle risorse, ad esempio nei vecchi sistemi hardware dove la quantità di memoria è spesso minima. D'altronde, la comprovata insicurezza dell'algoritmo suggerisce di utilizzare una delle varianti che sono state presentate per correggere le debolezze della sua struttura.
 
== Versioni ==
La prima versione pubblica del TEA fu seguita da una seconda versione denominata [[XTEA]], '''eXtended TEA''', che incorporava alcune modifiche atte a rendere l'algoritmo più sicuro: a differenza dell'algoritmo originale, essa integra una funzione di gestione della chiave più complessa ed una diversa successione delle operazioni di spostamento dei bit (''shift''), [[disgiunzione esclusiva|XOR]] ed addizione. Insieme all'XTEA fu presentato anche il '''Block TEA''', identico all'XTEA ma che itera sull'intero messaggio considerandolo un unico blocco.
 
Riga 29:
 
==Codice di riferimento==
Quelle che seguono sono adattamenti in [[C (linguaggio)|C]] delle [[routine (informatica)|routine]] di cifratura e decifratura del TEA, rilasciate nel [[pubblico dominio]] da David Wheeler e Roger Needham:
 
<sourcesyntaxhighlight lang="Cc">
#include <stdint.h>
 
Riga 47:
 
void decrypt (uint32_t* v, uint32_t* k) {
uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i; /* set up ;sum == delta*32 */
uint32_t delta=0x9e3779b9; /* a key schedule constant */
uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* cache key */
Riga 57:
v[0]=v0; v[1]=v1;
}
</syntaxhighlight>
</source>
 
Da notare che l'implementazione standard è legata ad una specifica [[architettura (computer)|architettura di microprocessori]], il che significa che le considerazioni sull'[[ordine dei byte]] sono importanti quando il testo cifrato è distribuito e processato su diversi sistemi. Il documento originale non specifica nessun dettaglio sull'architettura dei microprocessori perciò chiunque implementi un sistema che utilizza il TEA è tenuto a considerare in proprio quelle specifiche.
 
==Voci correlateNote ==
<references />
* [[RC4]] - Un [[cifrario a flusso]] che, come il TEA, è disegnato per essere molto semplice da implementare.
 
== Voci correlate ==
* [[RC4]] - Un [[cifrario a flusso]] che, come il TEA, è disegnatoprogettato per essere molto semplice da implementare.
* [[XTEA]] - Il Block TEA, la prima versione modificata del TEA.
* [[XXTEA]] - Il Corrected Block TEA, la seconda versione modificata del TEA.
 
== Altri riferimentiprogetti ==
==Note==
{{Interprogetto|preposizione=sul}}
<references />
 
== Collegamenti esterni ==
==Altri riferimenti==
* [{{cita web | 1 = http://www.cs.ua.edu/SecurityResearchGroup/VRAndem.pdf | 2 = Una crittanalisi del TEA]Tiny Encryption Algorithm | accesso = 14 ottobre 2008 | dataarchivio = 20 aprile 2009 | urlarchivio = https://web.archive.org/web/20090420005901/http://www.cs.ua.edu/SecurityResearchGroup/VRAndem.pdf | urlmorto = sì ([[2003]])}}
* {{cita web | 1 = http://143.53.36.235:8080/tea.htm | 2 = Nozioni sul TEA ed implementazioni in diversi linguaggi | accesso = 14 ottobre 2008 | urlarchivio = https://web.archive.org/web/20170612022812/http://143.53.36.235:8080/tea.htm | dataarchivio = 12 giugno 2017 | urlmorto = sì }}
* [{{cita web|http://www.cix.co.uk/~klockstone/teavect.htm |Vettori di test per il TEA]}}
* [{{cita web|http://www.php-einfach.de/sonstiges_generator_xtea.php |PHP implementation of XTEA]}}
* [{{cita web|http://www.movable-type.co.uk/scripts/TEA.html |Imlementazione in JavaScript del TEA]}}
* [https://web.archive.org/web/20090420005901/http://www.cs.ua.edu/SecurityResearchGroup/VRAndem.pdf Una crittanalisi del TinyTEA] Encryption Algorithm([[2003]])
* [http://www.actapress.com/PDFViewer.aspx?paperId=26972 Un'applicazione degli algoritmi genetici per la crittanalisi di un ciclo del TEA] ([[2002]])
 
{{Cifratura a blocchi}}
==Collegamenti esterni==
* [http://www.cs.ua.edu/SecurityResearchGroup/VRAndem.pdf Una crittanalisi del Tiny Encryption Algorithm]
* [http://143.53.36.235:8080/tea.htm Nozioni sul TEA ed implementazioni in diversi linguaggi]
* [http://www.cix.co.uk/~klockstone/teavect.htm Vettori di test per il TEA]
* [http://www.php-einfach.de/sonstiges_generator_xtea.php PHP implementation of XTEA]
* [http://www.movable-type.co.uk/scripts/TEA.html Imlementazione in JavaScript del TEA]
 
{{Portale|crittografia|Sicurezza informatica}}