A kriptográfia vagy kriptológia az információ elrejtésének gyakorlata és tanulmányozása. Néha kódolásnak is nevezik, de ez nem igazán helyes elnevezés. Ez a tudomány arra szolgál, hogy megpróbáljuk az információt titokban és biztonságban tartani. A modern kriptográfia a matematika, az informatika és az elektrotechnika keveréke. A kriptográfiát használják a bankkártyáknál, a számítógépes jelszavaknál és az internetes vásárlásnál.
Amikor egy üzenetet kriptográfiával küldenek, az üzenet küldése előtt megváltozik (vagy titkosítják). A szöveg megváltoztatásának módszerét "kódnak", pontosabban "rejtjelezésnek" nevezik. A megváltoztatott szöveget "rejtjelezett szövegnek" nevezzük. A változtatás megnehezíti az üzenet olvashatóságát. Valakinek, aki el akarja olvasni, vissza kell változtatnia (vagy visszafejteni). Hogy hogyan lehet visszaváltani, az titok. Az üzenetet küldő és az üzenetet megkapó személynek is tudnia kell a titkos módját, de másoknak nem szabad tudniuk. A titkosított szöveg tanulmányozását a titok feltárása érdekében "kriptoanalízisnek" vagy "feltörésnek" vagy néha "kódtörésnek" nevezik.
A különböző típusú kriptográfiák könnyebben vagy nehezebben használhatók, és jobban vagy rosszabbul rejtik el a titkos üzenetet. A titkosítások egy "kulcsot" használnak, amely egy titok, amely elrejti a titkos üzeneteket. A kriptográfiai módszernek nem kell titkosnak lennie. Különböző emberek használhatják ugyanazt a módszert, de különböző kulcsokat, így nem tudják elolvasni egymás üzeneteit. Mivel a Caesar-féle rejtjelezésnek csak annyi kulcsa van, ahány betű van az ábécében, könnyen feltörhető az összes kulcs kipróbálásával. A több milliárd kulcsot lehetővé tevő rejtjeleket bonyolultabb módszerekkel lehet feltörni.
Caesar óta számos továbbfejlesztett cifrázó készült. Némelyikben ügyes matematikát alkalmaztak, hogy ellenálljanak az okos rejtjelelemzésnek. A 20. században a számítógépek váltak a kriptográfia fő eszközévé.
Alapfogalmak röviden
- Egyszerű szavakban: a titkosítandó eredeti üzenetet nevezik nyílt szövegnek (plaintext), a titkosított változatát rejtjelezett szövegnek (ciphertext).
- Kulcs: egy titok (szám, karakterlánc vagy adat), amely szabályozza a titkosítás és visszafejtés működését. Ugyanaz a módszer különböző kulcsokkal más-más eredményt ad.
- Visszafejtés: a rejtjelezett szöveg visszaalakítása olvasható nyílt szöveggé a megfelelő kulcs segítségével.
- Hash (összegző függvény): egyirányú művelet, ami tetszőleges hosszúságú bemenetből rögzített hosszúságú ujjlenyomatot (digest) készít; nem fordítható vissza.
Főbb titkosítási típusok
- Szimmetrikus (vagy titkos kulcsú) titkosítás: ugyanaz a kulcs használatos titkosításra és visszafejtésre. Gyors, ezért nagy mennyiségű adat titkosítására alkalmas. Példa: AES, ChaCha20.
- Aszimmetrikus (nyilvános kulcsú) kriptográfia: két kulcs van: egy nyilvános (mindenki tudja) és egy privát (titok). A nyilvánossal titkosítanak, a priváttal visszafejtenek; vagy a priváttal aláírnak, a nyilvánossal ellenőriznek. Példa: RSA, ECC (elliptikus görbe kriptográfia).
- Hash függvények és MAC-ok: üzenetek integritásának ellenőrzésére szolgálnak. MAC (Message Authentication Code) titkos kulcsot is használ, hash önmagában csak ujjlenyomatot ad. Példa: SHA-2, SHA-3, HMAC.
- Digitális aláírások: a hitelességet és nem-letihetetlenséget biztosítják (pl. ECDSA, RSA-sig).
Gyakori alkalmazások
- Biztonságos webkapcsolat: TLS/HTTPS védi az internetes forgalmat (weboldalak, banki műveletek).
- Elektronikus aláírások és hitelesítés: e-ügyintézés, szoftverfrissítések aláírása.
- Tárolt adatok védelme: merevlemezek és felhőtárhely titkosítása.
- Jelszókezelés: jelszavak biztonságos tárolása sózással és erős hash-függvényekkel (pl. Argon2, bcrypt, scrypt).
- Üzenetküldés: végpontok közötti titkosítás (end-to-end) üzenetküldő alkalmazásokban.
Kriptoanalízis és támadási módok
A kriptoanalízis a titkosítások feltörésének tudománya és gyakorlata. A támadások lehetnek:
- Brutál erővel (brute force): minden lehetséges kulcs kipróbálása; a kulcsterület mérete (key space) határozza meg a nehézséget — ezért fontos a megfelelő kulcshossz.
- Ismert szöveg/ismert pár (known-plaintext): ha a támadónak van némi pár nyílt- és rejtjelezett szövege, az segíthet a kulcs visszanyerésében.
- Választott szöveg/választott rejtjelezett szöveg (chosen-plaintext/ chosen-ciphertext): a támadó képes kiválasztani bemeneteket és elemezni a kimeneteket.
- Oldalsáv (side-channel) támadások: nem a matematikát, hanem a megvalósítást támadják (időzítés, elektromos zaj, fogyasztás), ezért a biztonságos implementáció is kritikus.
- Matematikai törések: elméleti áttörések az algoritmus gyengeségeire építve (például egy nem megfelelő paraméterezés vagy új elméleti eredmény).
Például a Caesar-rejtjelezés nagyon kis kulcsteret ad, ezért egyszerűen feltörhető minden lehetséges eltolás kipróbálásával — ezért nem használják modern célokra.
Modern problémák és válaszok
- Kulcsgazdálkodás: a kriptográfia sokszor csak annyira erős, amennyire a kulcsok kezelése biztonságos. Biztonságos tárolás, rotálás és megsemmisítés szükséges (HSM-ek, kulcstárak).
- Véletlenség: jó minőségű véletlenszám-generátor (CSPRNG) nélkül a kulcsok kiszámíthatóak lehetnek — ez súlyos biztonsági kockázat.
- Post-quantum (kvantumellenálló) kriptográfia: a kvantumszámítógépek bizonyos aszimmetrikus algoritmusokat (pl. RSA, ECC) veszélyeztethetnek. A NIST már kiválasztotta az első post-quantum algoritmusokat (pl. Kyber, Dilithium) szabványosításra; a migráció folyamatban van.
Gyakorlati tanácsok — legjobb gyakorlatok
- Használj bevált, szabványos algoritmusokat és implementációkat, ne találj fel saját titkosító módszereket.
- Alkalmazz megfelelő kulcshosszokat: például szimmetrikus titkosításhoz legalább 128 bit (AES-128), aszimmetrikusnál az alkalmazástól függően nagyobb paraméterek (RSA 3072+ vagy megfelelő ECC paraméterek) — kövesd a hivatalos irányelveket és frissítéseket.
- Használj erős jelszókezelést: sózás és erős hash-függvények (Argon2, bcrypt), többtényezős azonosítás (2FA) ahol lehet.
- Frissítsd a rendszereket és könyvtárakat: sebezhetőségek gyakran a régi, hibás implementációkban találhatók.
- Biztosítsd a kulcsok megfelelő fizikai és logikai védelmét: HSM, kulcspénztárok, titkosított tárolás.
Összefoglalás
A kriptográfia ma a mindennapi digitális biztonság alapja: adatvédelmet, hitelességet és integritást biztosít. A fejlődés folyamatos — matematikai eredmények, implementációs gyakorlatok és a kvantumszámítástechnika egyaránt hatnak rá — ezért fontos a bevált módszerek követése, a jó kulcsgazdálkodás és a rendszeres frissítések végrehajtása.

