stream cipher
Főnév
stream cipher (tsz. stream ciphers)
- (informatika) A adatfolyam-rejtjelezés (stream cipher) egy olyan szimmetrikus titkosítási módszer, amely az adatokat egyesével, bitenként vagy bájtonként titkosítja, nem pedig blokkokban, mint a block cipher. Lényege, hogy egy kulcsalapú pszeudovéletlen bájtsorozatot (kulcsfolyamot) generál, amelyet az üzenet minden elemével (általában XOR művelettel) kombinálva hozza létre a titkosított adatot.
Ez a típusú titkosítás különösen előnyös valós idejű kommunikációban, például hang- vagy videóátvitelben, ahol a sebesség és alacsony késleltetés kiemelten fontos.
🧠 Mi az a stream cipher?
A stream cipher egy szimmetrikus kulcsú titkosítási algoritmus, amely: - egy kulcsból és indítóértékből (IV) kiindulva - egy pszeudovéletlen bitsorozatot (kulcsfolyamot) generál, - majd ezt bitenként vagy bájtonként kombinálja az üzenettel (általában XOR segítségével), - és így áll elő a titkosított adat.
🔁 Hogyan működik?
- Kulcs + IV → Pszeudovéletlen bájtsorozat generálása.
- Az üzenet minden bitjét vagy bájtját XOR-olják a megfelelő kulcsbit/bájt értékkel.
- Az eredmény: titkosított adat.
- A visszafejtéshez ugyanazt a kulcsfolyamot használjuk, és ismét XOR-ozunk.
Mivel a XOR b XOR b = a, a művelet reverzibilis, ha ugyanaz a kulcsfolyam áll rendelkezésre.
🧩 Alkalmazási példa (elvi szinten)
- Kulcsfolyam:
K = 10101100 - Eredeti szöveg:
M = 01010101 - Titkosított adat:
C = M ⊕ K = 11111001
Visszafejtés: - C ⊕ K = M
🔐 Előnyei a stream ciphernek
| Előny | Magyarázat |
|---|---|
| Gyors, alacsony késleltetés | Nincs szükség blokkok előállítására |
| Hatékony valós idejű adatoknál | Voice over IP, videó stream |
| Kisebb erőforrásigény | Mobil, beágyazott rendszerekben előnyös |
| Bármilyen hosszú adatot kezel | Nem kell padding |
📦 Népszerű stream cipher algoritmusok
| Algoritmus | Jellemzők |
|---|---|
| RC4 | Klasszikus, de elavult, sebezhető |
| Salsa20 / ChaCha20 | Modern, gyors, erős biztonság |
| Grain | Hardverbarát, kis méretű |
| Rabbit | Estream projekt egyik döntőse |
| MICKEY | Szintén alacsony energiaigényű eszközökre |
⚠️ RC4 – a tanulság
- Sokáig az egyik legnépszerűbb stream cipher volt (pl. WEP, SSL).
- De gyenge kulcsmenedzsment, kulcsújrahasználás, és ismétlődő minták miatt sebezhetővé vált.
- Ma már nem ajánlott a használata.
🧪 Modern alternatíva: ChaCha20
- Biztonságos és gyorsabb, mint AES sok szoftveres környezetben.
- 256 bites kulcsot és 96 bites nonce-ot használ.
- Kombinálható Poly1305-tel hitelesítéshez: ChaCha20-Poly1305 – modern AEAD megoldás (pl. TLS 1.3, WireGuard VPN, OpenSSH használja).
🛡️ Védelem – mitől biztonságos egy stream cipher?
- Egyszeri kulcsfolyam használat – sose használd ugyanazt a kulcsot kétszer!
- Erős PRNG (pszeudorandom generátor) – a kulcsfolyam nem ismétlődhet, ne legyen kiszámítható.
- Megbízható kulcskezelés – ha a kulcs kompromittálódik, minden elveszik.
📉 Mi történik, ha újrahasználják a kulcsfolyamot?
Két üzenet:
M1 ⊕ K = C1M2 ⊕ K = C2
Ha C1 ⊕ C2 = M1 ⊕ M2, a támadó ki tudja számítani a két eredeti üzenet XOR-ját, ami sok esetben visszafejthető, főleg ha az egyik ismert vagy ismétlődő mintákat tartalmaz.
Ez a hiba a WEP (Wired Equivalent Privacy) protokoll végét is jelentette.
🔄 Stream cipher vs Block cipher
| Tulajdonság | Stream cipher | Block cipher |
|---|---|---|
| Adatfeldolgozás | Bit/bájt alapon | Blokk (pl. 128 bit) |
| Padding szükséges? | Nem | Igen, ha nem teljes a blokk |
| Sebesség | Gyorsabb valós idejű adatnál | Optimalizált nagy mennyiséghez |
| Használat | VoIP, VPN, rádió | HTTPS, fájl, lemeztitkosítás |
| Tipikus algoritmus | ChaCha20 | AES |
🔐 AEAD és stream cipher
- A stream cipher önmagában nem biztosít integritást.
- Ezért kombinálják hitelesítési algoritmusokkal, pl.:
- ChaCha20 + Poly1305
- Salsa20 + UMAC
Így jön létre az AEAD (Authenticated Encryption with Associated Data), ami titkosít és hitelesít is egyszerre.
📚 Használati területek
| Alkalmazás | Algoritmus |
|---|---|
| VPN (WireGuard) | ChaCha20 |
| Web (TLS 1.3) | ChaCha20-Poly1305 |
| Üzenetküldés (Signal, WhatsApp) | Double Ratchet + ChaCha20 |
| Beágyazott rendszerek | Grain, MICKEY |
| WEP (elavult) | RC4 |
⚠️ Tipikus sebezhetőségek
| Hiba | Következmény |
|---|---|
| Kulcs újrahasználata | C1 ⊕ C2 → üzenetek kapcsolatban |
| Ismétlődő nonce | Kulcsfolyam újrahasznosul, támadás lehetséges |
| Gyenge PRNG | Kulcsfolyam kiszámítható |
| Hiányzó hitelesítés | Forgalom manipulálható, hamis üzenetek küldhetők |
🧠 Összefoglalás
| Fogalom | Jelentés |
|---|---|
| Stream cipher | Bitenként vagy bájtonként történő szimmetrikus titkosítás |
| Kulcsfolyam | Pseudo-véletlen bájtsorozat, XOR-olják az üzenettel |
| Előny | Gyors, alacsony késleltetés, padding nélküli |
| Hátrány | Kulcs újrahasználata végzetes lehet, nincs integritás |
| Modern algoritmus | ChaCha20 (gyors, biztonságos, AEAD-kompatibilis) |
| Felhasználás | VPN, VoIP, rádiókommunikáció, mobileszközök |
| Védelem | Erős kulcskezelés, nonce, AEAD használat |
A stream cipher tehát kulcsfontosságú ott, ahol gyors és kis méretű titkosításra van szükség. Bár a block cipher az ipari szabvány fájl- és adatbázis-titkosításra, a stream cipher az élő adatfolyamok védelmében verhetetlen.
- stream cipher - Szótár.net (en-hu)
- stream cipher - Sztaki (en-hu)
- stream cipher - Merriam–Webster
- stream cipher - Cambridge
- stream cipher - WordNet
- stream cipher - Яндекс (en-ru)
- stream cipher - Google (en-hu)
- stream cipher - Wikidata
- stream cipher - Wikipédia (angol)