15 49.0138 8.38624 1 0 4000 1 https://www.frank-gehry.com 300 0
theme-sticky-logo-alt
theme-logo-alt

Alt om hasjalgoritmer og hvordan de fungerer

I dag skal vi forklare hvordan hashing algoritmer fungerer og hvad deres funktion er i en kryptovaluta.

Hvad er Hashing?

En hash-algoritme komprimerer data til en bestemt størrelse. Hashes gør det muligt for computere nemt at sammenligne eller identificere filer eller databaser. I stedet for at gennemgå hele dataene i sin oprindelige form, sammenligner de bare hashværdierne. Hashing kan anvendes til lagring af adgangskoder, computergrafik, SSL-certifikater og mange andre funktioner.

De definerende træk ved hashing er irreversibilitet og unikhed. Når en pris på data er hash, kan du ikke vende projektet. Du får heller ikke de samme hashværdier, når du hashing to forskellige stykker data. Hvis der findes to nøjagtige hashes for to forskellige stykker data, kaldes denne forekomst “hash-kollision”, og en sådan algoritme er ubrugelig.

Billedresultat for hashværdi bitcoinKilde: bemanding

Hashing-funktion

Den matematiske funktion, der konverterer inputdataene, som har en vilkårlig længde, til en komprimeret numerisk værdi, dvs. output af en fast længde, kaldes en hashing-funktion. Den numeriske output kaldes hash-værdi eller hash.

Billedresultat for hash-værdi kryptoKilde: ResearchGate

Output- eller hashlængden dikteres af den anvendte hashingalgoritme. Det fælles længdeområde for hashingalgoritmer eller -funktioner er mellem 160 og 512 bit.

Hash værdi

Som vi nævnte ovenfor, genereres hashværdien fra et basisindgangsnummer, der blev konverteret ved hjælp af hashingalgoritmen.

Fil: Hash-tabel 4 1 1 0 0 1 0 LL.svgKilde: Wikipedia

I krypto krypteres den offentlige nøgle ved hjælp af hash-værdien. Det er næsten umuligt at bestemme de originale inputnumre uden at have de data, der bruges af hash-værdien.

Hvad er Hashing-algoritmer? Hvordan fungerer Hashing-algoritmer?

En hash-funktion er kernen i hashing-algoritmen. For at generere hashværdien af ​​en forudindstillet længde skal inputdataene først opdeles i blokke med fast størrelse, da hash-funktionen tager data i en fast størrelse. Disse er kendt som “datablokke”.

Datablokke har forskellige størrelser afhængigt af den anvendte algoritme. I de fleste tilfælde vil meddelelsen ikke være i multipla af blokstørrelsesgrænsen. Generelt anvendes polstringsteknikken, hvor hele meddelelsen er adskilt i datablokke med en fast størrelse. Hash-funktionen anvendes til så mange som muligt datablokke, der blev resulteret.

Blokke behandles en ad gangen, hvor output fra den første datablok gives som input sammen med den anden datablok. Derefter gives output fra det andet som input med den tredje blok, og dette fortsætter, indtil den sidste blok er behandlet. Således er det endelige resultat en kombination af alle blokke. Hvis en bit ændres i meddelelsen, ændrer dette hash-værdien fuldstændigt. Dette er kendt som en “lavineeffekt.”

Fil: Cryptographic Hash Function.svgKilde: wikipedia

Selvom hashingalgoritmer blev oprettet til at fungere som en envejsfunktion, der ikke kan inverteres, var der mange tilfælde af hashes, der var kompromitteret.

Kryptografiske hashes anvendes til at skabe digitale signaturer, der bruges i adgangskodelagring, filbekræftelsessystemer, meddelelsesgodkendelse og forskellige andre former for godkendelse.

Et problem, som vi vil diskutere i vores vejledning til hashingalgoritmer, er kollisioner. Da hashes karakteriserer en streng med fast længde, betyder det, at der for alle mulige input er andre input, der kan føre til generering af den samme hash.

Hvis nogen formår at skabe kollisioner efter behov, kan han bruge de falske filer eller data som bevis for, at han har den korrekte hash. Hash-computing bør ikke være alt for effektiv, da det letter den kunstige computing af kollisioner.

En god hash-funktion skal kunne:

  • Beregn ved hurtige hastigheder hashværdien af ​​enhver form for data;
  • Være umulig at spore eller beregne nogen besked fra det (brute force angreb er den eneste mulighed);
  • Vær modstandsdygtig over for “pre-image-angreb” (hvor hackere forsøger at replikere den værdi, der genererede hash);
  • Undgå hash kollisioner hver besked skal have sin egen unikke hash;
  • Resultat i en lavineeffekt, når der foretages en ændring hvor som helst i meddelelsen.

Almindelige hasjalgoritmer

MD5

MD5 var en af ​​de første hashingalgoritmer, der blev brugt i vid udstrækning, indtil den blev kompromitteret. På grund af dets mange sårbarheder er MD5 anset for uegnet til yderligere brug. I dag er det kun brugt til kontrol af data mod utilsigtet korruption.

SHA-familie

Secure Hash Algorithm er udviklet af NSA og er en familie af kryptografiske hashfunktioner. Deres første algoritme, SHA-0 (lanceret i 1993), har været forældet i årtier nu.

SHA-1 (1995) genererede en hash-værdi på 160-bit (20 byte) og bragte kun en mindre forbedring til MD5, hvilket gjorde output til et 40-cifret hexadecimalt tal. På grund af teoretiske sammenstød kom algoritmen også i fare i 2005, men dens masseudskiftning skete i 2010.

SHA-2 er den algoritmeversion, der stadig er i brug og betragtes som sikker. SHA-2-familien består af seks hash-funktioner: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.

I 2006 konkurrence afholdt af National Institute of Standards and Technology (NIST), SHA-3 blev udviklet. SHA-3 blev en standard i 2015, og selvom den er navngivet som resten af ​​NSA-algoritmerne, hører den faktisk til en familie af hashingalgoritmer kendt som KECCAK (udtales ketch-ak).

Forskellen er, at de har en svampekonstruktion, der bruger tilfældige permutationer til at absorbere og output data, mens de giver randomiserede fremtidige input, der er implementeret i algoritmen.

Hashing og hvordan det bruges i Blockchain

For at hash data bruger Bitcoin SHA256, mens Ethereum i øjeblikket anvender en variant af SHA-3 (KECCAK256). Ethereums bevis for arbejdsalgoritme, Dagger-Hashimoto, blev beregnet til at være hukommelseshårdt til hardwareberegning.

Bitcoins SHA256 kan kun beregnes ved hjælp af applikationsspecifikke integrerede kredsløb (eller ASIC’er). Bitcoin hasher data med SHA256 ved at bruge to versioner af algoritmen i sin protokol. Ved at bruge en dobbelt SHA256 kan Bitcoin mindske skaderne ved et eventuelt længdeudvidelsesangreb.

I denne type angreb forsøger hackeren at opdage længden af ​​et hash-input og bruge det til at narre hash-funktionen til at starte en bestemt del af sin interne tilstand ved at tildele en hemmelig streng til hash-værdien.

Konklusion

Vi håber, at du nu ved, hvordan hashingalgoritmer fungerer, og hvordan denne type kryptering er relevant for crypto og blockchain.

Fremhævet billede: Steemit

Previous Post
קזינו DuckDice: משחק קוביות ביטקוין חדש עם ברז ביטקוין!
Next Post
أفضل 10 طرق لشراء Bitcoin ببطاقة مسبقة الدفع