Claude Shannon föreslog tekniken för förvirring och diffusion för att fånga de grundläggande blocken av en kryptografisk funktion snarare än att använda en lång och tidskrävande statistikmetod. Shannon var huvudsakligen orolig för att förhindra kryptanalysen med hjälp av statistisk analys.
Anledningen till det är följande. Antag att angriparen har viss förståelse för de enkla textens statistiska egenskaper. I ett mänskligt förståeligt meddelande kan exempelvis frekvensfördelningen av alfabeterna vara känd på förhand. I så fall är kryptanalysen ganska lätt att genomföra där den kända statistiken kan återspeglas i chiffertexten. Denna kryptanalys kan säkert avleda nyckeln eller en del av nyckeln. Det är anledningen till att Shannon föreslog två metoder, nämligen förvirring och diffusion.
Jämförelsediagram
Grunder för jämförelse | Förvirring | Diffusion |
---|---|---|
Grundläggande | Används för att generera vaga chiffertexter. | Används för att generera dunkla, vanliga texter. |
Försöker att | Gör en relation mellan statistiken i chiffertexten och värdet på krypteringsnyckeln så komplicerat som möjligt. | Det statistiska sambandet mellan plaintext och chiffertext görs så komplicerat som möjligt. |
Uppnås genom | Substitutionalgoritm | Transpositionsalgoritm |
Använd av | Stream chiffer och block cipher | Blockera endast chiffer. |
Resultera i | Ökad våldsamhet | Ökad redundans |
Definition av förvirring
Förvirring är en kryptografisk teknik som utformats för att öka chiffreringens vaghet, i enkla ord säkerställer tekniken att chiffertexten inte ger någon aning om rentexten. I den givna tekniken upprätthålls förhållandet mellan statistiken för chiffertexten och värdet av krypteringsnyckeln så komplex som möjligt. Även om angriparen får viss kontroll över statistiken i chiffertexten kunde han inte härleda nyckeln, eftersom det sätt på vilket nyckeln användes för att framställa den här chiffertexten är så komplex.
Förvirringen kan erhållas genom att använda substitution och komplex scrambling algoritm som bygger på nyckel och inmatning (rentext).
Definition av diffusion
Diffusion är en kryptografisk teknik uppfunnad för att öka redundansen för den vanliga texten för att dölja den enkla statistiska strukturen för att förhindra försök att härleda nyckeln. I diffusionen kan den enkla textens statistiska struktur försvinna i långdistansstatistik av chiffertexten och förhållandet mellan dem är komplext så att ingen kan härleda den ursprungliga nyckeln.
Det uppnås genom att sprida ut den enskilda enkla textciften över många ciffertextsiffror, till exempel när en enda bit av rentexten ändras, måste den påverka hela chiffertexten eller ändringen måste ske på hela chiffertexten.
I blockchiffrering kan diffusionen erhållas genom att man applicerar viss permutation på data med en funktion till permutationen. Resultatet är att biten från olika positioner i den ursprungliga rentexten kommer att bidra till en enda bit i chiffertexten. Transformationen i blockchiffreringen beror på nyckeln.
Viktiga skillnader mellan förvirring och diffusion
- Förvirringsteknik används för att skapa vaga ciphertexts, medan diffusion används för att generera obscure plaintexts.
- Förvirringen försöker göra den statistiska associeringen mellan rentext och chiffertext så komplicerat som möjligt. Tvärtom försöker diffusionstekniken att göra korrelationen mellan statistiken i chiffertexten och värdet av krypteringsnyckeln så komplicerad som möjligt.
- Substitutionsalgoritmer kan användas för att få förvirring. Däremot kan diffusion uppnås genom användning av transpositionstekniker.
- Blockchiffer bygger på förvirring såväl som diffusion medan strömkodning endast använder förvirring.
Slutsats
Förvirring och diffusion är båda kryptografiska teknikerna där i förvirring syftar till att göra ett förhållande mellan statistiken i chiffertexten och värdet på krypteringsnyckeln så komplicerad som möjligt. Å andra sidan försöker diffusion att dölja den enkla textens statistiska struktur genom att sprida effekten av varje enskild enkeltextsiffra över större del- eller chiffertextsiffror.