A szimmetrikus titkosítási rendszerek ( szimmetrikus titkosítás , szimmetrikus rejtjelek is ) ( angolul symmetric-key algoritmus ) egy olyan titkosítási módszer, amelyben ugyanazt a titkosítási kulcsot használják a titkosításhoz és a visszafejtéshez . Az aszimmetrikus titkosítási séma feltalálása előtt az egyetlen létező módszer a szimmetrikus titkosítás volt. Az algoritmus kulcsát mindkét félnek titokban kell tartania, intézkedéseket kell tenni a csatornához való hozzáférés védelmére, a kriptogram teljes útvonala mentén, vagy a kriptoobjektumokon, üzeneteken keresztül interakcióban részt vevő felek számára, ha ez az interakciós csatorna „Nem” jelzéssel rendelkezik. harmadik felek általi használatra”. A titkosítási algoritmust a felek választják ki az üzenetváltás előtt.
Az adattitkosítási algoritmusokat széles körben használják a számítástechnikában a bizalmas és kereskedelmi információk harmadik felek általi rosszindulatú felhasználása elől való elrejtésére szolgáló rendszerekben. A fő elv bennük az a feltétel, hogy az adó és a vevő előre ismerje a titkosítási algoritmust , valamint az üzenet kulcsát, amely nélkül az információ csak olyan karakterkészlet, amelynek nincs értelme.
Az ilyen algoritmusok klasszikus példái az alább felsorolt szimmetrikus kriptográfiai algoritmusok :
Az egyszerű permutáció kulcs nélkül az egyik legegyszerűbb titkosítási módszer. Az üzenet oszloponként kerül beírásra a táblázatba. Miután az egyszerű szöveget oszlopokba írták, soronként beolvassa a titkosított szöveget. A titkosítás használatához a küldőnek és a fogadónak meg kell állapodnia egy megosztott kulcsban, táblázatméret formájában. A betűk csoportokba való kombinációja nem szerepel a rejtjelkulcsban, és csak az értelmetlen szöveg írásának megkönnyítésére szolgál.
Az egykulcsos permutációnak nevezett, praktikusabb titkosítási módszer nagyon hasonló az előzőhöz. Csak abban különbözik, hogy a táblázat oszlopait egy kulcsszó, kifejezés vagy egy táblázat sor hosszúságú számkészlete rendezi át.
A nagyobb titoktartás érdekében újra titkosíthatja a már titkosított üzeneteket. Ezt a módszert kettős permutációnak nevezik. Ehhez a második táblázat méretét úgy kell kiválasztani, hogy a sorok és oszlopok hossza eltérjen az első táblázatban lévőktől. A legjobb, ha koprime. Ezenkívül az első táblázatban az oszlopok, a másodikban a sorok átrendezhetők. Végül az asztalt megtöltheti cikkcakkosan, kígyóval, spirálosan vagy más módon. A táblázat kitöltésének ilyen módszerei, ha nem növelik a titkosítás erejét, sokkal szórakoztatóbbá teszik a visszafejtési folyamatot.
A mágikus négyzeteket négyzettábláknak nevezzük, amelyek celláiba 1-től egymást követő természetes számok vannak beírva, amelyek minden oszlopban, sorokban és átlókban ugyanazt a számot adják. Az ilyen négyzeteket széles körben használták a titkosított szöveg bevitelére a bennük megadott számozás szerint. Ha ezután soronként kiírod a táblázat tartalmát, akkor a betűk átrendezésével titkosítást kapsz. Első pillantásra úgy tűnik, hogy nagyon kevés varázsnégyzet van. Számuk azonban nagyon gyorsan növekszik a négyzet méretének növekedésével. Így csak egy 3 x 3-as varázsnégyzet van, ha nem vesszük figyelembe annak forgását. Már 880 darab 4 x 4-es varázsnégyzet létezik, az 5 x 5-ös varázsnégyzetek száma pedig körülbelül 250 000. Ezért a nagy varázsnégyzetek jó alapot jelenthetnek egy akkori megbízható titkosítási rendszerhez, mert az összes kulcsopció manuális felsorolása ez a titkosítás elképzelhetetlen volt.
Az 1-től 16-ig terjedő számokat egy 4x4-es négyzetbe írták, aminek varázsa az volt, hogy a sorokban, oszlopokban és a teljes átlókban lévő számok összege megegyezett a 34-gyel. "mágikus erő".
16 | 3 | 2 | 13 |
5 | tíz | tizenegy | nyolc |
9 | 6 | 7 | 12 |
négy | tizenöt | tizennégy | egy |
A mágikus négyzetes titkosítást az alábbiak szerint végeztük. Például titkosítani szeretné a következő mondatot: "Ma jövök." Ennek a kifejezésnek a betűit egymás után a négyzetbe írjuk a beléjük írt számoknak megfelelően: a betű helyzete a mondatban megfelel a sorszámnak. Az üres cellákba egy pont kerül.
16. | 3 és | 2 r | 13 d |
5 óra | 10 | 11 g | 8 |
9 C | 6 w | 7 a | 12 kb |
4 e | 15 | 14 n | 1 P |
Ezt követően a titkosított szöveget egy karakterláncba írjuk (az olvasás balról jobbra, soronként történik):
.irdzegyuSzhaoyanP
Dekódoláskor a szöveg egy négyzetbe illeszkedik, és a tiszta szöveget a rendszer egy "varázsnégyzet" számsorozatban olvassa be. A programnak "mágikus négyzeteket" kell generálnia, és kulcsonként kell kiválasztania a kívántat. A négyzet nagyobb, mint 3x3.
Az eredeti üzenet összes statisztikai szabályszerűségének teljes elvesztése fontos követelmény a szimmetrikus titkosítással szemben. Ehhez a rejtjelnek " lavina effektussal " kell rendelkeznie - a titkosítási blokkban erős változásnak kell lennie a bemeneti adatok 1 bites változásával (ideális esetben a kód 1/2 bitének értéke a rejtjelblokknak meg kell változnia).
Szintén fontos követelmény a linearitás hiánya (vagyis az f(a) xor f(b) == f(a xor b) feltételek, ellenkező esetben a differenciális kriptoanalízis alkalmazása a rejtjelre megkönnyíti.
Jelenleg a szimmetrikus titkosítások a következők:
A legtöbb szimmetrikus titkosítás nagyszámú helyettesítés és permutáció összetett kombinációját használja. Sok ilyen titkosítást több (néha akár 80) lépésben hajtanak végre, minden egyes lépésnél "jelkulcsot" használva. Az összes bérlethez tartozó „bérletkulcsok” készletét „kulcsütemezésnek” nevezik. Általában a kulcsból jön létre bizonyos műveletek végrehajtásával, beleértve a permutációkat és a helyettesítéseket.
A szimmetrikus titkosítási algoritmusok felépítésének tipikus módja a Feistel hálózat . Az algoritmus az F(D, K) függvényen alapuló titkosítási sémát épít fel, ahol D a titkosítási blokk méreténél feleakkora adat, K pedig ennek az átlépésnek a „pass key”-je. A függvénynek nem kell invertálhatónak lennie – előfordulhat, hogy az inverz függvénye nem ismert. A Feistel hálózat előnyei a dekódolás és a titkosítás szinte teljes egybeesése (az egyetlen különbség a "pass keys" fordított sorrendje az ütemezésben), ami nagyban leegyszerűsíti a hardveres megvalósítást.
A permutációs művelet egy bizonyos törvény szerint keveri az üzenet bitjeit. Hardveres megvalósításokban triviálisan a vezetők összefonódásaként valósul meg. A permutációs műveletek teszik lehetővé a „lavinaeffektus” elérését. A permutációs művelet lineáris - f(a) xor f(b) == f(a xor b)
A helyettesítési műveleteket úgy hajtják végre, hogy az üzenet egy bizonyos részének értékét (gyakran 4, 6 vagy 8 bites) lecserélik egy szabványos, az algoritmusba keményen kódolt másik számra, egy állandó tömbre hivatkozva. A helyettesítési művelet nemlinearitást visz be az algoritmusba.
Gyakran egy algoritmus ereje, különösen a differenciális kriptoanalízissel szemben, a helyettesítési táblázatokban (S-boxok) választott értékektől függ. Legalább nem kívánatosnak tartják az S(x) = x rögzített elemeket, valamint azt, hogy a bemeneti bájt egy bitje ne legyen hatással az eredmény egy bitjére – vagyis olyan esetekben, amikor az eredménybit ugyanaz minden bemeneti szópárnál, amelyek csak ebben a bitben különböznek egymástól.
Sok (legalább két tucat) szimmetrikus rejtjelező algoritmus létezik, amelyek alapvető paraméterei a következők:
A szimmetrikus titkosítás hiányosságainak kompenzálására jelenleg széles körben alkalmazzák a kombinált (hibrid) kriptográfiai sémát , ahol a munkamenetkulcsot aszimmetrikus titkosítással továbbítják, amelyet a felek szimmetrikus titkosítással adatcserére használnak.
A szimmetrikus titkosítások fontos hátránya, hogy nem használhatók fel az elektronikus digitális aláírások és tanúsítványok generálására szolgáló mechanizmusokban, mivel a kulcsot mindegyik fél ismeri.
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |