Lumivyörysymys

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. elokuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

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] .

Kriteerit

Hyvän lumivyöryvaikutuksen tarkistamiseksi tietyssä algoritmissa käytetään useita kriteerejä [4] :

Lumivyöryn kriteeri

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] .

Tiukka lumivyörykriteeri

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 .

Esimerkki

Esimerkki 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ä.

Bit Independence Criterion

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.

Taattu tilausvyöryvaikutus

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] .

Hämmennys ja diffuusio

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] .

Lumivyöryefekti suosituissa algoritmeissa

Avalanche-efekti DES:ssä

Riippuvien lähtöbittien laskenta

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 kohti

Seuraavassa 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

Lumivyöryefekti AES:ssä

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ä.

Avalanche Effect -testi AES:ssä

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 GOST 28147-89:ssä

Lumivyöryvaikutus tuloon saadaan aikaan (4 x 4) S-laatikoilla ja syklinen siirtyminen vasemmalle

Taulukko vasemman puolen 1 bitin vaikutuksesta GOST 28147-89
Pyö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] .

Esimerkkejä

Esimerkkejä hash-funktioista

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'

Esimerkkejä salakirjoista

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'

Esimerkki huonosta lumivyöryefektistä

Caesar-salaus ei toteuta lumivyöryefektiä:

E(k = 3, "aaaaaaaaaaaaaaaa") = 'ddddddddddddddddd' E(k = 3, "a c aaaaaaaaaaaaaa") = 'dfddddddddddddddd'

Muistiinpanot

  1. Horst Feistel, "Salaus ja tietokoneiden yksityisyys." Scientific American , Voi. 228, nro 5, 1973. (JPEG-skannatut kuvat) Arkistoitu 6. kesäkuuta 2019 Wayback Machinessa
  2. Richard A. Mollin, "Koodit: salassapitoopas muinaisista ajoista nykyaikaan", Chapman & Hall/CRC, 2005, s. 142. (Katsottu Google Booksissa) Arkistoitu 2. tammikuuta 2015 Wayback Machinessa
  3. 1 2 William Stallings, "Salaus ja verkkoturvallisuus: periaatteet ja käytäntö", Prentice Hall, 1999, s. 80. (Näytä Google-kirjoissa) Arkistoitu 2. tammikuuta 2015 Wayback Machinessa
  4. 1 2 3 Isl VERGILI, Melek D. YUCEL. VOL.9 // Lumivyöry- ja bittiriippumattomuusominaisuudet satunnaisesti valittujen n X n S-laatikoiden kokoonpanoille . - Turk J Elec Engin, 2001. - S. 137. Arkistoitu kopio (linkki ei ole käytettävissä) . Haettu 9. marraskuuta 2009. Arkistoitu alkuperäisestä 12. maaliskuuta 2005. 
  5. 1 2 Thomas W. Cusick, Pantelimon Stanica, Pantelimon Stănică. Kryptografiset Boolen funktiot ja sovellukset . - Academic Press, 2009. - s. 25.
  6. Réjane Forré, "The Strict Avalanche Criterion: Spectral Properties of Boolean Functions and an Extended Definition", Proceedings on Advances in cryptology, Springer-Verlag New York, Inc, 1990, s. 450. (PDF-linkki) Arkistoitu 19. toukokuuta 2003 Wayback Machinessa .
  7. Liittovaltion koulutusvirasto Siperian valtion ilmailuyliopisto, joka on nimetty akateemikko M.F. Reshetnevin mukaan. NYKYISET TIETOTEKNIIKAN TURVA-ONGEET (Linkki PDF-tiedostoon) Arkistoitu 5. toukokuuta 2021 Wayback Machinessa
  8. Shannon C. , yritys A. T. a. T. Salassapitojärjestelmien viestintäteoria  (englanti) // Bell Syst. Tech. J. - Short Hills, NJ jne .: 1949. - Voi. 28, Iss. 4. - P. 656-715. — ISSN 0005-8580 ; 2376-7154 - doi:10.1002/J.1538-7305.1949.TB00928.X
  9. Sourav Mukhopadhyay. Luku 2 // Salaus ja verkkosuojaus . — Intia: Department of Mathematics Indian Institute of Technology Kharagpur. - S. 20. Arkistoitu kopio (linkki ei ole käytettävissä) . Haettu 4. marraskuuta 2012. Arkistoitu alkuperäisestä 20. marraskuuta 2016. 
  10. Amish Kumar, Mrs. Namita Tiwari. Voi. 1 // AES:N TEHOKAS TÄYTÄNTÖÖNPANO JA LUVYRYVAIKUTUS . - CSE MANIT-Bhopalin laitos: IJSPTM, elokuu 2012. - S. 34.
  11. C. Charnes, O'Connor, J. Pieprzyk, R. Safavi-Naini, Y. Zheng. Muita kommentteja Neuvostoliiton salausalgoritmi . — 1. kesäkuuta 1994. - s. 1-8.  (linkki ei saatavilla)
  12. TIETOTEKNOLOGIAN TURVALLISUUDEN NYKYISET ONGELMAT. III Kansainvälisen tieteellisen ja käytännön konferenssin Krasnojarsk 2009 materiaalikokoelma. (Linkki PDF-tiedostoon) Arkistokopio 5.5.2021 Wayback Machinessa
  13. "a" = 0110 00 0 1, "c" = 0110 00 1 1