Mi a különbség a stream-rejtjelek és a blokk-rejtjelek között?
A rejtjel olyan matematikai szabályok vagy algoritmusok halmaza, amelyek olvasható szöveget vagy egyszerű szöveget olvashatatlan szöveggé vagy rejtjelezett szöveggé alakítanak át. Az adatfolyam-rejtjelek és a blokk-rejtjelek közötti elvi különbség az, hogy a stream-rejtjelek szövegfolyamokon dolgoznak, egy biten vagy egy bájtonként, míg a blokk-rejtjelek szövegblokkon.
Adatfolyam titkosítás
A stream titkosítás alapötlete az, hogy a szöveget kis, egy bites vagy egy bájt hosszúságú blokkokra osztja, és minden blokkot kódol sok korábbi blokktól függően. Az adatfolyam-rejtjelek minden egyes bithez vagy bájthoz más titkosítási kulcsot használnak – egy értéket, amelyet az algoritmusba kell betáplálni –, így ugyanaz a bit vagy bájt minden egyes titkosításkor más-más rejtjelszöveget állít elő. Egyes adatfolyam-titkosítók kulcsfolyam-generátort használnak, amely véletlenszerű vagy csaknem véletlenszerű bitfolyamot állít elő. A titkosítás egy logikai műveletet hajt végre, amelyet kizárólagos VAGY-nak neveznek, a kulcsfolyam bitjei és a nyílt szöveg bitjei között, hogy titkosított szöveget hozzon létre.
Blokktitkosítás
A blokk titkosítás alapötlete, hogy a szöveget viszonylag nagy, jellemzően 64 vagy 128 bites blokkokra osztja, és minden blokkot külön kódol. Ugyanazt a titkosítási kulcsot használják minden blokkhoz, és ez a titkosítási kulcs határozza meg a helyettesítési, szállítási és egyéb matematikai funkciók végrehajtásának sorrendjét az egyes blokkokon. Az erős algoritmusok azt jelentik, hogy a titkosítás visszafejtése, vagy annak meghatározása, hogy az egyes blokkon mely funkciókat milyen sorrendben hajtották végre, gyakorlatilag lehetetlen.
Diffúzió és zavartság
A blokk-rejtjelek az összetévesztés és diffúzió néven ismert technikákat használják a nyílt szöveg titkosított szöveggé titkosításához. A zűrzavar mögött az a gondolat áll, hogy a titkosítási kulcs és a rejtjelezett szöveg közötti kapcsolatot a lehető legbonyolultabbá tegyük. Ideális esetben a titkosítási kulcs minden karakterének hatással kell lennie a rejtjelezett szöveg minden karakterére. Ezzel szemben a diffúzió a nyílt szövegben szereplő egyes karakterek hatását a rejtjelezett szöveg több karakterére terjeszti, így a titkosítás kevésbé lesz kitéve statisztikai támadásoknak.
Előnyök és hátrányok
Az a tény, hogy a stream titkosítók bitenként titkosítják és visszafejtik az adatokat, azt jelenti, hogy különösen jól illeszkednek a valós idejű hardveralkalmazásokhoz, például audio- és videoalkalmazásokhoz. Az adatfolyam-rejtjelek gyengébbek és kevésbé hatékonyak, mint a blokk-rejtjelek, ha szoftveralkalmazásokról van szó, és ritkábban használják őket ezen a területen. A blokkrejtjelek szoftverben könnyebben implementálhatók, mivel olyan hosszúságú blokkokban titkosítják az adatokat, amelyeket a szoftver már használ. A titkosítási kulcs gyakran megegyezik a blokk méretével.