A szimmetrikus kulcsú kriptográfia (vagy szimmetrikus titkosítás) olyan titkosítási rendszer, amelyben ugyanazt a kulcsot használják az üzenetek titkosítására és visszafejtésére. Az információ kódolásának ezen módszerét az elmúlt évtizedekben nagyrészt a kormányok és hadseregek közötti titkos kommunikáció megkönnyítésére használták. Napjainkban a szimmetrikus kulcsú algoritmusokat széles körben alkalmazzák a különböző típusú számítógépes rendszerekben az adatbiztonság növelése érdekében.
Hogyan működik a szimmetrikus titkosítás?
A szimmetrikus titkosítási rendszerek egyetlen kulcson alapulnak, amelyet két vagy több felhasználó oszt meg egymás között. Ugyanazt a kulcsot használják az úgynevezett nyílt szöveg (a kódolt üzenet vagy adat) titkosítására és visszafejtésére. A titkosítás során egy egyszerű szöveget (bemenet) futtatunk át egy titkosító algoritmuson, a rejtjelkulcson, amely ezután egy rejtjelezett szöveget (kimenet) generál.
Ha a titkosítási rendszer elég erős, akkor a rejtjelezett szövegben lévő információt csak úgy tudja valaki elolvasni, ha a megfelelő kulcs segítségével visszafejti azt. A dekódolás folyamata alapvetően a rejtjelezett szöveg visszaalakítása egyszerű szöveggé.
A szimmetrikus titkosítási rendszerek biztonsága azon alapul, hogy mennyire nehéz véletlenszerűen kitalálni a megfelelő kulcsot, ha találgatással próbáljuk kitalálni őket. Egy 128 bites kulcsot például több milliárd évbe telne kitalálni egy átlagos számítógépes hardverrel. Minél hosszabb a titkosítási kulcs, annál nehezebb feltörni. A 256 bit hosszúságú kulcsokat általában rendkívül biztonságosnak és elméletileg ellenállónak tekintik a kvantumszámítógépek találgatásos támadásaival szemben.
A ma használt két legelterjedtebb szimmetrikus titkosítási rendszer a blokkrejtjelezésen (block cipher) és a folyamatos rejtjelezésen (stream cipher) alapul. A blokkrejtjelezés az adatokat előre meghatározott méretű blokkokba csoportosítja, és minden egyes blokkot a megfelelő kulcs és titkosítási algoritmus segítségével titkosít (pl. a 128 bites nyílt szöveget 128 bites rejtjelezett szöveggé titkosítja). A folyamatos rejtjelezés azonban nem blokkonként, hanem 1 bites adagokban titkosítja a nyílt szöveget (1 bites nyílt szöveget egyszerre 1 bites rejtjelezett szöveggé titkosítja).
Szimmetrikus vs. aszimmetrikus titkosítás
A szimmetrikus titkosítás a modern számítógépes rendszerekben az adattitkosítás két fő módszerének egyike. A másik az aszimmetrikus titkosítás, amely a nyilvános kulcsú kriptográfia fő alkalmazási területe. A fő különbség e módszerek között az, hogy az aszimmetrikus rendszerek két kulcsot használnak a szimmetrikus rendszerek által alkalmazott egy helyett. Az egyik kulcs nyilvánosan megosztható (nyilvános kulcs), míg a másikat titokban kell tartani (privátkulcs).
Az egy helyett két kulcs használata számos funkcionális különbséget eredményez a szimmetrikus és az aszimmetrikus titkosítás között. Az aszimmetrikus algoritmusok összetettebbek és lassabbak, mint a szimmetrikusak. Mivel az aszimmetrikus titkosításban használt nyilvános és privátkulcsok bizonyos mértékig matematikai kapcsolatban állnak egymással, maguknak a kulcsoknak is jóval hosszabbnak kell lenniük ahhoz, hogy hasonló szintű biztonságot nyújtanak, mint a rövidebb szimmetrikus kulcsok.
Felhasználása a modern számítógépes rendszerekben
A szimmetrikus titkosítási algoritmusokat számos modern számítógépes rendszerben alkalmazzák az adatbiztonság és a felhasználói adatvédelem fokozása érdekében. Az Advanced Encryption Standard (AES), amelyet széles körben használnak mind a biztonságos üzenetküldő alkalmazásokban, mind a felhőalapú tárolásban, a szimmetrikus titkosítás egyik kiemelkedő példája.
A szoftveres megvalósítások mellett az AES közvetlenül számítógépes hardveren is megvalósítható. A hardveralapú szimmetrikus titkosítási rendszerek általában az AES 256-ot használják, amely az Advanced Encryption Standard egy speciális változata, amely 256 bites kulcsmérettel rendelkezik.
Érdemes megjegyezni, hogy a Bitcoin blokklánca a közhiedelemmel ellentétben nem használ titkosítást. Ehelyett egy speciális digitális aláírási algoritmust (DSA), az elliptikus görbéken alapuló digitális aláírási algoritmust (ECDSA) használja, amely titkosítás nélkül hoz létre digitális aláírásokat.
Sokan tévesen azt hiszik, hogy az ECDSA az elliptikus görbe-kriptográfián (ECC) alapul, amely viszont több feladatra is alkalmazható, többek között titkosításra, digitális aláírásra és álvéletlen generátorokra. Maga az ECDSA azonban egyáltalán nem használható titkosításra.
Előnyök és hátrányok
A szimmetrikus algoritmusok meglehetősen magas szintű biztonságot nyújtanak, ugyanakkor lehetővé teszik az üzenetek gyors titkosítását és visszafejtését. A szimmetrikus rendszerek viszonylagos egyszerűsége logisztikai előnyt is jelent, mivel kevesebb számítási teljesítményt igényelnek, mint az aszimmetrikus rendszerek. Ráadásul a szimmetrikus titkosítás által nyújtott biztonság egyszerűen növelhető a kulcs hosszának növelésével. A szimmetrikus kulcs hosszához adott minden egyes bitnél exponenciálisan megnövekszik a titkosítás találgatásos támadással történő feltörésének nehézsége.
Bár a szimmetrikus titkosítás számos előnnyel jár, van egy jelentős hátránya: az adatok titkosításához és a visszafejtéséhez használt kulcsok továbbításának elkerülhetetlen problémája. Ha ezeket a kulcsokat nem biztonságos kapcsolaton keresztül osztják meg, rosszindulatú harmadik felek megszerezhetik őket. Ha egy illetéktelen felhasználó hozzáfér egy adott szimmetrikus kulcshoz, az adott kulcs által titkosított adatok biztonsága veszélybe kerül. E probléma megoldására számos webes protokoll a szimmetrikus és aszimmetrikus titkosítás kombinációját használja a biztonságos kapcsolatok létrehozásához. Az ilyen hibrid rendszerek legjelentősebb példái közé tartozik a TLS (Transport Layer Security) kriptográfiai protokoll, amelyet a modern internet nagy részének biztosítására használják.
Azt is meg kell jegyezni, hogy a számítógépes titkosítás minden típusa sebezhető lehet nem megfelelő kivitelezés esetén. Bár egy kellően hosszú kulcs matematikailag lehetetlenné teheti a találgatásos támadást, a programozók által elkövetett kivitelezési hibák gyakran olyan gyengeségeket okoznak, amelyek megnyitják az utat a kibertámadások előtt.
Záró gondolatok
Relatív gyorsaságának, egyszerűségének és biztonságának köszönhetően a szimmetrikus titkosítást széles körben használják az internetes forgalom biztosításától kezdve a felhőszervereken tárolt adatok védelméig. Bár gyakran párosítják aszimmetrikus titkosítással a kulcsok biztonságos átviteli problémájának megoldása érdekében, a szimmetrikus titkosítási rendszerek továbbra is a modern számítógépes biztonság kritikus elemei.