Drobný šifrovací algoritmus - Tiny Encryption Algorithm - Wikipedia
![]() Dvě Feistel kola (jeden cyklus) TEA[1] | |
Všeobecné | |
---|---|
Návrháři | Roger Needham, David Wheeler |
Nejprve publikováno | 1994 |
Nástupci | XTEA |
Šifra detail | |
Klíčové velikosti | 128 bitů |
Velikosti bloků | 64 bitů |
Struktura | Síť Feistel |
Kola | proměnná; doporučeno 64 Feistel kol (32 cyklů) |
Nejlepší veřejnost dešifrování | |
TEA trpí ekvivalentními klíči (viz text; Kelsey et al., 1996) a lze ji rozbít pomocí a útok souvisejícím klíčem vyžadující 223 vybrané prosté texty a časová složitost 232.[2] Nejlepší strukturální dešifrování TEA ve standardním nastavení jediného tajného klíče je dešifrování s nulovou korelací prolomení 21 kol ve 2121.5 čas s méně než plnou knihou kódů [3] |
v kryptografie, Drobný šifrovací algoritmus (ČAJ) je bloková šifra pozoruhodný svou jednoduchostí popisu a implementace, obvykle několik řádků kódu. Byl navržen uživatelem David Wheeler a Roger Needham z Cambridge Computer Laboratory; poprvé byl představen na Rychlé softwarové šifrování dílna v Leuven v roce 1994 a poprvé zveřejněn ve sborníku z této dílny.[4]
Na šifru se nic nevztahuje patenty.
Vlastnosti
TEA pracuje na dvou 32bitových celá čísla bez znaménka (lze odvodit ze 64bitových dat blok ) a používá 128 bitů klíč. Má to Feistel struktura s navrhovanými 64 koly, obvykle implementovanými v párech označovaných jako cykly. Má to velmi jednoduché klíčový plán, míchání všech klíčových materiálů přesně stejným způsobem pro každý cyklus. Různé násobky a magická konstanta se používají k prevenci jednoduchých útoků založených na symetrie kol. Magická konstanta 2654435769 nebo 0x9E3779B9 je vybrána jako ⌊232/ϕWhere, kde ϕ je Zlatý řez (jako Nic v rukávu ).[4]
TEA má několik slabin. Nejpozoruhodnější je, že trpí ekvivalentními klíči - každý klíč je ekvivalentní třem dalším, což znamená, že efektivní velikost klíče je pouze 126 bity.[5] Výsledkem je, že čaj je obzvláště špatný jako a kryptografická hashovací funkce. Tato slabost vedla k metodě pro hackování Microsoft je Xbox herní konzole, kde byla šifra použita jako hashovací funkce.[6] TEA je také citlivý na a útok souvisejícím klíčem což vyžaduje 223 vybrané prosté texty pod párem příbuzných klíčů, s 232 časová složitost.[2] Kvůli těmto slabostem XTEA šifra byla navržena.
Verze
První publikovaná verze TEA byla doplněna druhou verzí, která obsahovala rozšíření, aby byla bezpečnější. Blokovat ČAJ (který byl specifikován spolu s XTEA ) pracuje na blocích libovolné velikosti místo 64bitových bloků originálu.
Třetí verze (XXTEA ), publikovaný v roce 1998, popsal další vylepšení pro zvýšení bezpečnosti algoritmu Block TEA.
Referenční kód
Následuje adaptace referenčních šifrovacích a dešifrovacích rutin v C, vydané do veřejné sféry Davidem Wheelerem a Rogerem Needhamem:[4]
#zahrnout <stdint.h>prázdnota zašifrovat (uint32_t proti[2], konst uint32_t k[4]) { uint32_t v0=proti[0], v1=proti[1], součet=0, i; /* založit */ uint32_t delta=0x9E3779B9; / * klíčová konstanta plánu * / uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; / * klíč mezipaměti * / pro (i=0; i<32; i++) { / * začátek základního cyklu * / součet += delta; v0 += ((v1<<4) + k0) ^ (v1 + součet) ^ ((v1>>5) + k1); v1 += ((v0<<4) + k2) ^ (v0 + součet) ^ ((v0>>5) + k3); } / * ukončit cyklus * / proti[0]=v0; proti[1]=v1;}prázdnota dešifrovat (uint32_t proti[2], konst uint32_t k[4]) { uint32_t v0=proti[0], v1=proti[1], součet=0xC6EF3720, i; /* založit; součet je 32 * delta * / uint32_t delta=0x9E3779B9; / * klíčová konstanta plánu * / uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; / * klíč mezipaměti * / pro (i=0; i<32; i++) { / * začátek základního cyklu * / v1 -= ((v0<<4) + k2) ^ (v0 + součet) ^ ((v0>>5) + k3); v0 -= ((v1<<4) + k0) ^ (v1 + součet) ^ ((v1>>5) + k1); součet -= delta; } / * ukončit cyklus * / proti[0]=v0; proti[1]=v1;}
Všimněte si, že referenční implementace působí na vícebajtové číselné hodnoty. Původní práce nespecifikuje, jak odvodit čísla, na která působí, z binárního nebo jiného obsahu.
Viz také
- RC4 - A proudová šifra že stejně jako TEA je navržen tak, aby se velmi snadno implementoval.
- XTEA - První verze nástupce Block TEA.
- XXTEA - Opravený nástupce Block TEA.
- Treyfer - Jednoduchý a kompaktní šifrovací algoritmus s 64bitovou velikostí klíče a velikostí bloku.
Poznámky
- ^ Matthew D. Russell (27. února 2004). „Tinyness: an Overview of TEA and Related Ciphers“. Archivovány od originál dne 12. srpna 2007.
- ^ A b Kelsey, John; Schneier, Bruce; Wagner, David (1997). Kryptoanalýza souvisejících klíčů u 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 a TEA. Přednášky z informatiky. 1334. 233–246. CiteSeerX 10.1.1.35.8112. doi:10.1007 / BFb0028479. ISBN 978-3-540-63696-0.
- ^ Bogdanov, Andrey; Wang, Meiqin (2012). Nulová korelace lineární kryptoanalýzy se sníženou složitostí dat (PDF). Přednášky z informatiky. 7549. Rychlé softwarové šifrování 2012. str. 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, malý šifrovací algoritmus. Přednášky z informatiky. 1008. Lovaň, Belgie: Rychlé softwarové šifrování: Druhý mezinárodní workshop. str. 363–366. doi:10.1007/3-540-60590-8_29. ISBN 978-3-540-60590-4.
- ^ Kelsey, John; Schneier, Bruce; Wagner, David (1996). Kryptoanalýza klíčových plánů IDEA, G-DES, GOST, SAFER a Triple-DES (PDF). Přednášky z informatiky. 1109. 237–251. doi:10.1007/3-540-68697-5_19. ISBN 978-3-540-61512-5.
- ^ Michael Steil. „17 chyb, které Microsoft vytvořil v bezpečnostním systému Xbox“. Archivovány od originál dne 16. dubna 2009.
Reference
- Andem, Vikram Reddy (2003). „Kryptanalýza maličkého šifrovacího algoritmu, diplomová práce“ (PDF). Tuscaloosa: The University of Alabama. Citovat deník vyžaduje
| deník =
(Pomoc) - Hernández, Julio César; Isasi, Pedro; Ribagorda, Arturo (2002). „Aplikace genetických algoritmů na kryptoanalýzu jednoho kulatého TEA“. Sborník sympozia z roku 2002 o umělé inteligenci a její aplikaci.
- Hernández, Julio César; Sierra, José María; Isasi, Pedro; Ribargorda, Arturo (2003). Nalezení efektivních rozlišovacích znaků pro kryptografické mapování s aplikací na blokovou šifru TEA. Sborník příspěvků z Kongresu o evolučních výpočtech z roku 2003. 3. 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, J. C. (2001). Rozlišování TEA od náhodné permutace: Redukované kulaté verze TEA nemají SAC nebo negenerují náhodná čísla (PDF). Sborník IMA Int. Konf. O kryptografii a kódování 2001. Přednášky z informatiky. 2260. 374–377. doi:10.1007/3-540-45325-3_34. ISBN 978-3-540-43026-1. Archivovány od originál (PDF) dne 26.04.2012.
- Měsíc, Dukjae; Hwang, Kyungdeok; Lee, Wonil; Lee, Sangjin; Lim, Jongin (2002). Nemožná diferenciální dešifrování redukovaných kulatých XTEA a TEA (PDF). Přednášky z informatiky. 2365. str. 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). Diferenciální kryptoanalýza TEA a XTEA. In Proceedings of ICISC 2003. Přednášky z informatiky. 2971. 402–417. doi:10.1007/978-3-540-24691-6_30. ISBN 978-3-540-21376-5.
externí odkazy
- Testujte vektory na TEA
- Implementace JavaScriptu XXTEA s Base64
- Implementace PHP XTEA (německý jazyk)
- Implementace JavaScriptu XXTEA
- Implementace XTEA v jazyce JavaScript a PHP (holandský text)
- Implementace AVR ASM
- Škálovatelný šifrovací algoritmus SEA pro malé vestavěné aplikace (Standaert, Piret, Gershenfeld, Quisquater - červenec 2005 UCL Belgium & MIT USA)