Symmetriske nøglealgoritmer er
Symmetriske nøglealgoritmer er en metode inden for kryptografi. Det er, når nøglerne til dekryptering og kryptering er nøjagtig den samme delte hemmelighed. Du kan generere hemmeligheden tilfældigt eller ud fra et kodeord eller gennem en hemmelig nøgleudvekslingsprocedure som Diffie-Hellman.
Algoritmer med symmetriske nøgler er meget vigtige, fordi de er hurtigere på computere end den anden slags algoritmer med offentlige nøgler. I kryptografi med offentlige nøgler (asymmetrisk nøglekryptografi) kan krypteringsnøglen uden problemer gives til offentligheden, og alle kan sende hemmelige meddelelser til dig. Nøglen til kryptering er "åben", fordi den i praksis ikke kan bruges til at få nøglen til dekryptering. Dette er meget nyttigt, men algoritmer til kryptografi med offentlig nøgle er meget langsomme på computere, så de bruges kun til at sende en hemmelig nøgle. Derefter bruges symmetriske nøglealgoritmer til alt andet, fordi de er hurtigere.
Der findes to slags algoritmer med symmetriske nøgler, kaldet stream ciphers og block ciphers. Stream ciphers krypterer en meddelelse som en strøm af bits én ad gangen. Blokchiffrer tager blokke af bits, krypterer dem som en enkelt enhed og bruger undertiden også svaret senere. Blokke på 64 bit har været almindeligt anvendt; moderne krypteringssystemer som Advanced Encryption Standard anvender dog blokke på 128 bit.
Eksempler på populære symmetriske cyphere er Twofish, Serpent, AES (også kendt som Rijndael), Blowfish, CAST5, RC4, TDES og IDEA.
I historien udnyttede nogle kryptoanalysemetoder symmetri, så symmetriske systemer var mindre sikre. Nogle angreb kaldes known-plaintext attacks, chosen plaintext attacks, differentialcryptanalysis og linear cryptanalysis.
Andre udtryk for kryptering med symmetrisk nøgle er kryptering med hemmelig nøgle, enkelt nøgle, delt nøgle, enkelt nøgle, enkelt nøgle og i sidste ende kryptering med privat nøgle. Denne sidste betegnelse har ikke den samme betydning som begrebet privat nøgle i kryptering med offentlig nøgle.
I en symmetrisk nøglealgoritme er den nøgle, der bruges til at kryptere, den samme som den nøgle, der bruges til at dekryptere. Af denne grund skal den holdes hemmelig.
Symmetriske vs. asymmetriske algoritmer
I modsætning til symmetriske algoritmer bruger asymmetriske nøglealgoritmer en anden nøgle til kryptering end til dekryptering. Det betyder, at en bruger, der kender krypteringsnøglen for en asymmetrisk algoritme, kan kryptere meddelelser, men kan ikke beregne dekrypteringsnøglen og kan ikke dekryptere meddelelser, der er krypteret med denne nøgle. Nedenfor gives en kort sammenligning af disse to typer algoritmer:
Hastighed
Symmetriske nøglealgoritmer er generelt meget mindre beregningskrævende end asymmetriske nøglealgoritmer. I praksis er asymmetriske nøglealgoritmer typisk hundredvis til tusindvis af gange langsommere end symmetriske nøglealgoritmer.
Ledelse af nøgler
En ulempe ved symmetriske nøglealgoritmer er kravet om en delt hemmelig nøgle, hvor begge parter har den samme kopi i hver ende. For at sikre sikker kommunikation mellem alle i en gruppe på n personer er der behov for i alt n(n - 1)/2 nøgler, hvilket er det samlede antal mulige kommunikationskanaler. For at begrænse virkningen af en eventuel opdagelse fra en kryptografisk angriber bør de skiftes regelmæssigt og opbevares sikkert under distribution og i brug. Processen med at udvælge, distribuere og opbevare nøgler er kendt som nøgleforvaltning og er vanskelig at udføre på en pålidelig og sikker måde.
Hybride kryptosystem
I moderne kryptosystemdesigns anvendes både asymmetriske (offentlige nøgler) og symmetriske algoritmer for at udnytte det bedste af begge dele. Asymmetriske algoritmer anvendes til at distribuere symmetriske nøgler i starten af en session. Når først en symmetrisk nøgle er kendt af alle parter i sessionen, kan hurtigere symmetriske nøglealgoritmer, der anvender denne nøgle, anvendes til at kryptere resten af sessionen. Dette forenkler problemet med nøgledistribution, fordi asymmetriske nøgler kun skal distribueres autentisk, mens symmetriske nøgler skal distribueres på både autentisk og fortrolig vis.
Systemer, der anvender en sådan hybrid tilgang, omfatter SSL, PGP og GPG osv.
Relaterede sider
- Asymmetriske nøglealgoritmer
Spørgsmål og svar
Q: Hvad er symmetriske nøglealgoritmer?
A: Symmetriske nøglealgoritmer er en metode inden for kryptografi, hvor nøglerne til dekryptering og kryptering er nøjagtig den samme delte hemmelighed.
Q: Hvordan kan man generere hemmeligheden?
Svar: Hemmeligheden kan genereres tilfældigt eller ud fra et kodeord eller gennem en procedure for hemmelig nøgleudveksling som Diffie-Hellman.
Spørgsmål: Hvorfor er symmetriske nøglealgoritmer vigtige?
Svar: Symmetriske nøglealgoritmer er meget vigtige, fordi de er hurtigere på computere end algoritmer med offentlige nøgler.
Spørgsmål: Hvad er kryptografi med offentlige nøgler (asymmetrisk nøglekryptografi)?
A: Ved offentlig nøglekryptografi (asymmetrisk nøglekryptografi) kan krypteringsnøglen uden problemer gives til offentligheden, og alle kan sende dig hemmelige meddelelser. Nøglen til kryptering er "åben", fordi den i praksis ikke kan bruges til at få nøglen til dekryptering.
Spørgsmål: Hvilke to typer symmetriske krypteringssystemer findes der?
Svar: Der findes to typer symmetriske cifre, nemlig stream ciphers og block ciphers. Stream ciphers krypterer en meddelelse som en strøm af bits én ad gangen, mens block ciphers tager blokke af bits, krypterer dem som en enkelt enhed og nogle gange også bruger svaret senere.
Sp: Hvilken størrelse blokke bruger moderne krypteringskoder?
Svar: Moderne krypteringskoder som Advanced Encryption Standard anvender 128 bit store blokke.
Spørgsmål: Hvilke typer angreb er blevet brugt til at udnytte symmetri i historien?
Svar: I historien har nogle kryptoanalysemetoder udnyttet symmetri, så symmetriske systemer var mindre sikre. Blandt de angreb, der er blevet anvendt, kan nævnes angreb med kendt klartekst, angreb med valgt klartekst, differentiel kryptanalyse og lineær kryptanalyse.