A blokk-titkosító és az adatfolyam-kódoló közötti fő különbség az, hogy a blokk titkosítás egyszerre titkosítja és dekódolja a szöveg tömbjét. Másrészt a patak titkosítás titkosítja és dekódolja a szöveget a szöveg egy bájtjával egyidejűleg.
Összehasonlító táblázat
Az összehasonlítás alapja | Blokk titkosítás | Patak titkosítás |
---|---|---|
Alapvető | Egyszerre konvertálja a sima szöveget. | Egyszerre konvertálja a szöveget az egyszerű szöveg egy bájtjával. |
Bonyolultság | Egyszerű kialakítás | Összehasonlítva komplex |
A használt bitek száma | 64 vagy annál több bit | 8 bit |
Zavartság és diffúzió | Zavart és diffúziót használ | Csak zavartól függ |
Az alkalmazott algoritmus módok | EKB (elektronikus kódkönyv) CBC (Cipher Block Chaining) | CFB (Cipher Feedback) OFB (kimeneti visszajelzés) |
megfordíthatóság | A titkosított szöveg megfordítása nehéz. | A titkosításhoz XOR-t használ, amely könnyen megfordítható a sima szövegre. |
Végrehajtás | Feistel Cipher | Vernam Cipher |
A Block Cipher meghatározása
A Cipher blokk egy üzenetet vesz fel, és egy meghatározott méretű blokkokra bontja, és az üzenet egy blokkját egy pillanat alatt átalakítja. Például van egy üzenet a „STREET_BY_STREET” egyszerű szöveges titkosításhoz. A bock titkosítás használatával először a „STREET” kódot kell titkosítani, majd ezt követően „_BY_” és végül „STREET”.
A gyakorlatban a kommunikáció csak bitekben történik. Ezért a STREET valójában a STREET ASCII karakterének bináris egyenértékét jelenti. Ezt követően minden algoritmus titkosítja ezeket; az eredményül kapott bitek visszaállnak az ASCII-egyenértékbe.
A blokk-titkok használatával kapcsolatban nyilvánvaló probléma, hogy megismétli a szöveget, amelyhez ugyanazt a titkot generáljuk. Ezért a cryptanalyst-nak egy tippet adna, ami megkönnyíti az egyszerű szövegek ismétlődő karakterláncainak kitalálását. Ennek eredményeként feltárhatja az egész üzenetet.
Ennek a problémának a leküzdése érdekében a láncolási módot használjuk. Ebben a technikában a titkosított szöveg előző blokkját összekeverjük az aktuális mondattal, így a titkosított szöveg homályos, így elkerülhető az azonos tartalmú blokkok ismétlődő mintái.
A Stream Cipher meghatározása
A Stream Cipher jellemzően titkosítja az üzenet egy bájtját a blokkok használata helyett. Vegyünk példát, tegyük fel , hogy az eredeti üzenet (egyszerű szöveg) ASCII-ben „kék ég” (azaz szöveges formátum). Amikor ezeket az ASCII-t egyenértékű bináris értékekké konvertálja, 0 és 1 formátumban adja meg a kimenetet. Legyen 010111001 lefordítva.
Titkosításhoz és dekódoláshoz pszeudorandum bit generátort használunk, amelyben egy kulcs és egy egyszerű szöveg van betöltve. A pszeudorandum-bit generátor 8 bites számfolyamot hoz létre, amelyek látszólag véletlenszerűen ismertek, mint keystream . Hagyja, hogy a beviteli kulcs 100101011 legyen. Most a XORed kulcs és a szöveges szöveg. Az XOR logika könnyen érthető.
Az XOR 1 kimenetet termel, ha egy bemenet 0, a másik pedig 1. A kimenet 0, ha mindkét bemenet 0 vagy mindkét bemenet 1.
A zavartság olyan módszer, amely garantálja, hogy a titkosított szöveg nem ad nyomot az eredeti egyszerű szövegről.
A diffúzió olyan stratégia, amelyet a sima szöveg redundanciájának növelésére használnak a sorok és oszlopok között.
Kulcsfontosságú különbségek a Block Cipher és a Stream Cipher között
- A blokk titkosítási technikája egy szövegblokk titkosítását jelenti egyszerre, azaz egyedül. Hasonlóképpen dekódolja a szöveget úgy, hogy egy blokkot vesz fel a másik után. Ezzel ellentétben a Stream titkosítás technikája egy szöveges bájt titkosítását és dekódolását jelenti egyszerre.
- A blokk titkosítás zavart és diffúziót használ, míg az adatfolyam titkossága csak a zavartól függ.
- A blokk szokásos mérete 64 vagy 128 bit lehet a blokk titkosításban. Ezzel szemben 1 bájt (8 bit) egyszerre alakul át az adatfolyam-kódolóban.
- A blokk titkosítás az EKB (Elektronikus kódkönyv ) és a CBC (Cipher Block Chaining) algoritmus módokat használja. Éppen ellenkezőleg, a Stream titkosítás CFB (Cipher Feedback) és OFB (Output Feedback) algoritmus üzemmódokat használ.
- A Stream-kódoló az XOR-funkciót használja a sima szöveg titkosított szöveggé konvertálására, ezért az XOR-biteket könnyen meg lehet fordítani. Míg a blokk titkosítás nem használja az XOR-t.
- A blokk titkosítása ugyanazt a kulcsot használja minden egyes blokk titkosításához, míg az adatfolyam-kódoló minden egyes bájthoz egy másik kulcsot használ.
Következtetés:
A Block Cipher és a Stream Cipher különbözik attól, ahogyan a sima szöveg titkosítva és dekódolva van. A blokk titkosításának az az ötlete, hogy a sima szöveget tömbökre osztjuk, és ezeket a blokkokat tovább titkosítjuk. Míg az adatfolyam-kódolás a szöveges szöveget kicsit hasonlít az adatfolyamhoz hasonlóan.