Symmetriska kryptosystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 12 mars 2017; kontroller kräver 24 redigeringar .

Symmetriska kryptosystem (även symmetrisk kryptering , symmetriska chiffer ) ( engelsk  symmetric-key algorithm ) är en krypteringsmetod där samma kryptografiska nyckel används för kryptering och dekryptering . Före uppfinningen av det asymmetriska krypteringsschemat var den enda metoden som fanns symmetrisk kryptering. Algoritmnyckeln måste hållas hemlig av båda parter, åtgärder måste vidtas för att skydda åtkomsten till kanalen, längs hela kryptogrammets väg, eller av parterna för interaktion genom kryptoobjekt, meddelanden, om denna interaktionskanal är märkt "Ej för användning av tredje part”. Krypteringsalgoritmen väljs av parterna före utbytet av meddelanden.

Grundläggande information

Datakrypteringsalgoritmer används i stor utsträckning inom datorteknik i system för att dölja konfidentiell och kommersiell information från skadlig användning av tredje part. Huvudprincipen i dem är villkoret att sändaren och mottagaren i förväg känner till krypteringsalgoritmen , såväl som nyckeln till meddelandet, utan vilken informationen bara är en uppsättning tecken som inte är vettiga.

De klassiska exemplen på sådana algoritmer är de symmetriska kryptografiska algoritmerna , listade nedan:

Enkel permutation

En enkel permutation utan nyckel är en av de enklaste krypteringsmetoderna. Meddelandet skrivs till tabellen med kolumner. Efter att klartexten skrivits i kolumner läses den rad för rad för att bilda chiffertexten. För att använda detta chiffer måste avsändare och mottagare komma överens om en delad nyckel i form av en tabellstorlek. Kombinationen av bokstäver i grupper ingår inte i chiffernyckeln och används endast för att göra det lättare att skriva meningslös text.

Enkel permutation med nyckel

En mer praktisk krypteringsmetod som kallas single key permutation är mycket lik den föregående. Det skiljer sig endast genom att tabellkolumnerna omarrangeras av ett nyckelord, en fras eller en uppsättning siffror som är lika långa som en tabellrad.

Dubbel permutation

För extra sekretess kan du kryptera om ett meddelande som redan har krypterats. Denna metod är känd som dubbel permutation. För att göra detta väljs storleken på den andra tabellen så att längden på dess rader och kolumner skiljer sig från längderna i den första tabellen. Det är bäst om de är coprime. Dessutom kan kolumner ordnas om i den första tabellen och rader i den andra. Slutligen kan du fylla bordet i sicksack, orm, spiral eller på annat sätt. Sådana metoder för att fylla bordet, om de inte ökar chifferets styrka, gör dekrypteringsprocessen mycket mer underhållande.

Permutation "Magic Square"

Magiska rutor kallas fyrkantstabeller med på varandra följande naturliga tal från 1 inskrivna i sina celler, som summerar till varje kolumn, varje rad och varje diagonal samma nummer. Sådana rutor användes i stor utsträckning för att skriva in den krypterade texten enligt numreringen i dem. Om du sedan skriver ut innehållet i tabellen rad för rad, så får du en kryptering genom att ordna om bokstäverna. Vid första anblicken verkar det som att det finns väldigt få magiska rutor. Deras antal ökar dock mycket snabbt när storleken på kvadraten ökar. Det finns alltså bara en 3 x 3 magisk kvadrat, om du inte tar hänsyn till dess rotationer. Det finns redan 880 4 x 4 magiska rutor, och antalet 5 x 5 magiska rutor är cirka 250 000. Därför kan stora magiska rutor vara en bra grund för ett tillförlitligt krypteringssystem på den tiden, eftersom manuell uppräkning av alla nyckelalternativ för detta chiffer var otänkbart.

Siffror från 1 till 16 var inskrivna i en kvadrat med 4 gånger 4. Dess magi var att summan av siffror i rader, kolumner och hela diagonaler var lika med samma nummer - 34. Dessa rutor dök upp först i Kina, där de tillskrevs några "magisk kraft".

16 3 2 13
5 tio elva åtta
9 6 7 12
fyra femton fjorton ett

Magic square kryptering utfördes enligt följande. Till exempel vill du kryptera frasen: "Jag kommer idag.". Bokstäverna i denna fras är inskrivna sekventiellt i kvadraten enligt siffrorna som är skrivna i dem: bokstavens position i meningen motsvarar ordningsnumret. En prick placeras i tomma celler.

16. 3 och 2 r 13 d
5 h 10:e 11 g 8:e
9 C 6 w 7 a 12 ungefär
4 e 15:e 14 n 1 P

Efter det skrivs chiffertexten in i en sträng (läsning görs från vänster till höger, rad för rad):
.irdzegyuSzhaoyanP

När den är dekrypterad passar texten in i en kvadrat, och klartexten läses i en "magisk kvadrat" nummersekvens. Programmet bör generera "magiska rutor" och välja den önskade med tangenten. Fyrkanten är större än 3x3.

Historik

Krav

En fullständig förlust av alla statistiska regelbundenheter i det ursprungliga meddelandet är ett viktigt krav för ett symmetriskt chiffer. För att göra detta måste chiffret ha en " lavineffekt " - det måste finnas en kraftig förändring i chifferblocket med en 1-bits förändring i indata (helst värdena på 1/2 bitar av chifferblocket bör ändras).

Ett viktigt krav är också frånvaron av linjäritet (det vill säga villkoren f(a) xor f(b) == f(a xor b)), annars underlättas tillämpningen av differentiell kryptoanalys på chifferet.

Allmänt schema

För närvarande är symmetriska chiffer:

De flesta symmetriska chiffer använder en komplex kombination av ett stort antal substitutioner och permutationer. Många sådana chiffer exekveras i flera (ibland upp till 80) pass, med en "passnyckel" vid varje pass. Uppsättningen med "passnycklar" för alla pass kallas "nyckelschemat". Som regel skapas den från nyckeln genom att utföra vissa operationer på den, inklusive permutationer och substitutioner.

Ett typiskt sätt att konstruera symmetriska krypteringsalgoritmer är Feistel-nätverket . Algoritmen bygger ett krypteringsschema baserat på funktionen F(D, K), där D är en databit som är hälften så stor som krypteringsblocket och K är "passnyckeln" för detta pass. Funktionen behöver inte vara inverterbar - dess omvända funktion kanske inte är känd. Fördelarna med Feistel-nätverket är det nästan fullständiga sammanträffandet av dekryptering med kryptering (den enda skillnaden är den omvända ordningen av "passnycklarna" i schemat), vilket avsevärt förenklar hårdvaruimplementeringen.

Permutationsoperationen blandar bitarna i meddelandet enligt en viss lag. I hårdvaruimplementationer är det trivialt implementerat som intrassling av ledare. Det är permutationsoperationerna som gör det möjligt att uppnå "lavineffekten". Permutationsoperationen är linjär - f(a) xor f(b) == f(a xor b)

Substitutionsoperationer utförs som att ersätta värdet av en viss del av meddelandet (ofta 4, 6 eller 8 bitar) med en standard, hårdkodad i algoritmen annat nummer genom att referera till en konstant array. Substitutionsoperationen introducerar icke-linjäritet i algoritmen.

Ofta beror styrkan hos en algoritm, särskilt mot differentiell kryptoanalys, på valet av värden i substitutionstabeller (S-boxar). Som ett minimum anses det vara oönskat att ha fasta element S(x) = x, såväl som frånvaron av påverkan av någon bit av inmatningsbyten på någon bit av resultatet - det vill säga fall då resultatbiten är samma för alla par av inmatningsord som skiljer sig endast i denna bit.

Algoritmparametrar

Det finns många (minst två dussin) symmetriska chifferalgoritmer , vars väsentliga parametrar är:

Typer av symmetriska chiffer

blockchiffer stream chiffer

Jämförelse med asymmetriska kryptosystem

Fördelar

Nackdelar

För att kompensera för bristerna med symmetrisk kryptering används för närvarande ett kombinerat (hybrid) kryptografiskt system i stor utsträckning , där en sessionsnyckel överförs med asymmetrisk kryptering, som används av parter för att utbyta data med symmetrisk kryptering.

En viktig nackdel med symmetriska chiffer är omöjligheten att använda dem i mekanismerna för att generera elektroniska digitala signaturer och certifikat, eftersom nyckeln är känd för varje part.

Litteratur

Länkar