- szimmetrikusak – amikor a kódoláshoz és a dekódoláshoz ugyanazt a kulcsot használjuk) és
- aszimmetrikusak – amikor a kódoláshoz és a dekódoláshoz más kulcsot használunk.
Szimmetrikus titkosítás
A szimmetrikus titkosítás előnye, hogy jóval gyorsabb, mint az aszimmetrikus titkosítás. Hátránya, hogy a feladónak és a címzettnek is ismernie kell a kulcsot, amit csak biztonságos csatornán javasolt elküldeni a feladótól a címzettnek, hiszen a kulcs megszerzésével bárki olvashatja az üzenetet.
Szimmetrikus kulcs alkalmazása esetén a kódolás és a dekódolás ugyanazzal a kulccsal történik. A kulcs lehet jelszó vagy kulcsfájl, esetleg ezek kombinációja.
Folyam (stream) titkosító algoritmus esetén a szöveget és a kulcsot bitenként XOR (kizáró vagy) művelettel összerendeljük. Ebben az esetben a kulcsnak és a szövegnek hasonló hosszúságúnak kell lennie, hogy ne lehessen felismerni az ismétlődést.
Az XOR művelet alkalmazása titkosításhoz
Szimmetrikus titkosítás például a DES, azonban ezt már nem szokták alkalmazni, mivel ez a titkosítás rövid időn belül visszafejthető.
Napjaink vezető szimmetrikus titkosító algoritmusainak az alábbiak mondhatóak:
- AES (Rijndael [‘reinda:l], az AES pályázat nyertese)
- Serpent (AES pályázatra készült)
- Twofish (AES pályázatra készült)
A fent listázott titkosító algoritmusok kombinálhatók is, így például, ha AES-el titkosítottunk egy adatot, azt még titkosíthatjuk Serpent algoritmussal is és a végeredményt tovább titkosíthatjuk Twofish-el. Akkor a legnagyobb a biztonság, ha ezeknél egymástól teljesen különböző kulcsot választunk.
Szimmetrikus titkosítást legtöbbször a tárolt adatok titkosítására alkalmazunk. A következő táblázat az néhány titkosítási algoritmus kódolási és dekódolási sebességét mutatja. A táblázat tartalmazza továbbá az egyes algoritmusok összefűzésével történő titkosítások sebességének mérését is. A táblázat az egyes algoritmusokat illetve algoritmusláncokat azok sebessége szerint csökkenő sorrendben ábrázolja.
Algoritmus |
Kódolás (MB/s)
|
Dekódolás (MB/s)
|
AES
|
139
|
137
|
Twofish
|
106
|
126
|
AES-Twofish
|
58,0
|
60,8
|
Serpent
|
58,2
|
58,8
|
Serpent -AES
|
40,9
|
41,3
|
Twofish-Serpent
|
39,4
|
40,3
|
AES-Twofish-Serpent
|
30,4
|
29,8
|
Serpent-Twofish-AES
|
29,4
|
30,8
|
A szimmetrikus algoritmusok kódolási és dekódolási sebességének összehasonlítása, a méréseket a szerző végezte
Aszimmetrikus titkosítás
Az aszimmetrikus titkosítás alkalmazása esetén a kódolási és dekódolási folyamat lassabb, mint a szimmetrikus módszereket alkalmazva. Emiatt ezt az eljárást nem szívesen alkalmazzák nagyméretű adatok titkosítására.
Az aszimmetrikus titkosítás esetén a kódolás egy nyilvános kulcs segítségével, még a dekódolás egy másik, úgynevezett titkos kulcs segítségével történik.
A legismertebb ilyen eljárás az RSA, amely a nevét a három megalkotójáról kapta:
Rivest, Shamir, Adleman
A gyakorlatban a működése úgy néz ki, hogy a kommunikáció résztvevői rendelkeznek saját nyilvános és titkos kulccsal.
A nyilvános kulcs segítségével titkosítható az adat, amely ezután már csak a hozzá tartozó – kizárólag a címzett birtokában lévő – titkos kulcs segítségével fejthető vissza. A nyilvános kulcsról tudni kell, hogy nem állítható elő belőle a titkos kulcs, és a nyilvános kulcs segítségével nem dekódolható az üzenet.
A folyamat tehát a következő a küldő és a címzett között:
- a címzett megosztja az ő nyilvános kulcsát
- a küldő a kapott nyilvános kulcs alapján kódolja az üzenetet
- a küldő elküldi az így titkosított üzenetet a címzettnek
- a címzett csak nála meglévő titkos kulcs segítségével visszafejti az üzenetet
PGP-módszer
A PGP-módszer alkalmazása egyesíti a szimmetrikus titkosítás gyorsaságát és az aszimmetrikus titkosítás biztonságát. Lényege, hogy az adat szimmetrikus titkosítással kódolt és e mellé elküldi a feladó a hozzá tartozó kulcsot aszimmetrikus titkosítással kódolva. A szimmetrikus titkosításhoz használt kulcsot véletlenszám-generátorral állítják elő, és jellemzően csak egyszer használják fel. Ezt a kulcsot session key-nek is nevezik. A session key kis mérete miatt a titkosítása relatív gyorsan történik.
A folyamat a következőképpen zajlik le a feladó és a címzett között:
- előállítják a szimmetrikus kulcsot
- ezen szimmetrikus kulcs segítségével titkosítják az adatot
- a címzett nyilvános kulcsa segítségével titkosítják a szimmetrikus kulcsot
- a titkosított adatot és titkosított szimmetrikus kulcsot elküldik a címzetthez
- a címzett saját titkos kulcsa segítségével dekódolja a szimmetrikus kulcsot
- a szimmetrikus kulcs segítségével dekódolja az adatot
Őszi Arnold
Óbudai Egyetem Bánki Donát Gépész és Biztonságtechnikai Mérnöki Kar
oszi.arnold@bgk.uni-obuda.hu
Kapcsolódó írásunk
Személyes adatok korszerű informatikai védelme a gyakorlatban