Lavinový efekt

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. srpna 2021; kontroly vyžadují 2 úpravy .

Lavinový efekt je koncept  v kryptografii , obvykle se používá pro blokové šifry a kryptografické hashovací funkce . Důležitá kryptografická vlastnost pro šifrování, což znamená, že změna hodnoty malého počtu bitů ve vstupním textu nebo v klíči vede k „lavinové“ změně hodnot výstupních bitů šifrovaného textu. Jinými slovy, je to závislost všech výstupních bitů na každém vstupním bitu.

Termín „lavinový efekt“ poprvé představil Feistel v článku Cryptography and Computer Privacy , publikovaném v Scientific American v květnu 1973 [1] , ačkoli tento koncept byl používán již v Shannonovi .

V algoritmech s více průchody je lavinový efekt obvykle dosažen díky skutečnosti, že při každém průchodu změna jednoho vstupního bitu vede ke změně několika výstupních bitů [2] .

Pokud kryptografický algoritmus nemá dostatečný lavinový efekt, může kryptoanalytik odhadnout vstupní informace na základě výstupních informací. Dosažení lavinového efektu je tedy důležitým cílem při vývoji kryptografického algoritmu [3] .

Kritéria

Aby bylo možné ověřit dobrý lavinový efekt v konkrétním algoritmu, používá se několik kritérií [4] :

Lavinové kritérium

Kryptografický algoritmus splňuje lavinové kritérium, pokud změna jednoho bitu vstupní sekvence změní v průměru polovinu výstupních bitů.

Formálně lze funkci definovat takto:

Funkce splňuje lavinové kritérium, pokud změna jednoho vstupního bitu způsobí průměrnou změnu poloviny výstupních bitů [4] .

Přísné lavinové kritérium

Definici kritéria Severe Avalanche (SLC) poprvé uvedli C. Tavares a A. Webster ve své výzkumné a designové práci S-boxu .

Booleovskou funkci lze považovat za součást struktury S-boxu. Design S-boxů založených na booleovských funkcích vyhovujících SLK studovali Adams a C. Tavares, Kwangio Kim . Od roku 1990 je SLC studována v kontextu booleovských funkcí [5] .

Definice

Booleovská funkce , kde  je vektor proměnných, splňuje SLC, pokud při změně jednoho ze vstupních bitů se výstupní bit změní s pravděpodobností přesně .

Příklad

Příklad booleovské funkce tří proměnných, která splňuje SLC [5] :

Vstupní bity 000 001 010 011 100 101 110 111
výstupní bit jeden jeden jeden 0 0 jeden jeden jeden

Říká se, že kryptografický algoritmus splňuje přísné lavinové kritérium [6] , pokud se při změně jednoho bitu vstupní sekvence změní každý bit výstupní sekvence s pravděpodobností jedné sekundy.

Kritérium nezávislosti bitů

C. Tavares a A. Webster ve své práci na studiu a popisu S-boxů definovali další kritérium pro booleovskou funkci , nazvané kritérium bitové nezávislosti , podle kterého, když se změní jeden vstupní bit, jakýkoli dva výstupní bity se mění nezávisle na sobě od přítele.

Definice

Funkce splňuje kritérium nezávislosti bitů , pokud pro any , kde převrácení bitu na vstupu způsobí změny bitu a , a tyto změny jsou nezávislé. Pro měření nezávislosti dvou výstupních bitů je zaveden korelační koeficient mezi -tou a -tou složkou výstupního vektoru pro upravený výstupní vektor, který se nazývá lavinový vektor a je označen jako .

.

Parametr bitové nezávislosti pro funkci se nachází takto:

.

Tento parametr ukazuje, jak dobře funkce splňuje kritérium bitové nezávislosti . Nabývá hodnot v intervalu a v lepším případě je roven 0 a můžeme mluvit o nezávislosti, v horším případě 1, když existuje závislost [4] .

Říká se, že kryptografický algoritmus splňuje kritérium bitové nezávislosti , pokud se při změně kteréhokoli vstupního bitu změní nezávisle jakékoli dva výstupní bity.

Garantovaný lavinový efekt objednávky

Nechybí ani zaručený lavinový efekt objednávky .

Garantované lavinové kritérium ( GAC ) řádu je splněno  , pokud změna jednoho bitu na vstupu substitučního uzlu změní alespoň výstupní bity na výstupu. Implementace řádu GAC v rozsahu od 2 do 5 pro substituční uzly poskytuje jakékoli šifře velmi vysoký lavinový efekt díky šíření změn v bitech při průchodu dat šifrovacími koly ve schématu Feistel [7] .

Zmatek a difúze

Shannon představil koncepty zmatku a šíření jako metody, které komplikují statistickou kryptoanalýzu . Podle Shannona:

Difúze  je metoda, při které je redundance ve statistice vstupních dat „distribuována“ ve struktuře výstupních dat. Zároveň jsou pro statistickou analýzu potřeba velké objemy výstupních dat, struktura zdrojového textu je skrytá. Implementováno pomocí P-boxů , jinými slovy, každý bit otevřeného textu musí ovlivnit každý bit šifrovaného textu. Rozložení jednoho nezašifrovaného bitu na velký počet zašifrovaných bitů zatemňuje statistickou strukturu prostého textu. Určení, jak statistické charakteristiky šifrovaného textu závisí na statistických charakteristikách otevřeného textu, by nemělo být snadné.

Zmatek  je metoda, při které je závislost klíče a výstupních dat co nejkomplexnější, zejména nelineární. V tomto případě je obtížnější dělat závěry o klíči z výstupních dat, stejně jako o původních datech, pokud je část klíče známa. Implementováno pomocí S-bloků .

Lavinový efekt je důsledkem dobrého zmatení a difúze [8] .

Lavinový efekt v populárních algoritmech

Lavinový efekt v DES

Počítání závislých výstupních bitů

V DES má lavinový efekt charakter přísného lavinového efektu a projevuje se již ve čtvrtém nebo pátém kole [3] , odhadem pro každou operaci (za předpokladu, že do začátku kola se rozšířil vliv jednoho původně zvoleného bitu na bity na pravé a  levé straně):

Po rozšíření:

Za předpokladu náhodných zásahů v 8 S-boxech podle alokačního problému budou bity spadat do: S-boxů.

Jedním z požadavků NSA na S-boxy bylo, že změna každého bitu na vstupu změní 2 bity na výstupu. Budeme předpokládat, že každý vstupní bit S-boxu ovlivňuje všechny 4 výstupní bity. Stane se závislým: bits.

Po bitovém přidání levé a pravé části :

Tabulka vlivu 1 bitové levé strany v DES
Kolo
Rozšíření
S-bloky

0 jeden 0 0 0
jeden 0 0 0 (0, 1) 1
2 jeden 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
čtyři 20.9 20.9 → 31.3 31,3 → 32 (32, 20.9) → 32
5 32 32 32 32

Abyste dosáhli maximálního lavinového efektu, musíte pečlivě vybrat rozšíření, S-boxy a také permutaci ve funkci .

Tabulka, kolik bitů se změní za kolo

Následující tabulka ukazuje počet výstupních bitů změněných v každém kole za předpokladu, že se změnil jeden bit zdrojového textu a jeden bit klíče. [9]

Změny zadávání textu Klíčové změny
Kolo Počet
bitů se změnil
Kolo Počet
bitů se změnil
0 jeden 0 0
jeden 6 jeden 2
2 21 2 čtrnáct
3 35 3 28
čtyři 39 čtyři 32
5 34 5 třicet
6 32 6 32
7 31 7 35
osm 29 osm 34
9 42 9 40
deset 44 deset 38
jedenáct 32 jedenáct 31
12 třicet 12 33
13 třicet 13 28
čtrnáct 26 čtrnáct 26
patnáct 29 patnáct 34
16 34 16 35

Lavinový efekt v AES

V AES se lavinový efekt projevuje následovně: v prvním kole operace MixColumns() rozšíří změny v jednom bajtu do všech 4 bajtů sloupce, načež ve druhém kole použije ShiftRows() a MixColumns() operace šíří změny do celé tabulky. Úplné difúze je tedy dosaženo již ve druhém kole. Operace SubBytes() způsobuje zmatek.

Test lavinového efektu v AES

Tabulka ukazuje číselné hodnoty lavinového efektu pro S-boxy v AES. V prvním případě se bajt "11" (v hexadecimálním zápisu) změní na "10", ve druhém případě se bajt "11" změní na "12", ve třetím - "00" na "10". V souladu s tím byl pro každý případ vypočítán koeficient lavinového účinku. Z těchto údajů jasně vidíme, že zašifrovaný výstupní text není vůbec jednoduchý, s poměrně jednoduchým vstupním textem [10] . A koeficient lavinového efektu se blíží 0,5, což znamená, že lavinové kritérium je dobře splněno.

Vstupní text Šifrovaný text [ specifikovat ] Lavinový efekt
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

Lavinový efekt v GOST 28147-89

Lavinový efekt na vstupu zajišťují (4 x 4) S-boxy a cyklický posun doleva o

Tabulka šíření vlivu 1 bitu levé strany v GOST 28147-89
Kolo
jeden 2 3 čtyři 5 6 7 osm jeden 2 3 čtyři 5 6 7 osm
0 jeden
jeden jeden
2 jeden 3 jeden
čtyři 3 čtyři jeden jeden čtyři jeden 3 jeden 3 čtyři
5 čtyři jeden 3 jeden 3 čtyři 3 čtyři čtyři čtyři čtyři čtyři jeden
6 3 čtyři čtyři čtyři čtyři čtyři jeden čtyři čtyři čtyři čtyři čtyři 3 3 čtyři
7 čtyři čtyři čtyři čtyři čtyři 3 3 čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři
osm čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři čtyři

Tabulka ukazuje, že v každém kole se počet nezávislých bitů v důsledku posunu a pádu výstupu S-boxu předchozího kola na 2 S-boxy kola dalšího zvýší v průměru 4krát. Distribuce závislých bitů ve skupinách po 4 bitech na levé a pravé straně je zobrazena bez zohlednění sčítání pomocí kulatého klíče. Předpokládá se, že každý bit na vstupu S-boxu ovlivňuje všechny bity na výstupu. Počet nábojů pro dosažení plného lavinového efektu bez zohlednění sčítání pomocí klíče je 8. Experimentální ověření pro S-boxy používané Centrální bankou Ruské federace ukazuje, že je potřeba 8 nábojů .

Hodnota lavinového efektu v GOST 28147-89

Pro šifrovací sílu jsou klíčovými požadavky na operace bitové konverze v šifrovacím kole nelinearita, to znamená nemožnost zvolit lineární funkci, která se tomuto převodu dobře přibližuje, a lavinový efekt – splnění těchto požadavků ztěžuje provádění lineárních a diferenciální kryptoanalýza šifry, resp. Pokud z těchto pozic vezmeme v úvahu transformační operace v šifrovacím kole podle GOST 28147-89 , pak je snadné se ujistit, že šifrovací síla je zajištěna pouze operacemi sčítání s klíčem a prováděním substituce bitů v tabulce, protože operace bitového posunu a součtu modulo 2 jsou lineární a nemají lavinový efekt. Z toho můžeme usoudit, že určujícím faktorem spolehlivosti šifrování v souladu s GOST 28147-89 je správně zvolená klíčová informace (klíč a substituční tabulka). V případě šifrování dat s nulovým klíčem a triviální substituční tabulkou, jejíž všechny uzly obsahují čísla od 0 do 15 ve vzestupném pořadí, je nalezení otevřeného textu ze známého šifrovaného textu poměrně jednoduché pomocí lineární i diferenciální kryptoanalýzy.

Jak je ukázáno v [11] , operace přidání dat s podklíčem nemůže poskytnout dostatečný lavinový efekt, protože při změně jednoho bitu na vstupu této procedury se změní pouze jeden bit na výstupu s pravděpodobností 0,5, zbývající bity měnit s mnohem menší pravděpodobností. To naznačuje, že k zajištění kryptografické síly šifrování nestačí zajistit dostatečnou kvalitu klíče – je také nutné použít silné náhradní tabulky s vysokou nelinearitou a lavinovým efektem [12] .

Příklady

Příklady hashovacích funkcí

Příklady ukazují, jak se změní hash, když se změní jeden bit ve vstupní sekvenci.

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'

Příklady pro šifry

Příklady ukazují, jak se změní šifrovaná zpráva, když se změní jeden bit [13] ve vstupní sekvenci nebo v klíči.

AES :

AES(klíč = "aaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '5188c6474b228cbdd242e9125ebe1d53' AES(klíč = "aaaaaaaaaaaaaaa", "aa c aaaaaaaaaaaaa") = 'f7e5c1118f5cb86198e37ff7a29974bc' AES(klíč = "aa c aaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '2c50b5cac9c755d67aa61b87c26248eb' AES(klíč = "aa c aaaaaaaaaaaa", "aa c aaaaaaaaaaaaa") = '87c09128de852b990b3dfbd65c7d9094'

RC4 :

RC4(key = "aaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '71ddf97f23b8e42a4f0ccc463d7da4aa' RC4(key = "aaaaaaaaaaaaaaaa", "aa c aaaaaaaaaaaaa") = '3d0feab630a32d1d0654c5481bd9ddd9' RC4(klíč = "aa c aaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa") = '476266d77453695b6cee682f23b0c51d' RC4(key = "aa c aaaaaaaaaaaaa", "aa c aaaaaaaaaaaaa") = '3139d4506185d48e9b9e3dbbd4b57ec2'

Příklad špatného lavinového efektu

Caesarova šifra neimplementuje lavinový efekt:

E(k = 3, "aaaaaaaaaaaaaaaa") = 'dddddddddddddddd' E(k = 3, "a c aaaaaaaaaaaaaaa") = 'dfdddddddddddddd'

Poznámky

  1. Horst Feistel, "Kryptografie a počítačové soukromí." Scientific American , sv. 228, č.p. 5, 1973. (JPEG naskenované obrázky) Archivováno 6. června 2019 na Wayback Machine
  2. Richard A. Mollin, „Codes: the guide to secret from ancient to modern times“, Chapman & Hall/CRC, 2005, str. 142. (Zobrazeno na Google Books) Archivováno 2. ledna 2015 na Wayback Machine
  3. 1 2 William Stallings, „Kryptografie a zabezpečení sítě: principy a praxe“, Prentice Hall, 1999, s. 80. (Zobrazit na Google Books) Archivováno 2. ledna 2015 na Wayback Machine
  4. 1 2 3 Isl VERGILI, Melek D. YUCEL. VOL.9 // Vlastnosti lavinové a bitové nezávislosti pro soubory náhodně vybraných n X n S-Boxů . - Turk J Elec Engin, 2001. - S. 137. Archivovaný výtisk (nepřístupný odkaz) . Získáno 9. listopadu 2009. Archivováno z originálu 12. března 2005. 
  5. 1 2 Thomas W. Cusick, Pantelimon Stanica, Pantelimon Stănică. Kryptografické booleovské funkce a aplikace . - 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, str. 450. (PDF Link) Archivováno 19. května 2003 u Wayback Machine .
  7. Federální agentura pro vzdělávání Sibiřská státní letecká univerzita pojmenovaná po akademikovi M. F. Rešetněvovi. AKTUÁLNÍ PROBLÉMY ZABEZPEČENÍ TECHNOLOGIE (Odkaz na PDF) Archivováno 5. května 2021 na Wayback Machine
  8. Shannon C. , Company A. T. a. T. Communication Theory of Secrecy Systems  (anglicky) // Bell Syst. Tech. J. - Short Hills, NJ, atd .: 1949. - Sv. 28, Iss. 4. - S. 656-715. — ISSN 0005-8580 ; 2376-7154doi:10.1002/J.1538-7305.1949.TB00928.X
  9. Sourav Mukhopadhyay. Kapitola 2 // Kryptografie a zabezpečení sítě . — Indie: Katedra matematiky Indický technologický institut Kharagpur. - S. 20. Archivovaný výtisk (nepřístupný odkaz) . Získáno 4. listopadu 2012. Archivováno z originálu 20. listopadu 2016. 
  10. Amish Kumar, paní. Namita Tiwari. sv. 1 // EFEKTIVNÍ REALIZACE A LAVINOVÝ EFEKT AES . - Katedra CSE MANIT-Bhopal: IJSPTM, srpen 2012. - S. 34.
  11. C. Charnes, O'Connor, J. Pieprzyk, R. Safavi-Naini, Y. Zheng. Další komentáře Sovětský šifrovací algoritmus . — 1. června 1994. - str. 1-8.  (nedostupný odkaz)
  12. AKTUÁLNÍ PROBLÉMY ZABEZPEČENÍ INFORMAČNÍCH TECHNOLOGIÍ. Sborník materiálů III. mezinárodní vědecké a praktické konference Krasnojarsk 2009. (Odkaz na PDF) Archivní kopie z 5. května 2021 na Wayback Machine
  13. "a" = 0110 00 0 1, "c" = 0110 00 1 1