Kommentarer
- Hash den samme input igen og sammenlign hash.
- SHA256 er en kryptografisk hash, ikke kryptering … Og ja, pointen er specifikt at være envejs. Jeg foreslår, at du lærer det grundlæggende i disse termer, f.eks. selv fra Wikipedia. Så kan du komme med mere specifikke spørgsmål …
- Mulig duplikat af Hvorfor er hashfunktioner en måde? Hvis jeg kender algoritmen, hvorfor kan ' t beregne input fra den?
Svar
For det første er der en forskel mellem hashing og kryptering . SHA256 er en hashing-funktion, ikke en krypteringsfunktion.
For det andet, da SHA256 ikke er en krypteringsfunktion, kan den ikke dekrypteres. Hvad du mener, vender sandsynligvis det. I så fald kan SHA256 ikke vendes, fordi det “sa envejsfunktion . Hvis du vender det tilbage, ville det medføre en preimage-angreb , der besejrer sit designmål.
For det tredje fungerer SHA256-verifikation ved at beregne det igen og sammenligne resultatet med det aktuelle resultat. Hvis begge resultater stemmer overens, er verifikationen vellykket. Den teoretiske baggrund er, at det er svært at finde et andet input, der giver det samme hash-resultat. Overtrædelse af dette skaber et andet preimage-angreb , der besejrer sit designmål.
Endelig digitale signaturer er ikke blot hash- og nøgle kombinationer. Men en hash-funktion kan forbedre sikkerheden.
Svar
SHA256 er ikke en krypteringsfunktion, men en hash-funktion . Den grundlæggende forskel er, at mens kryptering er en tovejsfunktion (givet nøglen), er hash kun en envejsfunktion: givet nogle data kan du beregne hash, givet hash er det svært (og matematisk umuligt) at have dataene tilbage .
Jeg sagde, at det er matematisk umuligt at finde data fra hash, fordi en hash-funktion typisk har en lille kodomæne (for eksempel 256bit til SHA256), men et stort domæne (du kan hash hvilken som helst streng) der vil være kollisioner: forskellige strenge med samme hash.
Af denne grund, hvis din adgangskode er gemt i en hashform, findes der uendelig adgangskode (men de kan være meget lange), der låser din konto op.
Den gode nyhed er, at kollisioner er sjældne, når du bruger kryptografiske hashfunktioner , så din konto er stadig sikker.
Det er let at svare på knytnævedelen af dit spørgsmål: Databehandling er let: Hvis Alice sender en fil til hash-kontrolsummen, kan Bob nemt beregne hash af t han arkiverer han har modtaget og sammenligner den med hashen modtaget fra Alice. Dette er normalt nok til at finde ud af, om der har været nogen fejl under transmissionen (så filen er korrupt), men er ikke nok, hvis transmissionen er blevet ændret af en angriber, der også ændrede hash. Så Alice og Bob har brug for en sikker kanal til at transmittere hashen (for eksempel en https-side med et gyldigt certifikat), eller de skal underskrive hashen på en eller anden måde.
Så vi går til svaret på dit andet spørgsmål: Alice kan underskrive hash ved hjælp af sin private nøgle, inden den sendes til Bob, på denne måde kan en angriber ikke tukle med den uden at ugyldiggøre signaturen.
Nu kan du spørge, hvorfor Alice kun underskriver med sin RSA (eller lignende) nøgle hash og ikke hele meddelelsen, det er fordi computing RSA er langsommere end computing af en hash (så hun er nødt til kun at gøre det langsomme på en lille streng: hash). Dette var især tilfældet, når PGP blev oprettet, og computere var langsommere.