Symmetric cryptosystems (myös symmetrinen salaus , symmetriset salaukset ) ( englanniksi symmetric-key algoritmi ) on salausmenetelmä, jossa salaukseen ja salauksen purkamiseen käytetään samaa kryptografista avainta . Ennen epäsymmetrisen salausjärjestelmän keksimistäAinoa olemassa oleva tapa oli symmetrinen salaus. Algoritmin avain on pidettävä molempien osapuolten salassa, toimenpiteisiin on ryhdyttävä suojatakseen pääsyä kanavaan koko kryptogrammin polulla tai vuorovaikutuksen osapuolilta kryptoobjektien, viestien kautta, jos tämä vuorovaikutuskanava on merkitty "Ei". kolmansien osapuolten käyttöön”. Osapuolet valitsevat salausalgoritmin ennen viestien vaihtoa.
Tietojen salausalgoritmeja käytetään laajalti tietotekniikassa järjestelmissä, joilla piilotetaan luottamuksellisia ja kaupallisia tietoja kolmansien osapuolten haittakäytöltä. Pääperiaate niissä on ehto, että lähetin ja vastaanottaja tietävät etukäteen salausalgoritmin sekä viestin avaimen, jota ilman tieto on vain joukko merkkejä, joissa ei ole järkeä.
Klassisia esimerkkejä tällaisista algoritmeista ovat alla luetellut symmetriset salausalgoritmit :
Yksinkertainen permutaatio ilman avainta on yksi yksinkertaisimmista salausmenetelmistä. Viesti kirjoitetaan taulukkoon sarakkeittain. Kun selväteksti on kirjoitettu sarakkeisiin, se luetaan rivi riviltä salatekstin muodostamiseksi. Tämän salauksen käyttämiseksi lähettäjän ja vastaanottajan on sovittava yhteisestä avaimesta taulukon koon muodossa. Kirjainten yhdistäminen ryhmiin ei sisälly salausavaimeen, ja sitä käytetään vain merkityksettömän tekstin kirjoittamisen helpottamiseksi.
Käytännöllisempi salausmenetelmä, jota kutsutaan yhden avaimen permutaatioksi, on hyvin samanlainen kuin edellinen. Se eroaa vain siinä, että taulukon sarakkeet on järjestetty uudelleen avainsanalla, lauseella tai taulukon rivin pituisella numerojoukolla.
Salaisuuden lisäämiseksi voit salata jo salatun viestin uudelleen. Tämä menetelmä tunnetaan kaksoispermutaationa. Tätä varten toisen taulukon koko valitaan siten, että sen rivien ja sarakkeiden pituudet poikkeavat ensimmäisen taulukon pituuksista. On parasta, jos ne ovat coprimea. Lisäksi sarakkeet voidaan järjestää uudelleen ensimmäisessä taulukossa ja rivit toisessa. Lopuksi voit täyttää pöydän siksakilla, käärmeellä, spiraalilla tai jollain muulla tavalla. Tällaiset taulukon täyttömenetelmät, jos ne eivät lisää salauksen vahvuutta, tekevät salauksen purkuprosessista paljon viihdyttävämmän.
Maagisia neliöitä kutsutaan neliötaulukoiksi, joiden soluihin on kirjoitettu peräkkäiset luonnolliset luvut 1:stä, jotka laskevat yhteen jokaiseen sarakkeeseen, jokaiseen riviin ja jokaiseen diagonaaliin sama luku. Tällaisia neliöitä käytettiin laajasti salatun tekstin syöttämiseen niissä annetun numeroinnin mukaisesti. Jos kirjoitat sitten taulukon sisällön rivi riviltä, saat salauksen järjestämällä kirjaimet uudelleen. Ensi silmäyksellä näyttää siltä, että maagisia neliöitä on hyvin vähän. Niiden määrä kuitenkin kasvaa erittäin nopeasti neliön koon kasvaessa. Siten on vain yksi 3 x 3 maaginen neliö, jos et ota huomioon sen kiertoja. 4 x 4 maagisia neliöitä on jo 880 ja 5 x 5 maagisia neliöitä on noin 250 000. Siksi suuret maagiset neliöt voisivat olla hyvä perusta tuon ajan luotettavalle salausjärjestelmälle, koska kaikki avainvaihtoehdot luetellaan manuaalisesti tämä salaus oli käsittämätön.
Numerot 1 - 16 kirjoitettiin 4 x 4 -neliöön. Sen taikuutta oli, että rivien, sarakkeiden ja täydellisten lävistinten lukujen summa oli sama luku - 34. Nämä neliöt ilmestyivät ensimmäisen kerran Kiinassa, jossa niille annettiin joitakin "taikavoima".
16 | 3 | 2 | 13 |
5 | kymmenen | yksitoista | kahdeksan |
9 | 6 | 7 | 12 |
neljä | viisitoista | neljätoista | yksi |
Magic square -salaus suoritettiin seuraavasti. Haluat esimerkiksi salata lauseen: "Tulen tänään." Tämän lauseen kirjaimet kirjoitetaan peräkkäin neliöön niihin kirjoitettujen numeroiden mukaan: kirjaimen sijainti lauseessa vastaa järjestysnumeroa. Tyhjiin soluihin sijoitetaan piste.
16. | 3 ja | 2 r | 13 d |
5 h | 10 | 11 g | 8 |
9 C | 6 v | 7 a | 12 noin |
4 e | 15 | 14 n | 1 P |
Tämän jälkeen salateksti kirjoitetaan merkkijonoon (luku tapahtuu vasemmalta oikealle, rivi riviltä):
.irdzegyuSzhaoyanP
Kun salaus puretaan, teksti sopii neliöön ja selväteksti luetaan "maagisen neliön" numerosarjana. Ohjelman tulee luoda "maagisia neliöitä" ja valita haluamasi yksi avaimella. Neliö on suurempi kuin 3x3.
Kaikkien alkuperäisen viestin tilastollisten säännönmukaisuuksien täydellinen menettäminen on tärkeä vaatimus symmetriselle salaukselle. Tätä varten salauksella on oltava " vyöryvaikutus " - salauslohkossa on oltava voimakas muutos 1-bitin muutoksella syöttötiedoissa (ihannetapauksessa arvot 1/2 bittiä salauslohkon pitäisi muuttua).
Tärkeä vaatimus on myös lineaarisuuden puuttuminen (eli ehdot f(a) xor f(b) == f(a xor b)), muuten differentiaalisen krypta-analyysin soveltaminen salaukseen helpottuu.
Tällä hetkellä symmetriset salaukset ovat:
Useimmat symmetriset salaukset käyttävät monimutkaista yhdistelmää suuresta määrästä substituutioita ja permutaatioita. Monet tällaiset salaukset suoritetaan useissa (joskus jopa 80) läpimenoissa käyttämällä "pass-avainta" jokaisessa siirrossa. Kaikkien passien "passiavaimet" kutsutaan "avainaikatauluksi". Yleensä se luodaan avaimesta suorittamalla sille tiettyjä toimintoja, mukaan lukien permutaatiot ja korvaukset.
Tyypillinen tapa rakentaa symmetrisiä salausalgoritmeja on Feistelin verkko . Algoritmi rakentaa funktioon F(D, K) perustuvan salausmallin, jossa D on puolet salauslohkon koosta pienempi datapala ja K on tämän passin "pääsyavain". Funktiota ei vaadita käänteiseksi - sen käänteistä funktiota ei ehkä tunneta. Feistel-verkon edut ovat salauksen purkamisen ja salauksen lähes täydellinen yhteensopivuus (ainoa ero on "pass-avainten" käänteinen järjestys aikataulussa), mikä yksinkertaistaa huomattavasti laitteiston toteutusta.
Permutaatiotoiminto sekoittaa viestin bitit tietyn lain mukaan. Laitteistototeutuksissa se on triviaalisti toteutettu johtimien sotkeutumisena. Juuri permutaatiooperaatiot mahdollistavat "lumivyöryefektin" saavuttamisen. Permutaatiooperaatio on lineaarinen - f(a) xor f(b) == f(a xor b)
Korvausoperaatiot suoritetaan sanoman tietyn osan (usein 4, 6 tai 8 bitin) arvon korvaamisena standardilla, kovakoodatulla algoritmiin muulla numerolla viittaamalla vakiotaulukkoon. Korvausoperaatio tuo algoritmiin epälineaarisuuden.
Usein algoritmin vahvuus, erityisesti differentiaalista kryptausanalyysiä vastaan, riippuu arvojen valinnasta korvaustaulukoissa (S-laatikot). Vähintään kiinteitä elementtejä S(x) = x ei pidetä toivottavana, samoin kuin tulotavun jonkin bitin vaikutuksen puuttumista johonkin tuloksen bittiin - eli tapauksia, joissa tulosbitti on sama kaikille syöttösanapareille, jotka eroavat vain tässä bitissä.
On olemassa monia (vähintään kaksi tusinaa) symmetrisiä salausalgoritmeja , joiden keskeiset parametrit ovat:
Symmetrisen salauksen puutteiden kompensoimiseksi on tällä hetkellä laajalti käytössä yhdistetty (hybridi) kryptografinen menetelmä , jossa istuntoavain lähetetään epäsymmetrisellä salauksella, jota osapuolet käyttävät tietojen vaihtamiseen symmetrisellä salauksella.
Symmetristen salausten tärkeä haittapuoli on se , että niitä ei voida käyttää sähköisten digitaalisten allekirjoitusten ja sertifikaattien luontimekanismeissa, koska avain on jokaisen osapuolen tiedossa.
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
muu |