A kriptográfiának nagyon sok különböző része van. Ha azonban titkosítani szeretne bizonyos adatokat, kétféle algoritmus használható: szimmetrikus titkosítási algoritmusok és aszimmetrikus titkosítási algoritmusok. A koncepció ugyanaz: titkosíthatják az adatokat, de más elvek alapján működnek, és más felhasználási eseteik is vannak.
A névleges különbség azonban a titkosítási kulcsokat írja le. A szimmetrikus titkosítási algoritmus egyetlen megosztott kulcsot használ az adatok titkosításához és visszafejtéséhez. Az aszimmetrikus titkosítási algoritmus két összekapcsolt kulcsot használ, egyet a visszafejtéshez, egyet pedig a visszafejtéshez.
Terminológia
Az aszimmetrikus titkosítási algoritmusok két különböző kulcs használatára támaszkodnak. Az egyik kulcs az adatok titkosítására, a másik a visszafejtésre használható. A két titkosítási kulcs nem csak egy régi két érték. Ezek lényegileg összefüggenek, és kulcsgeneráló algoritmussal kell előállítani őket.
Az aszimmetrikus titkosítás alternatív neve a nyilvános kulcsú titkosítás. Ennek az az oka, hogy a két kulcs közül az egyik nyilvános. A hagyományos koncepció az, hogy a titkosítási kulcsot nyilvánosan megosztják, a visszafejtési kulcsot pedig szigorúan titkosan tartják. Emiatt a titkosítási kulcsot nyilvános kulcsnak, a visszafejtési kulcsot pedig a privát kulcsnak nevezik.
Ez a konfiguráció bárki számára lehetővé teszi az üzenet titkosítását, így csak a privát kulcs tulajdonosa tudja visszafejteni. Ez azért hasznos, mert bárki biztonságosan kommunikálhat a kívánt címzettel egyetlen közzétett titkosítási kulccsal. A biztonságos visszakommunikáció érdekében a címzettnek az eredeti feladó nyilvános kulcsát kell használnia.
Elméletileg nincs ok arra, hogy ne cserélhetné fel a kulcsokat, és ne oszthatná meg a visszafejtési kulcsot, miközben a titkosítási kulcsot privátban tartja. Ez felhasználható a forrás hitelességének ellenőrzésére, ha nem nyújt érdemi biztonságot. Ez azonban a gyakorlatban nem valósul meg, mivel más mechanizmusok is léteznek ugyanazon eredmény elérésére.
Szimmetrikus titkosítási algoritmusok tulajdonságai
Az aszimmetrikus titkosítási algoritmusok sokkal nagyobb kulcsokat igényelnek, mint a szimmetrikus titkosítási algoritmusok, ha azonos szintű biztonságot nyújtanak. Általában a 128 bites titkosítási kulccsal rendelkező szimmetrikus titkosítási algoritmus biztonságosnak tekinthető, bár a 256 bites kulcsokat részesítik előnyben. Az aszimmetrikus titkosítási algoritmusban a 2048 bites kulcsok biztonságosnak tekinthetők.
A 2048 bites kulcs példa az RSA-ra vonatkozik, amely régóta az aszimmetrikus titkosítás szabványa. Az elliptikus görbe kriptográfia azonban egy újabb koncepció, amely szintén aszimmetrikus, de lényegesen kisebb kulcsokat használ. A 2048 bites RSA kulcs a 224 bites elliptikus görbe kulcsával egyenértékű biztonságot nyújt.
Tipp: A fenti értékek biztonságosnak tekinthetők kereskedelmi használatra, de az NSA erősebb kulcsokat igényel a szigorúan titkos titkosításhoz. Legalább 3072 bites RSA-kulcsok, míg 384 bites elliptikus görbe kulcsok szükségesek. Érdemes megjegyezni, hogy a 3072 bites RSA kulcs gyengébb, mint a 384 bites elliptikus görbe kulcs.
Az aszimmetrikus titkosítási algoritmusok általában viszonylag lassúak a szimmetrikus titkosítási algoritmusokhoz képest. A biztonságos kommunikáció nem biztonságos csatornán keresztül hajtható végre, ha mindkét fél aszimmetrikus kulcspárt generál, majd nyilvános kulcsokat cserél. Ily módon mindkét fél küldhet olyan üzeneteket, amelyeket csak a másik tud visszafejteni.
A gyakorlatban legalább az egyik félnek ellenőriznie kell nyilvános kulcsának integritását. Ez PKI-n vagy nyilvános kulcsú infrastruktúrán keresztül történik. Ez olyan tanúsító hatóságok formájában valósul meg, amelyek aláírják mások kulcsait annak bizonyítására, hogy személyazonosságukat ellenőrizték. Ebben a rendszerben az összes tanúsító hatóságnak megbízhatónak kell lennie; enélkül a rendszer szétesik.
Használata a gyakorlatban
Az aszimmetrikus titkosítási algoritmusokat általában nem használják tömeges titkosításhoz, különösen akkor, ha az idő vagy a teljesítmény probléma. Használhatók egyszeri üzenetek, például egy e-mail tartalmának titkosítására. Azonban a nem biztonságos csatorna biztosítására való képességük kiváló választássá teszi őket egy olyan kulcscsere protokollhoz, amely szimmetrikus kulcsokat továbbít, amelyeket aztán hatékonyabb tömeges titkosításhoz lehet használni.
Ez a használati eset a TLS-ben, amely biztonságot nyújt a HTTPS-ben. A felhasználó csatlakozik egy webszerverhez; ezután nyilvános kulcsokat cserélnek, hogy titkosítsák egymásnak a kis üzeneteket. A szerver ezután létrehoz egy szimmetrikus kulcsot, titkosítja azt a felhasználó nyilvános kulcsával, és elküldi nekik. A felhasználó visszafejti a kulcsot, majd a szimmetrikus kulcs segítségével hatékonyan titkosíthatja a szerverrel folytatott jövőbeni kommunikációt.
A fenti folyamat során egy tanúsító hatóság ellenőrzi a kiszolgáló nyilvános kulcsát. Ez lehetővé teszi a felhasználó számára, hogy biztos legyen abban, hogy azzal kommunikál, akivel kommunikálni próbál. A legtöbb esetben a felhasználó egy egyszer használatos kulcsot állít elő, mivel a szervernek nem kell ellenőriznie, hogy melyik felhasználóval kommunikál.
Következtetés
Az aszimmetrikus titkosítási algoritmusok két különböző kulcsot használnak. Az egyik kulcs a titkosításra, a másik a visszafejtésre szolgál. A kulcsok matematikailag össze vannak kapcsolva, és kulcsgeneráló algoritmussal kell előállítani őket; a véletlenszerű értékek nem működnek. Általában a titkosítási kulcsot nyilvánosan megosztják, így bárki titkosíthatja a kulcspár tulajdonosának szánt üzenetet.
Amíg a visszafejtési kulcs privát marad, csak a kulcstulajdonos tudja visszafejteni a nyilvános kulccsal titkosított üzeneteket. Mint ilyen, az aszimmetrikus titkosítást gyakran nyilvános kulcsú titkosításnak is nevezik.