N-hash | |
---|---|
Oprettet | 1990 |
offentliggjort | 1990 |
Hash størrelse | 128 bit |
Antal runder | 12 eller 15 |
Type | hash funktion |
N-Hash er en kryptografisk hash-funktion baseret på den cykliske FEAL- funktion . Anses i øjeblikket for usikker [1] .
Den blev udviklet i 1990 af Nippon Telegraph and Telephone (som også udviklede FEAL).
Oprindeligt havde N-Hash-funktionen til formål at løse problemet med informationssubstitution på vejen mellem to telefonbrugere (Nippon Telegraph og Telephone - et teleselskab) og fremskynde datahentning. For eksempel, hvis en person sender en SMS- besked, vil den før levering blive tjekket for ægthed ved hjælp af en hash-funktion. Og hvis brugeren af Nippon Telegraph and Telephone-produkter hurtigt skal finde en persons kontaktperson på telefonen, så kan brugen af N-Hash forenkle processen med at finde et navn på listen. Dette skyldes, at det første bogstav i kontakten er erklæret som en hash-kode (en lille definerende del af kontakten) af navnet.
N-Hash- algoritmen er baseret på FEAL -blokkrypteringsalgoritmen . Det største teleselskab Nippon Telegraph and Telephone skabte FEAL baseret på DES . Men selvom denne algoritme overgår DES i hastighed, er den meget upålidelig og let sårbar: en kryptoanalytiker havde brug for meget lidt information for at bryde algoritmen. Det var hackingen af FEAL-algoritmen, der førte til fremkomsten af N-Hash-hash-funktionen i 1990. N-Hash er også hurtigere end DES: sammenlignet med DES's 9Kbps kører N-Hash med 24Kbps for et 15-runders skema og 29Kbps for et 12-runders skema. Samtidig opnåede Nippon Telegraph and Telephone en stigning i pålideligheden sammenlignet med FEAL [1] .
I nogen tid blev N-Hash-algoritmen brugt af Nippon Telegraph og Telefon i overensstemmelse med målene for denne funktion, men efter et stykke tid blev fødselsdagsmetoden udviklet , som nemt knækkede denne algoritme. I forbindelse med hacket blev ikke kun N-Hash opgivet, men næsten alle funktioner baseret på blokcifre, da de alle har samme problem: De er let sårbare over for fødselsdagsmetoden. I stedet bruger de nu mere pålidelige funktioner baseret på MD-teknologier: MD5 , SHA-1 og andre opført på listen over funktioner, der i øjeblikket anses for pålidelige (i henhold til ISO / IEC 10118-standarden).
N-Hash-funktionen blev brugt i kort tid i begyndelsen af 1990'erne, indtil den blev knækket af fødselsdagsmetoden.
Definition: Lad være en besked af en vis længde.
En funktion kaldes envejs hvis fra lighed
let:
meget arbejdskrævende:
En lettere definition kan skrives sådan:
Ensrettethed er et " fingeraftryk ":
Ensrettethed løser et meget vigtigt problem. Lad os overveje det med et eksempel.
Alice og Bob udpeger traditionelt emnerne for informationsoverførsel. EksemplerFor at forhindre Alice i at bruge "fødselsdage"-metoden til at narre Bob, er det meget praktisk at indføre en endnu stærkere tilstand end envejstilstanden. H er sådan, at det er svært at finde beskeder og , sådan at deres hash-koder matcher. Det vil sige, at det er umuligt at finde to personer med samme fingeraftryk.
Denne tilstand kaldes kollisionsmodstand, og den gælder ikke for N-Hash-hash-funktionen.
På grund af kollisionsustabiliteten kan Alice narre Bob på denne måde ("fødselsdage"-metoden):
For at undgå et sådant problem er det nok at foretage kosmetiske ændringer i den underskrevne kontrakt. Og selvom denne handling ikke ændrer hash-funktionen H på nogen måde, og derfor ikke påvirker dens modstand mod kollisioner på nogen måde, men ved denne handling vil personen modtage en ny version af kontrakten, hvis hash-kode matcher ikke hashkoden for hackerens kontraktversion. Det vil sige, at hvis Bob i 5. linje sætter et komma et sted, eller sætter to prikker i stedet for én, så vil Alice ikke kunne bevise, at han har underskrevet en anden kontrakt (da hans hashkode ikke længere matcher hashkoden Alices kontrakt).
Du kan overveje et eksempel fra det virkelige liv: Når en notar stempler en underskrevet kontrakt, foretager han kosmetiske ændringer der.
For at forstå, hvordan N-Hash-funktionen fungerer, skal du skifte til mere videnskabelig tale. Nedenfor er målene for denne funktion, ikke ved eksempler, men i henhold til hvordan de er implementeret og med den passende terminologi .
Denne egenskab er nødvendig for at udelukke muligheden for, at en angriber kan injicere nogle falske oplysninger i den originale meddelelse. For at sikre integriteten skal det være muligt at registrere eventuelle ændringer i meddelelsens tekst (erstatning, indsættelse, sletning). Integriteten sikres ved at indføre redundant information i den originale besked, som vil være en testkombination. Denne kombination kaldes en kontrolsum og kan beregnes ved hjælp af en speciel algoritme. Da denne algoritme afhænger af den hemmelige nøgle , er det usandsynligt , at falsk information vil blive introduceret i beskeden .
, hvor salt er redundant information, M er en besked - checksum;
Det følger af formlen, at hvis salt ændres, så ændres S (checksum) også, hvilket betyder, at både og ændret .
Det vil sige, at vi kan konkludere, at der er tilføjet falsk information.
N-hash-funktionen fungerer med M beskeder af vilkårlig længde. I dette tilfælde er outputtet en hash-kode med en fast længde på 128 bit. Dette opnås på grund af det faktum, at meddelelsen er opdelt i blokke , 128 bit i størrelse, og algoritmen arbejder sekventielt med hver af blokkene.
Denne egenskab gælder for envejsfunktioner, hvilket er, hvad N-Hash er. Pålideligheden af beskeden M kontrolleres ved at finde den endelige hash-kode (meddelelsessammenfatning) to gange (afsendende og modtagende parter). Resultaterne sammenlignes, og hvis de matcher, så er oplysningerne pålidelige. Integritet garanterer ikke gyldighed .
på websteder, hvor du skal indtaste et login og en adgangskode , bliver adgangskoden efter indtastning oversat til en hash-kode. Det vil sige, at brugeren i første omgang indtaster adgangskoden M, men en hash-kode bruges til at komme ind i det beskyttede område . Ved at bruge den kendte hash-kode h og funktionen H er det meget svært at beregne M, hvilket sikrer adgangskodens fortrolighed.
Autentificering er proceduren til godkendelse af en bruger eller data ved hjælp af nogle kriterier.
Spørgsmålet opstår om, hvordan hash-funktionen sikrer rigtigheden af autentificering. Dette er let at vise med et eksempel.
Når en bruger indtaster et brugernavn og en adgangskode på ethvert websted , konverteres hans adgangskode til en hash-kode og sendes over netværket til godkendelse. For at logge ind under en andens konto er det naturligvis nok at finde ud af kodeordets hash-kode og derefter bruge formlen (h-hash-kode, M - adgangskode) til at finde adgangskoden. Men N-Hash, som er en envejsfunktion, sikrer adgangskodens sikkerhed, da denne ligning for envejsfunktioner er meget besværlig at løse (ikke ved brug af en personlig computer).
N-Hash-algoritmen er baseret på en cyklisk gentagelse (12 eller 15 gange - antallet af runder) af operationer. Der er en hashkode ved indgangen og den kan være vilkårlig, outputtet er en hashkode h for beskeden M , som skal hash. Størrelsen af den udgående hash-kode er fast og lig med 128 bit, mens størrelsen M er vilkårlig [2] .
Diagrammet til højre viser de skematiske betegnelser for de operationer, der er til stede i de følgende diagrammer.
Nedenfor er en cyklus af N-Hash-algoritmen.
Det resterende ukendte noget findes efter at have passeret gennem en kaskade af otte transformerende funktioner. At få det kan beskrives sådan:
.
TransformationsfunktionSpørgsmålet opstår, hvordan transformationsfunktionen fungerer .
Overvej den øverste del af kredsløbet til trådkorset.
Den originale besked er opdelt i blokke af bits.
Vi vil betragte mellemudgange som input til den nederste del af kredsløbet. og føres til mellemudgange , mens operationer og føres til de to andre udgange . Nu er det muligt at omdesigne resultaterne ved mellemudgange og gennem dem, på samme måde som den øvre del, finde resultaterne ved udgangen af den nederste del, det vil sige hele kredsløbet som helhed.
Efter at have udført alle de nødvendige beregninger, får vi, at når den anvendes på input , kan outputmeddelelsen repræsenteres som en sammenkædning af meddelelser
Da funktionen f arbejder med argumenter, hvis længde er 32 bit, så har vi fra søgeskemaet for funktionen f(x, P):
Funktionsargumenterne (første pil fra venstre) er og .
Funktionsargumenterne (anden pil fra venstre) er og .
Det vil sige, at de to komponenter i outputmeddelelsen allerede er kendte og ens
Yderligere vil vi bruge de allerede modtagne dele af meddelelsen ved udgangen for at gøre notationen nemmere:
En hash-funktion er sikker , når en kryptoanalytiker har brug for en masse information for at knække hashen (hvilket gør det usandsynligt, at den bliver cracket), og hvis hashen ikke er blevet knækket nu [3] .
For at en hash-funktion skal være sikker, skal følgende betingelser være opfyldt:
Ellers kan en person, der indtaster sit brugernavn og password for at komme ind på Wikipedia , komme til en anden deltagers side.
Hvis denne betingelse ikke er opfyldt, gør det det muligt at finde Wikipedia-brugeres adgangskoder.
Ellers ville det være muligt at finde to adgangskoder med de samme hash-koder.
N-Hash er ikke en sikker funktion, fordi den sidste betingelse ikke er opfyldt for det.
N-Hash betragtes i øjeblikket som en usikker funktion. Denne figur viser alle sikre envejsfunktioner i øjeblikket i henhold til ISO/IEC 10118 [1] :
Af de algoritmer, der er bygget som N-Hash baseret på blokcifre, anses kun MDC-2 og MDC-4 for at være sikre .
N-Hash er karakteriseret ved følgende problem:
Denne figur viser en klassificering af angreb på alle hashing-algoritmer generelt.
Algoritmeafhængige angreb er angreb baseret på egenskaberne af en bestemt algoritme.
For eksempel er N-Hash blevet angrebet med succes ved hjælp af differentialmetode , fastpunktsangreb og møde i midten .
Algoritme-uafhængige angreb kan anvendes på enhver hashfunktion, men det udelukker ikke, at de for nogle algoritmer er meget tidskrævende på grund af den store mængde information eller kodens hastighed.
Effektive angreb på N-HashDen Boer foreslog en metode til at konstruere en kollision til et en-runde N-Hash-skema.
Biham og Shamir brugte med succes differentiel kryptoanalyse til at kompromittere 6-runders N-Hash-skemaet. Metoden, de foreslog til at konstruere en kollision , fungerer for enhver værdi N, der er et multiplum af tre, og samtidig viser den sig for N ≤ 12 at være mere effektiv end tilgangen baseret på fødselsdagsparadokset .
For et 12-runders skema estimeres kompleksiteten af at konstruere kollisioner ved den foreslåede metode til 256 operationer (kompleksiteten af metoden baseret på fødselsdagsparadokset er 264 operationer).
Algoritme uafhængige angrebAt øge længden af hashkoden og den hemmelige nøgle vil komplicere kryptanalytikerens arbejde. Du kan prøve at gøre beregningerne for tidskrævende for en personlig computer og kræve store ressourcer. Så skal kryptanalytikeren enten lede efter en supercomputer eller skrive en virus, der baseret på paralleliseringen af processen med at knække hash-funktionen vil bruge flere personlige computere på én gang til at løse problemet [3] .
Følgende metoder til at beskytte hash-funktionen [4] er også effektive :
Algoritme | Hash værdi længde | Krypteringshastighed (KB/sek.) |
---|---|---|
Samtidig Davies-Meyer-kredsløb (med IDEA ) | 128 | 22 |
Davies-Meyer (med DES) | 64 | 9 |
GOST hash funktion | 256 | elleve |
HAVAL (3 sæt) | variabel | 168 |
HAVAL (4 sæt) | variabel | 118 |
HAVAL (5 sæt) | variabel | 98 |
MD2 | 128 | 23 |
MD4 | 128 | 236 |
MD5 | 128 | 174 |
N-hash (12 trin) | 128 | 29 |
N-hash (15 trin) | 128 | 24 |
RIPE-MD | 128 | 182 |
SHA-1 | 160 | 75 |
Snefru (4 pas) | 128 | 48 |
Snefru (8 sæt) | 128 | 23 |
Hash funktioner | |
---|---|
generelle formål | |
Kryptografisk | |
Nøglegenereringsfunktioner | |
Tjek nummer ( sammenligning ) | |
Hashes |
|