A blokkos titkosítás alapvető sémája a következőképpen ábrázolható –
A blokkos titkosítás fog egy tiszta szövegbitekből álló blokkot, és létrehoz egy általában azonos méretű titkosított szövegbitekből álló blokkot. A blokk mérete az adott sémában rögzített. A blokkméret megválasztása nincs közvetlen hatással a titkosítási séma erősségére. A rejtjelezés erőssége a kulcs hosszától függ.
Blokk mérete
Bár bármilyen méretű blokk elfogadható, a blokk méretének kiválasztásakor a következő szempontokat kell szem előtt tartani.
-
Kerüljük a nagyon kis blokkméretet – Tegyük fel, hogy a blokk mérete m bit. Ekkor a lehetséges plaintext bitkombinációk száma 2m. Ha a támadó felfedezi a korábban elküldött rejtjelezett szövegblokkoknak megfelelő egyszerű szövegblokkokat, akkor a támadó egyfajta “szótártámadást” indíthat azáltal, hogy szótárat készít az adott titkosítási kulcs felhasználásával elküldött egyszerű szöveg/rejtjelezett szövegpárokból. A nagyobb blokkméret megnehezíti a támadást, mivel a szótárnak nagyobbnak kell lennie.
-
Ne legyen nagyon nagy a blokkméret – Nagyon nagy blokkméret esetén a rejtjelezés működése nem lesz hatékony. Az ilyen egyszerű szövegeket a titkosítás előtt ki kell tölteni.
-
8 bit többszörösei – A blokkméret előnyben részesített mérete a 8 többszöröse, mivel ez könnyen megvalósítható, mivel a legtöbb számítógépes processzor 8 bit többszörösében kezeli az adatokat.
Töltés a blokkos titkosításban
A blokkos titkosítások fix méretű (mondjuk 64 bit) blokkokat dolgoznak fel. Az egyszerű szövegek hossza többnyire nem a blokkméret többszöröse. Például egy 150 bites plaintext két, egyenként 64 bites blokkot ad, a harmadik blokk egyenlege 22 bit. Az utolsó bitblokkot fel kell tölteni redundáns információval, hogy a végső blokk hossza megegyezzen a rendszer blokkméretével. Példánkban a fennmaradó 22 bithez további 42 redundáns bitet kell hozzáadni, hogy teljes blokkot kapjunk. A bitek utolsó blokkhoz való hozzáadásának folyamatát nevezzük feltöltésnek.
A túl sok feltöltés hatástalanná teszi a rendszert. Emellett a feltöltés időnként bizonytalanná teheti a rendszert, ha a feltöltés mindig ugyanazokkal a bitekkel történik.
Blokkos titkosítási sémák
Többféle blokkos titkosítási séma van használatban. Sok közülük nyilvánosan ismert. A legnépszerűbb és legismertebb blokkos titkosítási sémák az alábbiakban vannak felsorolva.
-
Digital Encryption Standard (DES) – Az 1990-es évek népszerű blokkos titkosítási sémája. Ma már “tört” blokkchiffrernek számít, elsősorban kis kulcsmérete miatt.
-
Triple DES – A DES többszöri alkalmazásán alapuló variáns séma. Még mindig elismert blokkos titkosítás, de a rendelkezésre álló új, gyorsabb blokkos titkosításokhoz képest nem hatékony.
-
Advanced Encryption Standard (AES) – Ez egy viszonylag új blokkos titkosítás, amely a Rijndael titkosítási algoritmuson alapul, és megnyerte az AES tervezési versenyt.
-
IDEA – Ez egy kellően erős blokkos titkosítás 64 bites blokkmérettel és 128 bites kulcsmérettel. Számos alkalmazás használja az IDEA titkosítást, köztük a Pretty Good Privacy (PGP) protokoll korai változatai. Az IDEA-séma használata szabadalmi problémák miatt korlátozottan terjedt el.
-
Twofish – Ez a blokkos titkosítási séma 128 bites blokkméretet és változó hosszúságú kulcsot használ. Ez volt az AES egyik döntőse. A korábbi Blowfish nevű, 64 bites blokkmérettel rendelkező Blowfish blokkra épül.
-
Serpent – 128 bites blokkmérettel és 128, 192 vagy 256 bites kulcshosszúsággal működő blokkrejtjelező, amely szintén az AES verseny egyik döntőse volt. Lassabb, de biztonságosabb felépítésű, mint a többi blokkos rejtjelező.
A következő fejezetekben először a blokkos rejtjelező modelljét tárgyaljuk, majd a DES-t és az AES-t, a két legbefolyásosabb modern blokkos rejtjelezőt.