Triple DES (TDES/3DES) — definíció, működés és biztonság
Triple DES (TDES/3DES) — részletes definíció, működés és biztonsági elemzés: kulcsméretek, támadások, 2‑ és 3‑kulcsos változatok és AES-szel való összehasonlítás.
A kriptográfiában a Triple DES egy olyan blokkos titkosítás, amelyet a Data Encryption Standard (DES) titkosítás háromszoros felhasználásával hoztak létre. A Triple DES-t TDES-nek, vagy szabványosabban TDEA-nak (Triple Data Encryption Algorithm ) is nevezik.
Amikor kiderült, hogy a DES 56 bites kulcsa nem elegendő a nyers erővel végrehajtott támadások elleni védelemhez, a TDES-t választották, mivel ez egy egyszerű módja a kulcsterület bővítésének anélkül, hogy új algoritmusra kellene váltani. A három lépés használata elengedhetetlen a dupla DES titkosítás ellen hatékony meet-in-the-middle támadások megelőzéséhez.
Működés — EDE (Encrypt–Decrypt–Encrypt)
A TDES tipikus megvalósítása az ún. EDE mód: a bemeneti 64 bites blokkot először egy DES-kulccsal titkosítják (k1), majd egy második kulccsal visszafejtik (k2), végül egy harmadik kulccsal újra titkosítják (k3). Az EDE-sémának az az előnye, hogy ha k1 = k2 = k3, akkor visszakapjuk a hagyományos DES-t, ezáltal visszafelé kompatibilis DES-alapú rendszerekkel.
A TDES blokkmérete megegyezik a DES-ével: 64 bit. Ennek megfelelően a blokkmódok (pl. ECB, CBC) használata, az IV (inicializációs vektor) kezelése és a tömörítés/padding szempontjai ugyanazok: CBC esetén véletlenszerű IV szükséges, és mivel a blokk 8 bájt, a padding általában PKCS#5/PKCS#7 szabvány szerint történik.
Kulcsopciók és méretek
- Háromkulcsos TDES (3-kulcsos): k1, k2, k3 mind különbözőek. Nominalisan három 56 bites DES-kulcs = 168 bit (paritásbitekkel tárolva 3×64 = 192 bit).
- Kétkulcsos TDES (2-kulcsos): k1 = k3, így gyakorlatilag két független DES-kulcs van (56+56 = 112 bit, paritásbitekkel együtt 128 bit tárolás). Ez a változat kevesebb tárolást és kompatibilitást biztosít, de kriptográfiailag gyengébb, ezért használata egyre ritkább.
- Egylapkás eset: ha k1 = k2 = k3, a rendszer visszaáll egyszerű DES-re.
Biztonság és jelentősebb támadások
Bár a 3-kulcsos TDES elméleti kulcsterülete 168 bit, a meet-in-the-middle típusú támadások miatt a gyakorlatban az effektív ellenállás jóval alacsonyabb: a háromkulcsos TDES esetén a támadási költség nagyságrendileg 2^112 körüli. A kétkulcsos változat (k1 = k3) még kisebb biztonságot nyújt, és ezért a kriptográfiai közösség, valamint szabványosító testületek (pl. NIST) erősen korlátozták vagy nem ajánlották új rendszerekben a használatát.
Emellett fontos, hogy a TDES blokkmérete csak 64 bit, ami bizonyos támadások számára hátrányt jelent: nagy mennyiségű titkosított adat esetén a blokkismétlődések (birthday- támadás) kihasználhatók. Ennek gyakorlati példája a 2016-ban ismertté vált SWEET32 támadás, amely 64 bites blokkos titkosítók (például 3DES) esetén valósít meg előrehaladott plaintext-visszanyerést nagy mennyiségű adat lehallgatásával.
További támadási vektorok:
- Brute-force (nyers erővel történő keresés) — a kulcsterület miatt nagyon költséges a 3-kulcsos változatnál, de nem elhanyagolható a jövőbeli hardverfejlődés fényében.
- Meet-in-the-middle támadások — különösen hatékonyak az egyszerű kettős vagy hármas alkalmazások ellen, ezért a 3 lépés szükséges a hatékony ellenálláshoz.
- Ismert-plaintext és választott-plaintext típusú támadások — a 2-kulcsos változatnál bizonyos konstrukciók esetén könnyebben kihasználhatók.
- DES-re jellemző speciális gyenge kulcsok és a komplementációs tulajdonságok — ezek a DES sajátosságai áthúzódnak a TDES-re is.
Szabványok, élettartam és átmenet
A TDES-t hosszú ideig szabványosított megoldásként használták, azonban a kriptográfiai közösség és a szabványosító szervezetek (pl. NIST) egyre inkább az AES felé irányították a figyelmet. A 64 bites blokk és a csökkenő effektív biztonság miatt a TDES-t új alkalmazásokban nem javasolják; a legtöbb új rendszerben és protokollban az AES (128 bites blokk, erősebb és gyorsabb szoftveres megvalósításokkal) az ajánlott választás.
Ugyanakkor a gyakorlatban a TDES még sok helyen jelen van a meglévő rendszerek, különösen az elektronikus fizetési ágazat miatt. Az egyik nagyszabású kivétel az elektronikus fizetési ágazat, amely még mindig széles körben használja a 2TDES-t, és továbbra is ezen alapuló szabványokat fejleszt és terjeszt (pl. az EMV, az IC-kártyák (más néven "chipkártyák", valamint az IC-képes POS-terminálok és ATM-ek) közötti együttműködés szabványa). Ez garantálja, hogy a TDES a jövőben is aktív kriptográfiai szabvány marad egyes iparágakban, bár egyre szigorúbb korlátozásokkal és átmeneti tervekkel.
Teljesítmény, implementációk
A DES és így a TDES is eleve lassú teljesítményt nyújt szoftveresen, különösen összevetve modern CPU-k beépített AES-hardveres utasításaival (pl. AES-NI). A TDES jobban megfelel a hardveres megvalósításoknak, amelyek sok helyen még mindig használatosak, és ebből adódóan bizonyos régi rendszerekben továbbra is elfogadott választás.
Gyakorlati megfontolások implementációkor:
- Használjon három független kulcsot (3-kulcsos TDES), ha feltétlenül TDES-t kell alkalmazni.
- Kerülje a hosszú adatmennyiség egyetlen kulccsal történő titkosítását (SWEET32 miatti kockázat).
- Megfelelő IV-kezelés CBC módban és szabványos padding használata (PKCS#5/PKCS#7) elengedhetetlen.
- Gondoskodjon kulcskezelésről, kulcsváltásról és korlátozott kulcshasználatról, különösen pénzügyi rendszerekben.
Ajánlások
- Ne használjon TDES-t új protokollokban vagy termékekben — válassza az AES-t (AEAD módok, pl. AES-GCM vagy AES-CCM) a jobb biztonság és teljesítmény érdekében.
- Ha örökölt rendszerekben TDES maradt, tervezzék meg a fokozatos átállást, és korlátozzák a TDES-sel titkosított adat mennyiségét illetve az egy kulcs alatti forgalmat.
- Pénzügyi rendszerek esetén kövessék az ipari szabványokat és biztonsági tanácsokat; ahol TDES használata szükséges, alkalmazzanak 3-kulcsos megoldást, erős kulcskezelést és rendszeres kulcsváltást.
Összefoglalva: a TDES történelmileg fontos és még mindig széles körben alkalmazott megoldás volt a DES gyengeségeinek javítására. Napjainkban azonban a kisebb blokkméret és a gyakorlatban korlátozott effektív kulcserő miatt fokozatosan kivonásra kerül az új rendszerekből, és az AES váltotta fel mint a modern, biztonságos és hatékony választás.

A Triple DES művelete, ahol M az egyszerű szöveg, C a rejtjelezett szöveg és {k1, k2, k3} a három titkosítási kulcs halmaza.
Kapcsolódó oldalak
- DES-X
- Adattitkosítási szabvány (DES)
- Fejlett titkosítási szabvány (AES)
Kérdések és válaszok
K: Mi az a Triple DES?
V: A Triple DES (TDES vagy TDEA) egy olyan blokkos titkosítás, amelyet a Data Encryption Standard (DES) titkosításból hoztak létre a DES titkosítás háromszoros felhasználásával. Úgy tervezték, hogy növelje a kulcsterületet és megakadályozza a dupla DES titkosítás ellen hatékony meet-in-the-middle támadásokat.
K: Milyen hosszú a 3 kulcsos TDES kulcshossza?
V: A 3-kulcsos TDES kulcshossza 168 bit, három 56 bites DES-kulccsal és paritásbitekkel, ami összesen 192 bit tárolási hosszúságot jelent.
K: Milyen hosszú a 2-kulcsos TDES kulcshossza?
V: A 2-kulcsos TDES kulcshossza 112 bit, két 56 bites DES-kulccsal és paritásbitekkel, ami összesen 128 bit tárolási hosszúságot jelent.
K: Milyen típusú támadás alkalmazható a 2TDES ellen?
V: A 2TDES-t bizonyos chosen-plaintext vagy known-plaintext támadásokkal lehet kihasználni. Ezért a NIST úgy kezeli, hogy csak 80 bit biztonsággal rendelkezik.
K: A Triple DES szoftveres vagy hardveres implementációra alkalmasabb?
V: A Triple DES eleve lassú teljesítményt nyújt szoftveresen, ezért inkább hardveres megvalósításokra alkalmas.
K: A Triple DES-t ma is széles körben használják?
V: Bár a Triple DES-t nagyrészt felváltotta az Advanced Encryption Standard (AES), továbbra is aktív kriptográfiai szabvány az elektronikus fizetési iparágban, ahol továbbra is fejlesztik és terjesztik az erre épülő szabványokat.
K: Mit jelent az EMV a Triple DES-sel kapcsolatban?
V: Az EMV az Europay Mastercard Visa rövidítése, amely az IC-kártyák ("chipkártyák") és az IC-képes POS-terminálok és ATM-ek közötti együttműködésre vonatkozó szabvány, amely széles körben használja a 2TDES-t.
Keres