N-hash

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 14. januar 2015; verifikation kræver 21 redigeringer .
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.

Oprindelse

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).

Brug

N-Hash-funktionen blev brugt i kort tid i begyndelsen af ​​1990'erne, indtil den blev knækket af fødselsdagsmetoden.

Funktioner i N-Hash

Ensrettet

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. Eksempler

Kollisionsmodstand

For 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.

Mål for N-Hash

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).

Algoritme

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] .

Grundlæggende betegnelser

Beskrivelse af algoritmen

Diagrammet til højre viser de skematiske betegnelser for de operationer, der er til stede i de følgende diagrammer.

Én N-hash-cyklus

Nedenfor er en cyklus af N-Hash-algoritmen.

  • Indgangen til funktionen g er hash-koden for (i-1)-te trin og den i-te beskedblok . I dette tilfælde er det valgt vilkårligt: ​​for eksempel kan det være nul. Og det føres også til outputtet for modulo 2 additionsoperationen, det vil sige, resultatet (hashkoden for det næste trin) vil se sådan ud: ( noget ukendt endnu ).
  • Det kan ses fra diagrammet, at det ikke kun føres til XOR , men også til outputtet af operationen af ​​additionsmodulo 2. Det vil sige, at nu, i overensstemmelse med første afsnit, ser resultatet således ud: ( noget der forbliver ukendt indtil videre ).

Det resterende ukendte noget findes efter at have passeret gennem en kaskade af otte transformerende funktioner. At få det kan beskrives sådan:

  • EXG-funktionen bytter de høje og lave cifre og tilføjer resultatet , hvorefter resultatet tilføjes modulo 2 s .
  • Som det kan ses af diagrammet, føres resultatet sekventielt til input af j transformerende funktioner, hvis andet argument er summen , hvor j=1, ..., 8.
  • Resultatet er en hash-kode for det i-te trin :

.

Transformationsfunktion

Spø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

  • ;
  • ;
  • ;
  • .
Find funktionen f(x, P)

Da funktionen f arbejder med argumenter, hvis længde er 32 bit, så har vi fra søgeskemaet for funktionen f(x, P):

  • Værdien er opdelt i dele af 8 bit.
  • Lad os skrive disse dele som , i=1,...,4 og introducere ny notation:
    • ;
    • ;
    • ;
    • ;

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:

    • ;
    • ;
  • Så kan outputmeddelelsen repræsenteres som .
  • Og det er kendt
    • =( venstre 2-bit rotation )(a+b) mod 256
    • =( 2-bit venstre rotation )(a+b+1) mod 256

Sikkerhed for hash-funktioner

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:

  • Med ændringer i meddelelsens tekst (indsættelser, permutationer osv.), bør meddelelsens hash-kode også ændre sig;

Ellers kan en person, der indtaster sit brugernavn og password for at komme ind på Wikipedia , komme til en anden deltagers side.

  • Umuligheden af ​​at finde en besked med en kendt hash-kode fra ;

Hvis denne betingelse ikke er opfyldt, gør det det muligt at finde Wikipedia-brugeres adgangskoder.

  • Opgaven med at finde beskeder og sådan, at deres hash-koder er ens , må være meget tidskrævende.

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.

Krypteringsanalyse af N-Hash

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:

  • Da længden af ​​hashkoden er lig med længden af ​​blokken af ​​krypteringsalgoritmen, er algoritmen ustabil mod fødselsdagsangrebet .

Angreb på hash-funktioner

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-Hash Algoritmebaserede angreb Differentiel metode

Den 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 angreb

At ø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 :

  • brug af kontrolsummer på forskellige stadier af hashing;
  • verifikation af oplysningernes nøjagtighed;
  • indlejr information af typen salt i meddelelsen .

Resultater

  • I øjeblikket er N-Hash ikke meget brugt, da det ikke er sikkert og blev hacket for mere end 10 år siden.
  • Nu er der et særligt navn for hash-funktioner som N-Hash - key , det vil sige envejs, men ikke kollisionsbestandig:
    • Hvis parterne har tillid til hinanden (det vil sige, at hver af parterne er sikre på, at den anden ikke vil erstatte kontrakten, som i tilfældet med Alice og Bob), så kan N-Hash bruges.

Sammenligning af N-Hash med andre hash-funktioner

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

Noter

  1. 1 2 3 4 5 Hash-funktioner (utilgængelig link- historik ) . Cryptomash. Hentet: 27. november 2008.   (utilgængeligt link)
  2. Bruce Schneier. Kapitel 18. Envejs-hash-funktioner // Anvendt kryptografi . - 2. udg. Arkiveret 28. februar 2014 på Wayback Machine
  3. 1 2 Hovedudgaven af ​​kryptografi  // CIO: tidsskrift. - 17. maj 2005. - Nr. 5 . Arkiveret fra originalen den 29. maj 2008.
  4. Krypteringsanalyse af hash-funktioner (utilgængelig link- historie ) . Cryptomash. Hentet: 27. november 2008.   (utilgængeligt link)

Se også

Links

Litteratur

  • A. Shcherbakov, A. Domashev. Anvendt kryptografi. - M . : Russisk udgave, 2003. - 404 s. — ISBN 5-7502-0215-1 .
  • Bruce Schneier. Anvendt kryptografi. - 2. udg. - M . : Triumph, 2002. - 816 s.