RTEA

RTEA
Tvůrce Marcos el Ruptor (Sean O'Neil)
Vytvořeno 2007 _
zveřejněno 2007 _
Velikost klíče 128 (256) bitů
Velikost bloku 64 bit
Počet kol 48 (64)
Typ Síť Feistel


RTEA (z Ruptor's TEA nebo Repaired TEA ) je symetrický blokový kryptografický algoritmus typu „ Feistel Network “ v kryptografii , vyvinutý Marcosem el Ruptorem, rozšířením šifrovacího algoritmu TEA . Opraveny některé zranitelnosti v algoritmu. Stejně jako ostatní verze algoritmu TEA jsou operace založeny na práci s 32bitovými čísly. Algoritmus je mnohem jednodušší a produktivnější než XTEA , přičemž podle autorů a podle statistických testů provedených vývojáři je odolnější vůči kryptoanalýze [1] . Aby algoritmus odolal všem adaptivním a neadaptivním útokům, potřebuje počet kol rovný 32+w*4, kde w je počet 32bitových celých čísel v klíči, tj. 4 pro 128bitový klíč a 8 pro 256bitový klíč. Pro klíč o velikosti 128 bitů se provede 48 kol, pro klíč o velikosti 256 bitů 64 kol algoritmu. [2]

Protože jedná se o algoritmus blokové šifry, kde délka bloku je 64 bitů a délka dat nemusí být násobkem 64 bitů, hodnota všech bajtů doplňujících blok na násobek 64 bitů je nastavena na 0x01 .

Implementace

Algoritmus v jednom průchodu zpracovává dvě 32bitová čísla bez znaménka (dlouhá bez znaménka) aab, tedy 64bitový blok. Délka klíče ve 32bitových číslech je kw, r je kolo.

Deklarace proměnných by tedy mohla vypadat následovně:

u32 a , b , c , kw ; u32key [ kw ] ; dlouhé r ;

Univerzální kód

// šifrování for ( r = 0 ; r < kw * 4 + 32 ; r ++ ) c = b , b += a + (( b << 6 ) ^ ( b >> 8 )) + klíč [ r % kw ] + r , a = c ; // dešifrování for ( r = kw * 4 + 31 ; r != -1 ; r -- ) c = a , a = b -= a + (( a << 6 ) ^ ( a >> 8 )) + klíč [ r % kw ] + r , b = c ;


Což je podobné jinému pravopisu:


// šifrování for ( r = 0 ; r < kw * 4 + 32 ; r ++ ) a += b + (( b << 6 ) ^ ( b >> 8 )) + klíč [ r % kw ] + r , r + + , b += a + (( a << 6 ) ^ ( a >> 8 )) + klíč [ r % kw ] + r ; // dešifrování pro ( r = kw * 4 + 31 ; r != -1 ; r -- ) b -= a + (( a << 6 ) ^ ( a >> 8 )) + klíč [ r % kw ] + r , r -- , a -= b + (( b << 6 ) ^ ( b >> 8 )) + klíč [ r % kw ] + r ;

Kód pro 256bitový klíč

Použití algoritmu je velmi jednoduché a pohodlné. Takže pro klíč rovný 256 bitům (kw = 8) bude kód následující:


// šifrování pro ( r = 0 ; r < 64 ; r ++ ) { b += a + (( a << 6 ) ^ ( a >> 8 )) + ( klíč [ r % 8 ] + r ); r ++ ; a += b + (( b << 6 ) ^ ( b >> 8 )) + ( klíč [ r % 8 ] + r ); } // dešifrování pro ( r = 63 ; r >= 0 ; r -- ) { a -= b + (( b << 6 ) ^ ( b >> 8 )) + ( klíč [ r % 8 ] + r ); r -- ; b -= a + (( a << 6 ) ^ ( a >> 8 )) + ( klíč [ r % 8 ] + r ); }

Pro zajištění jedinečnosti každého ze zašifrovaných bloků s identitou původního otevřeného textu lze použít jeden z režimů DES (například CBC, CFB, CTS, CTR)

Zabezpečení

V tuto chvíli existuje pouze útok založený na příbuzných klíčích ( anglicky  related key attack ) [3] na tuto šifru.

Viz také

ČAJ

XTEA

XXTEA

Raiden  je algoritmus, stejně jako RTEA, založený na myšlenkách blokové šifry TEA .

Poznámky

  1. Srovnávací výsledky stability symetrických kryptalgoritmů Archivováno 25. července 2008.  (Angličtina)
  2. TEA, XTEA, XXTEA a RTEA Archivováno 19. července 2008.
  3. Související klíčový útok pro RTEA.  (nedostupný odkaz)

Odkazy

  1. Zdrojový kód algoritmu RTEA na Open Watcom C a Delphi Archivováno 23. dubna 2018 na Wayback Machine
  2. FAQ založené na materiálech konference fido7.ru.crypt. (nedostupný odkaz) . Získáno 22. dubna 2010. Archivováno z originálu 22. srpna 2011.   Následující předběžné varování platí přímo pro RTEA: "Vymyslet algoritmus je 5 % práce. Zbývajících 95 % je ujistit se (a přesvědčit ostatní), že ho nikdo nemůže zlomit."