Ugrás a tartalomhoz

Triple Data Encryption Algorithm

A Wikiszótárból, a nyitott szótárból


Főnév

Triple Data Encryption Algorithm (tsz. Triple Data Encryption Algorithms)

  1. (informatika) A kriptográfiában a Triple DES ( 3DES vagy TDES ) , hivatalosan a Triple Data Encryption Algorithm ( TDEA vagy Triple DEA ), egy szimmetrikus kulcsú blokkrejtjel , amely háromszor alkalmazza a DES titkosítási algoritmust minden adatblokkra. A Data Encryption Standard (DES) 56 bites kulcsa már nem tekinthető megfelelőnek a modern kriptoanalitikai technikák és a szuperszámítási teljesítmény mellett; A hármas DES 112 bitre növeli a hatékony biztonságot. A 2016-ban kiadott CVE -2016-2183 jelentős biztonsági rést tárt fel a DES és 3DES titkosítási algoritmusokban. Ez a CVE a 3DES nem megfelelő kulcsméretével együtt ahhoz vezetett, hogy a NIST 2019-ben megszüntette a 3DES-t, és 2023 végére letiltott minden felhasználást (kivéve a már titkosított adatok feldolgozását). [ 1 ] Lecserélték a biztonságosabb, robusztusabb AES- re .

Míg az Egyesült Államok kormányzati és iparági szabványai az algoritmus nevét TDES-nek (Triple DES) és TDEA-nak (Triple Data Encryption Algorithm) rövidítik, [ 2 ] az RFC 1851 3DES néven emlegette az ötlet első kihirdetése óta, és ezt a névrokont azóta széles körben alkalmazza a legtöbb kriptográfus, felhasználó és titkosító. [ 3 ] [ 4 ] [ 5 ] [ 6 ]

Történelem 1978-ban Walter Tuchman javasolta a DES-t használó hármas titkosítási módszert két 56 bites kulccsal ; 1981-ben Merkle és Hellman a 3DES biztonságosabb háromkulcsos verzióját javasolta 112 bites biztonsággal. [ 7 ]

Szabványok A hármas adattitkosítási algoritmust különböző szabványok határozzák meg:

RFC 1851, The ESP Triple DES Transform [ 8 ] (jóváhagyva 1995-ben) ANSI ANS X9.52-1998 Triple Data Encryption Algorithm Modes of Operation [ 9 ] (1998-ban jóváhagyva, 2008-ban visszavonva [ 10 ] ) FIPS PUB 46-3 adattitkosítási szabvány (DES) [ 11 ] (1999-ben jóváhagyva, 2005-ben visszavonva [ 12 ] ) NIST Special Publication 800-67 Revision 2 Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher [ 13 ] (2017-ben jóváhagyva, 2024-ben visszavonva [ 14 ] ) ISO / IEC 18033-3:2010: 3. rész: Blokkrejtjelek [ 15 ] (2005-ben jóváhagyva) Algoritmus Az eredeti DES-rejtjel 56 bites kulcsméretét általában elegendőnek tekintették a tervezéskor, de a növekvő számítási teljesítmény elérhetővé tette a brute-force támadásokat . A hármas DES egy viszonylag egyszerű módszert kínál a DES kulcsméretének növelésére az ilyen támadások elleni védelem érdekében, anélkül, hogy teljesen új blokk titkosítási algoritmust kellene tervezni.

Egy naiv megközelítés egy rövid kulcshosszúságú blokktitkosítási algoritmus (például a DES) erősségének növelésére két kulcs használata lenne. ( K 1 , K 2 ) {\megjelenítési stílus (K1, K2)}egy helyett, és minden blokkot kétszer titkosítson: E K 2 ( E K 1 ( egyszerű szöveg ) ) {\displaystyle E_{K2}(E_{K1}({\textrm {plaintext}}))}. Ha az eredeti kulcshossz n {\displaystyle n}bit, remélhetőleg ez a séma a kulcs használatával egyenértékű biztonságot nyújt 2 n {\displaystyle 2n}bit hosszú. Sajnos ez a megközelítés sebezhető a "mell-in-the-middle" támadással szemben : egy ismert egyszerű szövegpárt figyelembe véve ( x , y ) {\megjelenítési stílus (x,y)}, ilyen y = E K 2 ( E K 1 ( x ) ) {\displaystyle y=E_{K2}(E_{K1}(x))}, visszaállíthatja a kulcspárt ( K 1 , K 2 ) {\megjelenítési stílus (K1, K2)}be 2 n + 1 {\displaystyle 2^{n+1}}lépések helyett a 2 2 n {\displaystyle 2^{2n}}lépések, amelyeket egy ideálisan biztonságos algoritmustól elvárhatunk 2 n {\displaystyle 2n}kulcsdarabok.

Ezért a Triple DES egy „kulcscsomagot” használ, amely három DES kulcsot tartalmaz , K 1 {\displaystyle K1}, K 2 {\displaystyle K2}és K 3 {\displaystyle K3}, mindegyik 56 bitből áll ( a paritásbitek kivételével ). A titkosítási algoritmus a következő:

titkosított szöveg = E K 3 ( D K 2 ( E K 1 ( egyszerű szöveg ) ) ) . {\displaystyle {\textrm {ciphertext}}=E_{K3}(D_{K2}(E_{K1}({\textrm {plaintext}}))).} Vagyis titkosíts ezzel K 1 {\displaystyle K1}, visszafejteni a K 2 {\displaystyle K2}, majd titkosítsa a következővel K 3 {\displaystyle K3}.

A visszafejtés ennek a fordítottja:

egyszerű szöveg = D K 1 ( E K 2 ( D K 3 ( titkosított szöveg ) ) ) . {\displaystyle {\textrm {plaintext}}=D_{K1}(E_{K2}(D_{K3}({\textrm {ciphertext}}))).} Vagyis dekódolni -val K 3 {\displaystyle K3}, titkosítás ezzel K 2 {\displaystyle K2}, majd visszafejteni a segítségével K 1 {\displaystyle K1}.

Minden hármas titkosítás egy 64 bites adatblokkot titkosít .

A középső művelet minden esetben az első és az utolsó fordítottja. Ez javítja az algoritmus erősségét a 2-es kulcsozási opció használatakor , és visszafelé kompatibilis a DES-vel a 3-as kulcsozási opcióval.

Kulcsolási lehetőségek A szabványok három kulcsozási lehetőséget határoznak meg:

Kulcsolási lehetőség 1 Mindhárom kulcs független. Néha 3TDEA [ 16 ] vagy hármas hosszúságú billentyűkként is ismert. [ 17 ] Ez a legerősebb, 3 × 56 = 168 független kulcsbittel. Továbbra is sebezhető a meet-in-the-middle támadással szemben , de a támadáshoz 2 × 56 lépésre van szükség.

Kulcsozási lehetőség 2 K 1 és K 2 függetlenek, és K 3 = K 1 . Néha 2TDEA [ 16 ] vagy dupla hosszúságú billentyűkként is ismert. [ 17 ] Ez rövidebb, 56*2 vagy 112 bites kulcshosszt biztosít, valamint ésszerű kompromisszumot a DES és az 1. kulcsolási lehetőség között, a fentiekkel megegyező fenntartással. [ 18 ] Ez előrelépés a "dupla DES"-hez képest, amely mindössze 256 lépést igényel a támadáshoz. A NIST 2015-ben nem engedélyezte ezt a lehetőséget. [ 16 ]

Kulcsolási lehetőség 3 Mindhárom billentyű azonos, azaz K 1 = K 2 = K 3 . Ez visszafelé kompatibilis a DES-szel, mivel a műveletek közül kettő megszakad. Az ISO/IEC 18033-3 soha nem engedélyezte ezt a lehetőséget, és a NIST már nem engedélyezi a K 1 = K 2 vagy K 2 = K 3 beállítást . [ 16 ] [ 13 ]

Minden DES-kulcs 8 páratlan paritású bájtból áll, 56 bites kulccsal és 8 bites hibaérzékeléssel. [ 9 ] Egy kulcscsomaghoz 24 bájt szükséges az 1. opcióhoz, 16 bájt a 2. opcióhoz, vagy 8 bájt a 3. opcióhoz.

A NIST (és a Trusted Platform Module jóváhagyott algoritmusainak jelenlegi TCG specifikációinak 2.0-s verziója ) szintén nem engedélyezi a következő 64 64 bites érték bármelyikének használatát bármely kulcsban (megjegyzendő, hogy ezek közül 32 a másik 32 bináris kiegészítése; és hogy ezek közül a kulcsok közül 32 az itt felsorolt ​​kulcsok fordított permutációja is) bájt, a legkisebb jelentőségű bit egy páratlan paritású bit, amelyet a rendszer eldob a ténylegesen 56 bites kulcs kialakításakor):