Sikkerhedsmodellen, der ligger til grund for moderne kryptografi, er baseret på flere veletablerede principper, hvoraf det vigtigste er Kerckhoffs' princip. Dette princip hævder, at sikkerheden i en kryptografisk protokol udelukkende bør afhænge af nøglens hemmeligholdelse, ikke af hemmeligholdelsen af de algoritmer, der bruges til kryptering eller dekryptering.
Derfor, for at besvare spørgsmålet: Nej, krypterings- og dekrypteringsfunktionerne i sig selv behøver ikke at blive holdt hemmelige for at kryptografiprotokollen forbliver sikker.
Teoretisk fundament
Kerckhoffs' princip, formuleret i det 19. århundrede, siger: "Et kryptosystem bør være sikkert, selvom alt om systemet, undtagen nøglen, er offentlig kendt." Dette koncept giver en grundlæggende retningslinje for moderne kryptografisk praksis. Ræsonnementet er, at hvis en protokols sikkerhed afhænger af algoritmernes uklarhed, bliver systemet sårbart, når disse algoritmer opdages, analyseres eller reverse-engineeres. Hvis derimod kun nøglen skal holdes hemmelig, forbliver systemet sikkert, selvom en modstander kender alle detaljer i algoritmen.
Praktiske implikationer
Moderne kryptografiske protokoller, såsom dem, der bruges i Advanced Encryption Standard (AES), Rivest-Shamir-Adleman (RSA) og Elliptic Curve Cryptography (ECC), er alle designet med offentlige algoritmer. Disse algoritmer er bredt publicerede, gransket af det akademiske og professionelle samfund og underkastet grundig analyse for at sikre, at der ikke findes noget muligt angreb, forudsat at nøglen forbliver hemmelig og tilstrækkelig stærk.
Den åbne publicering af kryptografiske algoritmer tjener flere formål:
1. Fagfællebedømmelse og validering: Offentlige algoritmer drager fordel af omfattende peer review, som hjælper med at identificere og løse potentielle sårbarheder før udbredt anvendelse.
2. interoperabilitet: Når algoritmer er offentligt tilgængelige, kan forskellige leverandører implementere kompatible systemer, hvilket letter udbredt og sikker kommunikation.
3. troværdighed: Åbne algoritmer giver brugerne mulighed for at vurdere sikkerhedsegenskaberne uafhængigt, hvilket reducerer risikoen for skjulte fejl eller forsætlige bagdøre.
Historisk kontekst
Historisk set var nogle kryptografiske systemer afhængige af algoritmens hemmeligholdelse for sikkerhed (såkaldt "sikkerhed gennem uklarhed"). Et velkendt eksempel er Enigma-maskinen, som Tyskland brugte under Anden Verdenskrig. Dens sikkerhed afhang ikke kun af nøglen (de daglige rotorindstillinger), men også af hemmeligholdelsen af maskinens indre funktioner. Da de allierede kryptanalytikere rekonstruerede Enigmas mekanisme, blev systemets sikkerhed dramatisk svækket.
I moderne tid frarådes det kraftigt at bruge hemmelige algoritmer. Proprietære eller udokumenterede algoritmer har større sandsynlighed for at indeholde uopdagede sårbarheder og kan ikke drage fordel af den kollektive ekspertise i kryptografifællesskabet.
Symmetrisk vs. asymmetrisk kryptografi
Både symmetriske (f.eks. AES, DES) og asymmetriske (f.eks. RSA, ECC) kryptografiske systemer følger princippet om, at algoritmen kan kendes offentligt uden at gå på kompromis med sikkerheden. I symmetrisk kryptografi bruges den samme nøgle til både kryptering og dekryptering. I asymmetrisk kryptografi krypterer en offentlig nøgle data, mens en privat nøgle dekrypterer dem. Sikkerheden er i begge tilfælde baseret på, at det er umuligt at udlede nøglen (eller den private nøgle i det asymmetriske tilfælde) givet algoritmen og krypteringsteksten.
For eksempel er specifikationen for AES udgivet som FIPS 197 af NIST. Enhver kan downloade standarden og implementere algoritmen. Sikkerheden af en AES-krypteret besked afhænger udelukkende af nøglens hemmeligholdelse og uforudsigelighed, ikke af algoritmens hemmeligholdelse.
Algoritmefortrolighed: Risici og begrænsninger
At holde krypterings- eller dekrypteringsfunktionerne hemmelige indebærer flere risici:
- Mangel på gennemsigtighed: Lukkede algoritmer kan ikke evalueres uafhængigt for sikkerhed, hvilket øger risikoen for uopdagede sårbarheder eller forsætlige svagheder.
- Reverse Engineering: Med tilstrækkelig adgang til krypterede og dekrypterede data kan en modstander ofte rekonstruere algoritmen og dermed fjerne enhver fordel opnået ved hemmeligholdelse.
- Kompleksiteten af nøglehåndtering: Hvis både algoritmen og nøglen skal holdes hemmelige, bliver logistikken bag sikker distribution og lagring betydeligt mere udfordrende.
- Forældelse og ufleksibilitet: Hvis en hemmelig algoritme kompromitteres, kan det være nødvendigt at udskifte hele systemet, mens nøglekompromittering i et offentligt algoritmesystem kan afhjælpes ved at udstede nye nøgler.
Eksempler
1. AES (Advanced Encryption Standard): Algoritmen er offentlig, fagfællebedømt og bredt implementeret. Sikkerheden ligger udelukkende i nøglens hemmeligholdelse.
2. RSA (Rivest–Shamir–Adleman): Algoritmen til kryptering og dekryptering er offentlig. Den private nøgle skal forblive hemmelig; den offentlige nøgle og algoritmen er åbne.
3. Cæsar-kryptering: En af de enkleste klassiske cifre, hvor funktionen (skiftende bogstaver) er let at finde. Sikkerheden var afhængig af skiftmængden, men i praksis bliver sådanne cifre trivielt brudt, når funktionen er kendt, på grund af deres svage design.
4. Proprietære algoritmer (f.eks. DVD Content Scramble System – CSS): CSS forsøgte at holde algoritmen hemmelig, men den blev reverse engineeret. Da algoritmen var kendt, blev dens sikkerhedssvagheder hurtigt udnyttet.
Didaktisk værdi
At undervise i princippet om, at kryptografisk sikkerhed udelukkende bør afhænge af nøglen snarere end algoritmehemmelighed, giver flere pædagogiske fordele:
- Fremmer robust design: Studerende og praktikere udvikler systemer, der er modstandsdygtige over for eksponering, hvilket reducerer afhængigheden af uklarhed.
- Fremmer åbenhed: Det understøtter den videnskabelige proces, hvor åben diskussion og analyse styrker sikkerhedspåstande.
- Udvikler modstridende tænkning: Eleverne forstår, at modstandere ofte har betydelige ressourcer og kan indhente algoritmiske detaljer, så systemer skal konstrueres i overensstemmelse hermed.
- Fremhæver vigtigheden af nøglehåndtering: Effektiv sikkerhedsuddannelse fokuserer på korrekt nøglegenerering, distribution og lagring, som er de faktiske svage punkter i mange systemer i den virkelige verden.
Modeksempler og præciseringer
Der er situationer, hvor proprietære eller hemmelige algoritmer anvendes, ofte i applikationer, hvor kryptografi er indlejret i hardware, eller i begrænsede miljøer, hvor der gælder licens- eller lovgivningsmæssige bekymringer. Sådanne systemer anses dog generelt for at være mindre sikre end dem, der bruger velafprøvede offentlige algoritmer. Sikkerhed gennem obskuritet kan give en midlertidig fordel, men det kan ikke erstatte et solidt kryptografisk design.
I nogle militære eller efterretningsmæssige sammenhænge kan proprietære algoritmer bruges til at forsinke modstandere, men dette er generelt et ekstra lag snarere end fundamentet for sikkerhed.
Algoritmehemmelighedens rolle i sikkerhed
Selvom standardpraksis og anbefalet praksis er at antage, at algoritmer vil blive kendte, kan der være operationelle grunde til at holde visse detaljer private i en begrænset periode (f.eks. nye kryptografiske konstruktioner, der endnu ikke er standardiserede). Imidlertid er det at stole på algoritmers langsigtede hemmeligholdelse i modstrid med bedste praksis inden for kryptografi.
Når man underviser i eller designer kryptografiske systemer, er det bedst at antage, at modstandere har fuldt kendskab til krypterings- og dekrypteringsprocesserne. Denne tankegang sikrer, at kun nøglens hemmeligholdelse står mellem et sikkert system og et kompromis, hvilket stemmer overens med Kerckhoffs' princip og moderne sikkerhedsbegreber.
Kryptografisk sikkerhed bør ikke, og er i praksis ikke, afhængig af hemmeligholdelsen af krypterings- og dekrypteringsfunktionerne. Styrken af en kryptografisk protokol måles ved dens evne til at modstå angreb, selv når algoritmerne er fuldt ud afsløret og tilgængelige for analyse af alle. Ved at overholde dette princip opnår kryptografiske systemer højere niveauer af sikkerhed, tillid og robusthed.
Andre seneste spørgsmål og svar vedr Grundlæggende om EITC/IS/CCF klassisk kryptografi:
- Blev offentlig-nøgle-kryptografi introduceret til brug i kryptering?
- Kaldes sættet af alle mulige nøgler i en bestemt kryptografisk protokol for nøglerummet i kryptografi?
- I en skiftchiffer, erstattes bogstaverne i slutningen af alfabetet med bogstaver fra begyndelsen af alfabetet i henhold til modulær aritmetik?
- Hvad bør en blokchiffer indeholde ifølge Shannon?
- Blev DES-protokollen introduceret for at forbedre sikkerheden i AES-kryptosystemer?
- Afhænger sikkerheden af blokchiffere af at kombinere forvirrings- og diffusionsoperationer mange gange?
- Kan kryptanalyse bruges til at kommunikere sikkert over en usikker kommunikationskanal?
- Hører internet, GSM og trådløse netværk til de usikre kommunikationskanaler?
- Er en udtømmende nøglesøgning effektiv mod substitutionschiffere?
- Indeholder AES MixColumn-underlaget en ikke-lineær transformation, der kan repræsenteres af en 4×4 matrixmultiplikation?
Se flere spørgsmål og svar i EITC/IS/CCF Classical Cryptography Fundamentals