Ez a fejezet a blokkos titkosítás különböző működési módjait tárgyalja. Ezek egy általános blokkos rejtjelezés eljárási szabályai. Érdekes módon a különböző üzemmódok különböző tulajdonságok elérését eredményezik, amelyek növelik az alapul szolgáló blokkos rejtjelező biztonságát.
A blokkos rejtjelező a rögzített méretű adatblokkokat dolgozza fel. Általában az üzenet mérete nagyobb, mint a blokkméret. Ezért a hosszú üzenetet szekvenciális üzenetblokkok sorozatára osztják, és a rejtjelező ezeket a blokkokat egyenként dolgozza fel.
Elektronikus kódkönyv (ECB) mód
Ez a mód a legegyszerűbb módja a szekvenciálisan felsorolt üzenetblokkok sorozatának feldolgozásának.
Művelet
-
A felhasználó fogadja az első nyílt szövegű blokkot, és a kulccsal titkosítja, hogy előállítsa az első rejtjelezett szövegű blokkot.
-
Ezután elveszi a második tiszta szövegblokkot, és ugyanezt a folyamatot követi ugyanazzal a kulccsal, és így tovább, és így tovább.
Az ECB mód determinisztikus, vagyis ha a P1, P2,…, Pm tisztaszövegblokkot kétszer titkosítjuk ugyanazzal a kulccsal, a kimeneti rejtjelezett szövegblokkok ugyanazok lesznek.
Tény, hogy egy adott kulcshoz technikailag létrehozhatunk egy kódkönyvnyi rejtjelezett szöveget az összes lehetséges tisztaszövegblokkhoz. A titkosítás ekkor csak annyit jelentene, hogy megkeresnénk a kívánt egyszerű szöveget, és kiválasztanánk a megfelelő rejtjelezett szöveget. Így a művelet analóg a kódszavak kódkönyvben történő hozzárendelésével, és ezért kap hivatalos nevet – Elektronikus kódkönyv működési mód (ECB). Ezt a következőképpen szemléltetjük –
Analysis of ECB Mode
A valóságban bármely alkalmazási adat általában részinformációkkal rendelkezik, amelyek kitalálhatók. Például a fizetés tartománya kitalálható. Az ECB módból származó rejtjelezett szöveg lehetővé teheti a támadó számára, hogy próbálgatással kitalálja az egyszerű szöveget, ha az egyszerű szövegű üzenet kiszámítható tartományon belül van.
Ha például az ECB módból származó rejtjelezett szövegről ismert, hogy titkosít egy fizetési számot, akkor kis számú próbálkozással a támadó visszanyerheti a számot. Általában nem kívánunk determinisztikus rejtjelezést használni, ezért az ECB üzemmódot a legtöbb alkalmazásban nem szabad használni.
Cipher Block Chaining (CBC) üzemmód
A CBC üzemmód üzenetfüggőséget biztosít a rejtjelszöveg előállításához, és nem determinisztikussá teszi a rendszert.
Működés
A CBC üzemmód működését a következő ábra mutatja. A lépések a következők –
-
Töltse be az n bites inicializációs vektort (IV) a felső regiszterbe.
-
XOR-olja az n bites nyílt szövegű blokkot a felső regiszterben lévő adatértékkel.
-
Kódolja az XOR művelet eredményét a K kulcsú mögöttes blokkos titkosítással.
-
Töltsük a rejtjelezett szövegblokkot a felső regiszterbe, és folytassuk a műveletet, amíg az összes tisztán szöveges blokkot fel nem dolgozzuk.
-
A dekódoláshoz az IV-adatokat XOR-ozzuk az első dekódolt rejtjelezett szövegblokkal. Az első rejtjelezett szövegblokkot szintén a regiszterbe tápláljuk az IV helyett a következő rejtjelezett szövegblokk dekódolásához.
A CBC üzemmód elemzése
A CBC üzemmódban az aktuális plaintext blokkot hozzáadjuk az előző rejtjelezett szövegblokkhoz, majd az eredményt a kulccsal titkosítjuk. A visszafejtés tehát a fordított folyamat, amely az aktuális rejtjelezett szöveg visszafejtését, majd az előző rejtjelezett szövegblokk hozzáadását jelenti az eredményhez.
A CBC előnye az ECB-vel szemben, hogy az IV megváltoztatása azonos üzenet esetén eltérő rejtjelezett szöveget eredményez. Hátránya, hogy az átviteli hiba a visszafejtés során a láncolási hatás miatt néhány további blokkra is átterjed.
Meg kell említeni, hogy a CBC mód egy jól ismert adat eredet hitelesítési mechanizmus alapját képezi. Így előnye van azoknál az alkalmazásoknál, amelyek egyszerre igénylik a szimmetrikus titkosítást és az adat eredetének hitelesítését.
Cipher Feedback (CFB) mód
Ebben a módban minden egyes rejtjelezett szövegblokk “visszakapcsolódik” a titkosítási folyamatba a következő nyílt szövegű blokk titkosítása érdekében.
Működés
A CFB mód működését a következő ábra szemlélteti. A jelen rendszerben például egy üzenetblokk mérete “s” bit, ahol 1 < s < n. A CFB üzemmódhoz inicializációs vektor (IV) szükséges, mint kezdeti véletlenszerű n-bites bemeneti blokk. Az IV-nek nem kell titkosnak lennie. A művelet lépései a következők: –
-
Töltse be az IV-et a felső regiszterbe.
-
Kódolja a felső regiszterben lévő adatértéket a K kulcsú mögöttes blokkrajtóval.
-
Vegye csak a titkosítási folyamat kimenetének “s” számú legjelentősebb bitjét (bal oldali bitek), és XOR-olja azokat az “s” bites tiszta szövegű üzenetblokkal a rejtjelezett szövegblokk létrehozásához.
-
A rejtjelezett szövegblokkot a már meglévő adatok balra tolásával betápláljuk a felső regiszterbe, és a műveletet addig folytatjuk, amíg az összes rejtjelezett szövegblokkot fel nem dolgozzuk.
-
Az előző rejtjelezett szövegblokkot a kulccsal titkosítjuk, majd az eredményt XOR-ozzuk az aktuális rejtjelezett szövegblokkal.
-
A dekódoláshoz hasonló lépéseket követünk. A dekódolás kezdetén az előre meghatározott IV-et töltik be.
A CFB mód elemzése
A CFB mód jelentősen különbözik az ECB módtól, az adott tisztán szövegblokknak megfelelő rejtjelezett szöveg nem csak az adott tisztán szövegblokk és a kulcs, hanem az előző rejtjelezett szövegblokk függvénye is. Más szóval, a rejtjelezett szövegblokk az üzenet függvénye.
A CFB-nek van egy nagyon furcsa tulajdonsága. Ebben az üzemmódban a felhasználó a rejtjelezett szöveget csak a blokkos rejtjelezés titkosítási folyamatának felhasználásával dekódolja. Az alapul szolgáló blokkos rejtjelező visszafejtési algoritmusa soha nem kerül felhasználásra.
A CFB mód nyilvánvalóan egy blokkos rejtjelezőt alakít át egyfajta folyamrejtjelezővé. A titkosítási algoritmust kulcsfolyam-generátorként használják a kulcsfolyam előállításához, amelyet az alsó regiszterbe helyeznek. Ezt a kulcsfolyamot ezután XOR-olják az egyszerű szöveggel, mint a folyamviírás esetében.
A blokkviírás folyamviírássá alakításával a CFB üzemmód biztosítja a folyamviírás néhány előnyös tulajdonságát, miközben megtartja a blokkviírás előnyös tulajdonságait.
A másik oldalon a blokkok változása miatt az átviteli hiba továbbterjed.
Kimeneti visszacsatolás (OFB) mód
Ez a mögöttes blokkos rejtjelezőből az egymást követő kimeneti blokkok visszatáplálását jelenti. Ezek a visszacsatolt blokkok bitekből álló sorozatokkal látják el a titkosítási algoritmust, amely a CFB módhoz hasonlóan kulcsfolyam-generátorként működik.
A generált kulcsfolyamot XOR-olják a nyílt szövegű blokkokkal. Az OFB üzemmódhoz egy IV-re van szükség, mint kezdeti véletlenszerű n bites bemeneti blokkra. Az IV-nek nem kell titkosnak lennie.
A működést a következő ábra szemlélteti –
Counter (CTR) mód
A CFB mód visszacsatolás nélküli, számlálón alapuló változatának tekinthető. Ebben az üzemmódban mind az adónak, mind a vevőnek hozzá kell férnie egy megbízható számlálóhoz, amely minden egyes rejtjelezett szövegblokk cseréjekor új közös értéket számol. Ez a megosztott számláló nem feltétlenül titkos érték, de a kihívás az, hogy mindkét félnek szinkronban kell tartania a számlálót.
Művelet
A CTR módban történő titkosítás és visszafejtés a következő ábrán látható. A művelet lépései: –
-
A kezdeti számláló értéke a felső regiszterben a feladó és a vevő számára azonos. Ugyanaz a szerepe, mint a CFB (és CBC) üzemmódban az IV-nek.
-
Kódoljuk a számláló tartalmát a kulccsal, és az eredményt tegyük az alsó regiszterbe.
-
Vegyük az első P1 tisztaszövegblokkot, és XOR-ozzuk azt az alsó regiszter tartalmával. Ennek eredménye a C1. Küldje el a C1-et a vevőnek, és frissítse a számlálót. A számláló frissítése helyettesíti a CFB üzemmódban a rejtjelezett szöveg visszacsatolását.
-
Folytassuk így, amíg az utolsó nyílt szövegű blokkot nem titkosítottuk.
-
A dekódolás a fordított folyamat. A rejtjelezett szövegblokkot XOR-ozzuk a titkosított tartalom kimeneti számlálóértékével. Az egyes rejtjelezett szövegblokkok visszafejtése után a számláló ugyanúgy frissül, mint a titkosítás esetében.
A számláló üzemmód elemzése
Nincs üzenetfüggőség, ezért egy rejtjelezett szövegblokk nem függ az előző tisztaszövegblokkoktól.
A CFB üzemmódhoz hasonlóan a CTR üzemmód sem tartalmazza a blokkos rejtjelezés visszafejtési folyamatát. Ennek az az oka, hogy a CTR üzemmód valójában a blokkrajtót használja a kulcsfolyam létrehozására, amelyet az XOR-függvény segítségével titkosítanak. Más szavakkal, a CTR üzemmód a blokkos rejtjelezést is átalakítja folyamrejtjelezéssé.
A CTR üzemmód komoly hátránya, hogy szinkron számlálót igényel a küldőnél és a vevőnél. A szinkronizáció elvesztése az egyszerű szöveg helytelen visszanyeréséhez vezet.
A CTR mód azonban a CFB mód szinte minden előnyével rendelkezik. Ráadásul egyáltalán nem terjed átviteli hiba.