Lumivyörysymys on salauskäsite , jota yleensä käytetään lohkosalauksiin ja kryptografisiin hajautustoimintoihin . Tärkeä salausominaisuus salaukselle, mikä tarkoittaa, että pienen bittimäärän arvon muuttaminen syöttötekstissä tai avaimessa johtaa "vyöry" muutokseen salatekstin lähtöbittien arvoissa. Toisin sanoen se on kaikkien lähtöbittien riippuvuus jokaisesta tulobitistä.
Feistel esitteli ensimmäisenä termin "lumivyöryefekti" artikkelissa Cryptography and Computer Privacy , joka julkaistiin Scientific American -lehdessä toukokuussa 1973 [1] , vaikka käsite oli käytössä jo Shannonissa .
Algoritmeissa, joissa on useita läpikulkuja, lumivyöryvaikutus saavutetaan yleensä siitä syystä, että jokaisella läpimenolla yhden tulobitin muutos johtaa useiden lähtöbittien muutoksiin [2] .
Jos kryptografisella algoritmilla ei ole riittävää lumivyöryvaikutusta, kryptaanalyytikko voi tehdä arvauksen tuloinformaatiosta lähtötietojen perusteella. Siten lumivyöryefektin saavuttaminen on tärkeä tavoite salausalgoritmin kehittämisessä [3] .
Hyvän lumivyöryvaikutuksen tarkistamiseksi tietyssä algoritmissa käytetään useita kriteerejä [4] :
Salausalgoritmi täyttää lumivyörykriteerin, jos syöttösekvenssin yhden bitin muutos muuttaa keskimäärin puolta lähtöbiteistä.
Muodollisesti funktio voidaan määritellä seuraavasti:
Funktio täyttää lumivyörykriteerin, jos yhden tulobitin muutos aiheuttaa keskimääräisen muutoksen puolessa lähtöbiteistä [4] .
Vakavan lumivyörykriteerin (SLC) määritelmän antoivat ensimmäisenä C. Tavares ja A. Webster S - boxin tutkimus- ja suunnittelutyössään .
Boolen funktiota voidaan tarkastella osana S-laatikkorakennetta. SLK:ta tyydyttävien Boolen funktioihin perustuvien S-laatikoiden suunnittelua ovat tutkineet Adams ja C. Tavares, Kwangio Kim . Vuodesta 1990 lähtien SLC:tä on tutkittu Boolen funktioiden yhteydessä [5] .
MääritelmäBoolen funktio , jossa on muuttujien vektori, täyttää SLC:n, jos yhden tulobitin muuttuessa lähtöbitti muuttuu todennäköisyydellä täsmälleen .
EsimerkkiEsimerkki kolmen muuttujan Boolen funktiosta, joka täyttää SLC :n [5] :
Syöttöbitit | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
lähtöbitti | yksi | yksi | yksi | 0 | 0 | yksi | yksi | yksi |
Salausalgoritmin sanotaan täyttävän tiukan lumivyörykriteerin [6] , jos tulosekvenssin yhden bitin muuttuessa jokainen lähtösekvenssin bitti muuttuu yhden sekunnin todennäköisyydellä.
C. Tavares ja A. Webster määrittelivät työssään S-laatikoiden tutkimisesta ja kuvauksesta toisen kriteerin Boolen funktiolle , nimeltään bittiriippumattomuuskriteeri , jonka mukaan yhden tulobitin muuttuessa mikä tahansa kaksi lähtöbittiä muuttuvat toisistaan riippumatta ystävästä.
MääritelmäFunktio täyttää bittiriippumattomuuskriteerin , jos jollekin , jossa bitin kääntäminen sisääntulossa aiheuttaa bittimuutoksia ja , ja nämä muutokset ovat riippumattomia. Kahden lähtöbitin riippumattomuuden mittaamiseksi otetaan käyttöön korrelaatiokerroin modifioidun lähtövektorin lähtövektorin -:nnen ja -nnennen komponentin välille, jota kutsutaan lumivyöryvektoriksi ja jota merkitään .
.Toiminnon bittiriippumattomuusparametri löytyy seuraavasti:
.Tämä parametri osoittaa, kuinka hyvin funktio täyttää bittiriippumattomuuskriteerin . Se ottaa arvot välillä , ja parhaassa tapauksessa se on yhtä kuin 0 ja voidaan puhua riippumattomuudesta, pahimmassa tapauksessa 1, kun on riippuvuutta [4] .
Salausalgoritmin sanotaan täyttävän bittiriippumattomuuskriteerin , jos mitä tahansa tulobittiä vaihdettaessa mitkä tahansa kaksi lähtöbittiä muuttuvat itsenäisesti.
On myös taattu tilausvyöryvaikutus .
Taatun avalanche - kriteerin ( GAC ) järjestys täyttyy , jos yhden bitin vaihtaminen korvaussolmun sisääntulossa muuttaa ainakin lähtöbitit lähdössä. GAC - järjestyksen toteuttaminen alueella 2-5 korvaussolmuille tarjoaa mille tahansa salaukselle erittäin suuren lumivyöryvaikutuksen johtuen bittien muutosten etenemisestä tiedon kulkiessa salauskierrosten läpi Feistel-mallissa [7] .
Shannon esitteli hämmennyksen ja diffuusion käsitteet menetelminä, jotka vaikeuttavat tilastollista kryptausanalyysiä . Shannonin mukaan:
Diffuusio on menetelmä, jossa syöttötietotilastojen redundanssi "hajautuu" koko lähtötietorakenteeseen. Samanaikaisesti tilastolliseen analyysiin tarvitaan suuria määriä lähtötietoa, lähdetekstin rakenne on piilotettu. Toteutettu P-boxeilla , toisin sanoen jokaisen selvän tekstin bitin tulee vaikuttaa jokaiseen salatekstin bittiin. Yhden salaamattoman bitin levittäminen suurelle määrälle salattuja bittejä hämärtää selkeän tekstin tilastollisen rakenteen. Sen määrittäminen, kuinka salatekstin tilastolliset ominaisuudet riippuvat selkeän tekstin tilastollisista ominaisuuksista, ei pitäisi olla helppoa.
Sekaannus on menetelmä, jossa avaimen ja lähtötiedon riippuvuudesta tehdään mahdollisimman monimutkainen, erityisesti epälineaarinen. Tällöin on vaikeampaa tehdä johtopäätöksiä avaimesta lähtötiedoista, samoin kuin alkuperäisestä tiedosta, jos osa avaimesta on tiedossa. Toteutettu S-lohkoilla .
Lumivyöryvaikutus on seurausta hyvästä hämmennystä ja leviämisestä [8] .
DES:ssä lumivyöryefekti on luonteeltaan tiukka lumivyöryefekti ja se ilmenee jo neljännellä tai viidennellä kierroksella [3] , jokaiselle operaatiolle arvioituna (olettaen, että kierroksen alkuun mennessä yhden alun perin valitun bitin vaikutus on levinnyt oikealla ja vasemmalla oleviin bitteihin ):
Laajennuksen jälkeen:
Olettaen satunnaisia osumia kahdeksassa S-laatikossa, allokointiongelman mukaan bitit jaetaan: S-laatikoihin.
Yksi NSA :n vaatimuksista S-laatikoille oli, että jokaisen tulon bitin muuttaminen muuttaa 2 bittiä lähdöstä. Oletetaan, että jokainen S-boxin tulobitti vaikuttaa kaikkiin 4 lähtöbittiin. Tulee riippuvaiseksi: bittiä.
Vasemman ja oikean osan bittikohtaisen lisäyksen jälkeen :
1-bitin vasemman reunan vaikutustaulukko DES:ssäPyöristää | ||||
---|---|---|---|---|
Laajennus |
S-lohkot |
|||
0 | yksi | 0 | 0 | 0 |
yksi | 0 | 0 | 0 | (0, 1) 1 |
2 | yksi | 1 → 1.5 | 1,5 → 5,5 | (5,5, 0) → 5,5 |
3 | 5.5 | 5.5 → 8.3 | 8.2 → 20.5 | (20.5, 1) → 20.9 |
neljä | 20.9 | 20.9 → 31.3 | 31,3 → 32 | (32, 20.9) → 32 |
5 | 32 | 32 | 32 | 32 |
Maksimaalisen lumivyöryvaikutuksen saavuttamiseksi sinun on valittava huolellisesti laajennus, S-laatikot sekä funktion permutaatio .
Taulukko kuinka monta bittiä vaihdetaan kierrosta kohtiSeuraavassa taulukossa näkyy kullakin kierroksella vaihdettujen lähtöbittien lukumäärä olettaen, että yksi bitti lähdetekstiä ja yksi bitti avaimesta on muuttunut. [9]
Syötä tekstin muutokset | Keskeiset muutokset | ||
---|---|---|---|
Pyöristää | Bittien määrä muuttunut |
Pyöristää | Bittien määrä muuttunut |
0 | yksi | 0 | 0 |
yksi | 6 | yksi | 2 |
2 | 21 | 2 | neljätoista |
3 | 35 | 3 | 28 |
neljä | 39 | neljä | 32 |
5 | 34 | 5 | kolmekymmentä |
6 | 32 | 6 | 32 |
7 | 31 | 7 | 35 |
kahdeksan | 29 | kahdeksan | 34 |
9 | 42 | 9 | 40 |
kymmenen | 44 | kymmenen | 38 |
yksitoista | 32 | yksitoista | 31 |
12 | kolmekymmentä | 12 | 33 |
13 | kolmekymmentä | 13 | 28 |
neljätoista | 26 | neljätoista | 26 |
viisitoista | 29 | viisitoista | 34 |
16 | 34 | 16 | 35 |
AES:ssä lumivyöryefekti näkyy seuraavasti: MixColumns()-operaatio siirtää ensimmäisellä kierroksella yhden tavun muutokset sarakkeen kaikkiin neljään tavuun, minkä jälkeen toisella kierroksella ShiftRows() ja MixColumns() Operations siirtää muutokset koko taulukkoon. Näin ollen täydellinen diffuusio saavutetaan jo toisella kierroksella. SubBytes()-operaatio aiheuttaa hämmennystä.
Taulukossa näkyvät AES:n S-laatikoiden lumivyöryefektin numeeriset arvot. Ensimmäisessä tapauksessa tavu "11" (heksadesimaalimuodossa) muutetaan arvoon "10", toisessa tapauksessa tavu "11" muutetaan "12":ksi, kolmannessa - "00" arvoon "10". Tämän mukaisesti lumivyöryvaikutuskerroin laskettiin kullekin tapaukselle. Näistä tiedoista voimme selvästi nähdä, että salattu tulosteksti ei ole ollenkaan yksinkertainen, melko yksinkertaisella syöttötekstillä [10] . Ja lumivyöryvaikutuksen kerroin on lähellä 0,5, mikä tarkoittaa, että lumivyörykriteeri täyttyy hyvin.
Sijoita teksti | Salateksti [ määritä ] | Lumivyörysymys |
---|---|---|
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 | 79 F8 CC 24 01 82 DD 7F 2D 89 F7 E7 78 B7 EE 30 | 0,4375(56) |
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 | 9D 4C 1D B4 6A 93 27 B5 20 64 37 D1 3D 9D 2A | |
11 22 33 66 55 44 55 44 77 88 99 66 44 45 36 12 | 4A A9 16 11 E2 8A 9F 67 35 30 1F 80 16 C5 B7 CD | 0,5153(66) |
11 22 33 66 55 44 55 44 77 88 99 66 44 45 36 11 | D7 00 43 2D 51 78 F7 65 50 03 03 75 B1 E4 2D A0 | |
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | C6 A1 3B 37 87 8F 5B 82 6F 4F 81 62 A1 C8 79 | 0,4453(57) |
10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 0D 19 33 06 27 42 FE 01 9C FE 06 E1 A8 1A A0 01 |
Lumivyöryvaikutus tuloon saadaan aikaan (4 x 4) S-laatikoilla ja syklinen siirtyminen vasemmalle
Taulukko vasemman puolen 1 bitin vaikutuksesta GOST 28147-89Pyöristää | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | |
0 | yksi | |||||||||||||||
yksi | yksi | |||||||||||||||
2 | yksi | 3 | yksi | |||||||||||||
neljä | 3 | neljä | yksi | yksi | neljä | yksi | 3 | yksi | 3 | neljä | ||||||
5 | neljä | yksi | 3 | yksi | 3 | neljä | 3 | neljä | neljä | neljä | neljä | neljä | yksi | |||
6 | 3 | neljä | neljä | neljä | neljä | neljä | yksi | neljä | neljä | neljä | neljä | neljä | 3 | 3 | neljä | |
7 | neljä | neljä | neljä | neljä | neljä | 3 | 3 | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä |
kahdeksan | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä | neljä |
Taulukosta käy ilmi, että jokaisella kierroksella itsenäisten bittien määrä kasvaa keskimäärin 4 kertaa edellisen kierroksen S-laatikon siirtymän ja putoamisen seurauksena seuraavan kierroksen 2 S-laatikoksi. Riippuvien bittien jakautuminen 4 bitin ryhmissä vasemmalla ja oikealla puolella on esitetty ottamatta huomioon pyöreän näppäimen lisäystä. Oletetaan, että jokainen S-laatikon sisääntulossa oleva bitti vaikuttaa kaikkiin lähdön bitteihin. Kierrosten määrä täyden lumivyöryvaikutuksen saavuttamiseksi ilman avaimella tehtyä lisäystä on 8. Venäjän federaation keskuspankin käyttämien S-laatikoiden kokeellinen tarkastus osoittaa, että vaaditaan 8 kierrosta .
Lumivyöryvaikutuksen arvo GOST 28147-89:ssäSalausvoimakkuuden kannalta tärkeimmät vaatimukset bittimuunnosoperaatioille salauskierroksella ovat epälineaarisuus, eli kyvyttömyys valita lineaarista funktiota, joka approksimoi tätä muunnosa hyvin, ja lumivyöryefekti - näiden vaatimusten täyttäminen vaikeuttaa lineaarista suorittamista. ja salauksen differentiaalinen kryptausanalyysi. Jos tarkastellaan näistä paikoista GOST 28147-89 :n mukaisia salauskierroksen muunnosoperaatioita , on helppo varmistaa, että salauksen vahvuus saadaan vain avaimella ja bittikorvaustoiminnoilla taulukossa, koska operaatiot bittikohtaisen siirron ja modulo 2 summauksen ovat lineaarisia, eikä niillä ole lumivyöryvaikutusta. Tästä voimme päätellä, että GOST 28147-89:n mukaisen salauksen luotettavuuden määräävä tekijä on oikein valittu avaintieto (avain- ja korvaustaulukko). Nollaavaimella ja triviaalikorvaustaulukolla tapahtuvassa tiedonsalauksessa, jonka kaikki solmut sisältävät numeroita 0-15 nousevassa järjestyksessä, selkeän tekstin löytäminen tunnetusta salatekstistä on melko yksinkertaista sekä lineaarista että differentiaalista kryptausanalyysiä käyttäen.
Kuten kuvasta [11] näkyy , tietojen lisääminen aliavaimella ei voi saada aikaan riittävää lumivyöryvaikutusta, koska vaihtamalla yhtä bittiä tämän menettelyn sisääntulossa vain yksi bitti lähdössä muuttuu todennäköisyydellä 0,5, loput bitit muuttuvat. muuttuvat paljon pienemmällä todennäköisyydellä. Tämä viittaa siihen, että salauksen kryptografisen vahvuuden varmistamiseksi ei riitä, että varmistetaan riittävä avaimen laatu - on myös tarpeen käyttää vahvoja korvaavia taulukoita, joilla on korkea epälineaarisuus ja lumivyöryvaikutus [12] .
Esimerkit osoittavat, kuinka hash muuttuu, kun yksi bitti syöttösekvenssissä muuttuu.
SHA-1 :
SHA-1(0110 0001 0110 00 0 1 0110 0001 0110 00 0 1) = '70c881d4a26984ddce795f6f71817c9cf4480e79' SHA-1(0110 0001 0110 00 1 1 0110 0001 0110 00 0 1) = 'c6fdc1a445881de1f33e09cf00420a57b493b96d' SHA-1(0110 0001 0110 00 0 1 0110 0001 0110 00 1 1) = '00b25f15212ed225d3389b5f75369c82084b3a76'MD5 :
MD5(0110 0001 0110 00 0 1 0110 0001 0110 00 0 1) = '74b87337454200d4d33f80c4663dc5e5' MD5(0110 0001 0110 00 1 1 0110 0001 0110 00 0 1) = 'ca7de9e17429612452a717a44c36e688' MD5(0110 0001 0110 00 0 1 0110 0001 0110 00 1 1) = '3963a2ba65ac8eb1c6e2140460031925'Esimerkit osoittavat, kuinka salattu viesti muuttuu, kun yksi bitti [13] syöttösekvenssissä tai avaimessa muuttuu.
AES :
AES(avain = "aaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '5188c6474b228cbdd242e9125ebe1d53' AES(avain = "aaaaaaaaaaaaaaaaa", "aa c aaaaaaaaaaaaaa") = 'f7e5c1118f5cb86198e37ff7a29974bc' AES(avain = "aa c aaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '2c50b5cac9c755d67aa61b87c26248eb' AES(avain = "aa c aaaaaaaaaaaaa", "aa c aaaaaaaaaaaaaa") = '87c09128de852b990b3dfbd65c7d9094'RC4 :
RC4(avain = "aaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '71ddf97f23b8e42a4f0ccc463d7da4aa' RC4(avain = "aaaaaaaaaaaaaaaaa", "aa c aaaaaaaaaaaaaa") = '3d0feab630a32d1d0654c5481bd9ddd9' RC4(avain = "aa c aaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '476266d77453695b6cee682f23b0c51d' RC4(avain = "aa c aaaaaaaaaaaaa", "aa c aaaaaaaaaaaaaa") = '3139d4506185d48e9b9e3dbbd4b57ec2'Caesar-salaus ei toteuta lumivyöryefektiä:
E(k = 3, "aaaaaaaaaaaaaaaa") = 'ddddddddddddddddd' E(k = 3, "a c aaaaaaaaaaaaaa") = 'dfddddddddddddddd'Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |
Hash-funktiot | |
---|---|
yleinen tarkoitus | |
Kryptografinen | |
Avainten luontitoiminnot | |
Tarkista numero ( vertailu ) | |
Hashes |
|