IDEA: az International Data Encryption Algorithm definíciója és működése
Ismerje meg az IDEA (International Data Encryption Algorithm) működését, 128 bites kulcsát, 64 bites blokkjait és biztonsági elveit — részletes elemzés, alkalmazás és kripto-értékelés.
A kriptográfiában a International Data Encryption Algorithm (IDEA) egy 1991-ben Xuejia Lai és James Massey (ETH Zürich) által tervezett blokkos titkosító algoritmus. Eredetileg a Data Encryption Standard (adattitkosítási szabvány) helyettesítésére szánták. Az IDEA sokban hasonlít a korábbi Proposed Encryption Standard (PES) néven ismert módszerre (titkosításra), de több fejlesztéssel; emiatt kezdetben IPES (Improved PES) néven is emlegették.
Felhasználás és jogi helyzet
A titkosítást több országban szabadalmaztatták; a szerzői jogi és licencfeltételek szerint bárki használhatja nem kereskedelmi célokra, ugyanakkor az "IDEA" név védjegy alatt áll. A szabadalmak 2010–2011 körül lejártak, és ma az IDEA-t világszerte a MediaCrypt nevű cég licenceli.
Gyakorlati alkalmazásként az IDEA-t a Pretty Good Privacy (PGP) v2.0-ban használták, amikor az 1.0-ban alkalmazott BassOmatic titkosítást bizonyíthatóan gyengének találták. Az IDEA kompatibilis az OpenPGP szabvánnyal is.
Működés — alapelvek és szerkezet
A IDEA 64 bites blokkokkal dolgozik és 128 bites kulcsot használ. A titkosítás 8 teljes fordulóból (round) és egy záró, úgynevezett kimeneti transzformációból (félkör) áll, tehát összesen 8,5 fordulót végez. Mind a titkosítás, mind a visszafejtés hasonló felépítésű, a visszafejtéshez a megfelelő alkulcsok inverzeit alkalmazzák.
Az IDEA biztonságának alapja a három eltérő algebrai művelet egymásba fonása:
- 16 bites egészre vett moduláris összeadás (mod 2^16),
- 16 bites egészre vett moduláris szorzás modulo 2^16+1 (azaz modulo 65537, ahol a 0 értéket külön kezelésnek vetik alá),
- bitenkénti eXclusive OR (XOR).
Ezeket a műveleteket úgy választották meg és kombinálták, hogy algebrailag inkompatibilisek legyenek — azaz ne legyen egyszerű algebrai mód a műveletek összevonására vagy „lineáris” leírására — ami jelentősen növeli a kriptoanalízissel szembeni ellenállást.
Alkulcsok és kulcsütemezés
Minden egyes teljes IDEA-végrehajtás összesen 52 darab 16 bites alkulcsot használ: mind a nyolc teljes kör hat, míg a záró félkör négy alkulcsot igényel. Az első nyolc alkulcsot közvetlenül a 128 bites főkulcsból nyerik ki: K1 a legalacsonyabb tizenhat bitet tartalmazza, K8 pedig a legmagasabb tizenhat bitet (kulcs). A további alkulcs-csoportok úgy jönnek létre, hogy a főkulcsot 25 bittel balra forgatják minden csoport előállítása után; ezzel ismételgetve végül megkapják a szükséges 52 alkulcsot (hat forgatás után ki lehet nyerni az összes alkulcsot).
A moduláris szorzások végrehajtása speciális kezelést igényel: az IDEA-ban a szorzás modulo 65537 úgy van definiálva, hogy a 0-t értékként külön kezelik (gyakorlatban a 0 érték helyett 65536-tal dolgoznak), ezért az implementációnál oda kell figyelni a hibamentes és gyors megvalósításra.
Biztonság és kriptoanalízis
A tervezők részletesen elemezték az IDEA-t a differenciális kriptoanalízissel és más módszerekkel szembeni ellenállás szempontjából, és arra a következtetésre jutottak, hogy — bizonyos feltételezések mellett — az algoritmus nem fogékony egyszerű differenciális gyengeségekre. A teljes 8,5 fordulós IDEA ellen nem jelentettek sikeres, gyakorlati lineáris vagy differenciális támadásokat.
Ugyanakkor néhány probléma ismert:
- Találtak egyes gyenge kulcsok osztályait (például Daemen et al., 1994), de ezek annyira ritkák, hogy gyakorlati jelentőségük kicsi — elkerülésük pedig egyszerű (például kulcsválasztási szabályokkal).
- 2007-ben a legjobb ismert támadás, amely minden kulcsra alkalmazható, a teljes IDEA 8,5 forduló helyett 6 fordulóig volt képes kriptoanalitikailag „lefedni” — ez azt jelenti, hogy a legerősebb ismert elemzések 6 fordulóig jutottak, a teljes 8,5 forduló teljes feltörésére általános módszer nem ismert.
Összességében az IDEA hosszú ideig erősnek és megbízhatónak bizonyult a nyilvános értékelések alapján; Bruce Schneier 1996-ban így fogalmazott: "Véleményem szerint ez a legjobb és legbiztonságosabb blokkoló algoritmus, amely jelenleg a nyilvánosság számára elérhető". (Applied Cryptography, 2nd ed.) Ugyanakkor 1999-re már kevésbé ajánlotta az IDEA-t, főként a gyorsabb alternatívák megjelenése, a kriptoanalízisben történt előrelépések és a szabadalmi kérdések miatt.
Implementációs és gyakorlati megfontolások
Az IDEA implementálása során érdemes figyelmet fordítani:
- a 16 bites műveletek és a 65537 modulo miatti speciális kezelés helyes megvalósítására,
- a gyors kulcsütemezésre (alkulcsok előállítása és tárolása),
- oldalsávos (side-channel) támadások elleni védelemre: mint minden kriptográfiai algoritmusnál, itt is fontos az óvatosság a végrehajtás időzete, áramfelvétel vagy cache-szivárgás szempontjából, különösen hardveres eszközökön és beágyazott rendszereken.
Teljesítmény szempontjából az IDEA jó szoftveres és hardveres teljesítményt nyújtott a 1990-es években, de a későbbi AES-alapú algoritmusok és más modern konstrukciók gyorsabbak és gyakran rugalmasabbak a mai hardvereken, ezért az IDEA alkalmazása csökkent.
Összegzés és ajánlások
A IDEA fontos mérföldkő volt a modern blokkos titkosítások történetében: egyszerre mutatott újszerű konstrukciót (algebrailag inkompatibilis műveletek kombinálása), bizonyított gyakorlati megbízhatóságot és széleskörű elterjedtséget (például PGP használat). Ma, mivel a szabadalmi korlátozások megszűntek és az AES-szerű algoritmusok mindenütt elterjedtek, a legtöbb új rendszer az AES-t vagy más korszerű algoritmusokat választja. Az IDEA-t azonban továbbra is érdemes ismerni történeti és elvi okokból, illetve olyan alkalmazásokban használni, ahol a meglévő kompatibilitás vagy licencfeltételek ezt indokolják.
[1]

Az IDEA titkosítási fordulója hat alkulcsot használva
Kérdések és válaszok
K: Mi az a nemzetközi adattitkosítási algoritmus (IDEA)?
V: Az IDEA egy blokkos titkosítás, amelyet Xuejia Lai és James Massey, az ETH Zürich munkatársai terveztek 1991-ben. Az adattitkosítási szabványt hivatott helyettesíteni, és nyolc azonos átalakításból (fordulóból) és egy kimeneti átalakításból (félkör) álló sorozatot tartalmaz.
K: Hogyan működik az IDEA?
V: Az IDEA 64 bites blokkokkal dolgozik, 128 bites kulcsot használva. Ezt összesen 8,5 fordulóban végzi. A titkosítás és a visszafejtés folyamatai hasonlóak. Az IDEA biztonságának nagy részét a különböző csoportok - moduláris összeadás és szorzás, valamint a bitenkénti eXclusive OR (XOR) - műveleteinek egymásba illesztésével nyeri, amelyeket úgy választottak ki, hogy "algebrailag inkompatibilisek" legyenek. Mind a nyolc kör hat, míg a félkörös négy alkulcsot használ; összesen 52 alkulcsot. Minden egyes alkulcs 16 bites.
K: Az IDEA szabadalmaztatott?
V: Igen, több országban szabadalmaztatták, de bárki használhatja nem kereskedelmi célokra. Az "IDEA" név is védjegyoltalom alatt áll, a szabadalmak 2010-2011-ben járnak le. Ma a MediaCrypt által világszerte licencelt.
K: Az IDEA-t használták a Pretty Good Privacy (PGP) programban?
V: Igen, a PGP v2-ben használták, miután a BassOmatic - a v1-ben használt titkosítás - feltörhetőnek bizonyult. Ma már az OpenPGP szabványban is használható.
K: Jelentettek már sikeres támadást az IDEA ellen?
V: Eddig nem jelentettek ellene sikeres lineáris vagy differenciális támadást; találtak azonban néhány gyenge kulcsosztályt, de ezek olyan ritkák, hogy az algoritmus biztonságos használata esetén könnyen elkerülhetők. 2007 óta a legjobb támadás, amely minden kulcsra vonatkozik, 6 fordulóra csökkentve (a teljes verzió 8 fordulót használ) képes megtörni az IDEA-t.
K: Mit mondott Bruce Schneier az IDEA-ról?
V: 1996-ban azt írta, hogy ez volt "az akkoriban elérhető legjobb és legbiztonságosabb blokkalgoritmus"; 1999-ben azonban már nem ajánlotta, mivel gyorsabb algoritmusok álltak rendelkezésre, valamint a kriptoanalízis terén történt némi előrelépés, továbbá a használatával kapcsolatos szabadalmi problémák miatt.
Keres