N-hash | |
---|---|
Luotu | 1990 |
julkaistu | 1990 |
Hash-koko | 128 bittinen |
Kierrosten lukumäärä | 12 tai 15 |
Tyyppi | hash-toiminto |
N-Hash on kryptografinen hajautusfunktio, joka perustuu FEAL - sykliseen funktioon . Tällä hetkellä katsotaan turvattomaksi [1] .
Sen kehitti vuonna 1990 Nippon Telegraph and Telephone (joka kehitti myös FEALin).
Alun perin N-Hash-toiminnon tarkoituksena oli ratkaista tietojen korvaamisongelma kahden puhelimen käyttäjän (Nippon Telegraph and Telephone - televiestintäyritys) välillä ja nopeuttaa tiedonhakua. Esimerkiksi jos henkilö lähettää tekstiviestin , sen aitous tarkistetaan ennen toimitusta hash-toiminnolla. Ja jos Nippon Telegraph and Telephone -tuotteiden käyttäjän on löydettävä nopeasti jonkun yhteyshenkilö puhelimesta, N-Hashin käyttö voi yksinkertaistaa nimen löytämistä luettelosta. Tämä johtuu siitä, että kontaktin ensimmäinen kirjain on ilmoitettu nimen hash-koodiksi (pieni määrittävä osa yhteyshenkilöä).
N - Hash- algoritmi perustuu FEAL - lohkon salausalgoritmiin . Suurin televiestintäyhtiö Nippon Telegraph and Telephone loi DES:iin perustuvan FEALin . Mutta vaikka tämä algoritmi päihittää DES:n nopeudessa, se on erittäin epäluotettava ja helposti haavoittuva: kryptanalyytikko tarvitsi hyvin vähän tietoa rikkoakseen algoritmin. Juuri FEAL-algoritmin hakkerointi johti N-Hash-hajautusfunktion syntymiseen vuonna 1990. N-Hash on myös nopeampi kuin DES: verrattuna DES:n 9 Kbps:iin, N-Hash toimii nopeudella 24 Kbps 15 kierroksen järjestelmässä ja 29 Kbps 12 kierroksen järjestelmässä. Samaan aikaan Nippon Telegraph and Telephone saavutti lisäyksen luotettavuudessa FEALiin verrattuna [1] .
Nippon Telegraph ja Telephone käyttivät jonkin aikaa N-Hash-algoritmia tämän toiminnon tavoitteiden mukaisesti, mutta jonkin ajan kuluttua kehitettiin syntymäpäivämenetelmä , joka mursi tämän algoritmin helposti. Hakkeroinnin yhteydessä ei hylätty pelkästään N-Hash, vaan lähes kaikki lohkosalauksiin perustuvat toiminnot, koska niillä kaikilla on sama ongelma: ne ovat helposti alttiina syntymäpäivämenetelmälle. Sen sijaan he käyttävät nyt luotettavampia toimintoja, jotka perustuvat MD-tekniikoihin: MD5 , SHA-1 ja muut, jotka on lueteltu tällä hetkellä luotettaviksi katsottujen toimintojen luettelossa (standardin ISO / IEC 10118 mukaan).
N-Hash-funktiota käytettiin lyhyen aikaa 1990-luvun alussa, kunnes se murtui syntymäpäivämenetelmällä.
Määritelmä: Antaa olla jonkin pituinen viesti.
Funktiota kutsutaan yksisuuntaiseksi , jos tasa -arvosta
helposti:
erittäin työvoimavaltainen:
Helpompi määritelmä voidaan kirjoittaa näin:
Yksisuuntaisuus on " sormenjälki ":
Yksisuuntaisuus ratkaisee erittäin tärkeän ongelman. Tarkastellaanpa sitä esimerkin avulla.
Alice ja Bob nimeävät perinteisesti tiedonsiirron aiheet. EsimerkkejäJotta Alice ei käyttäisi "syntymäpäivä"-menetelmää Bobin huijaamiseen, on erittäin kätevää ottaa käyttöön vielä vahvempi ehto kuin yksisuuntainen ehto. H on sellainen, että on vaikea löytää viestejä ja siten, että niiden hash-koodit täsmäävät. Eli on mahdotonta löytää kahta ihmistä, joilla on samat sormenjäljet.
Tätä ehtoa kutsutaan törmäysvastukseksi, eikä se päde N-Hash-tiivistefunktiolle.
Törmäyksen epävakauden vuoksi Alice voi huijata Bobia tällä tavalla ("syntymäpäivä"-menetelmä):
Tällaisen ongelman välttämiseksi riittää kosmeettisten muutosten tekeminen allekirjoitettuun sopimukseen. Ja vaikka tämä toiminto ei muuta hash-funktiota H millään tavalla, eikä siksi vaikuta sen törmäyskestävyyteen millään tavalla, mutta tällä toiminnolla henkilö saa uuden version sopimuksesta, jonka hash-koodi ei vastaa hyökkääjän sopimusversion hash-koodia. Eli jos Bob viidennellä rivillä laittaa pilkun johonkin tai laittaa kaksi pistettä yhden sijasta, Alice ei pysty todistamaan allekirjoittaneensa toisen sopimuksen (koska hänen hash-koodinsa ei enää vastaa hash-koodia Alicen sopimusta).
Voit harkita tosielämän esimerkkiä: kun notaari leimaa allekirjoitetun sopimuksen, hän tekee siihen kosmeettisia muutoksia.
Ymmärtääksesi, kuinka N-Hash-toiminto toimii, sinun on vaihdettava tieteellisempään puheeseen. Alla on tämän toiminnon tavoitteet, ei esimerkein, vaan sen mukaan, miten ne on toteutettu ja sopivalla terminologialla .
Tämä ominaisuus on välttämätön, jotta voidaan sulkea pois mahdollisuus, että hyökkääjä syöttää vääriä tietoja alkuperäiseen viestiin. Eheyden varmistamiseksi on voitava havaita mahdolliset muutokset viestin tekstissä (korvaaminen, lisääminen, poistaminen). Eheys varmistetaan lisäämällä alkuperäiseen viestiin redundanttia tietoa, joka on testiyhdistelmä. Tätä yhdistelmää kutsutaan tarkistussummaksi ja se voidaan laskea käyttämällä erityistä algoritmia. Koska tämä algoritmi riippuu salaisesta avaimesta , on epätodennäköistä , että viestiin sisällytetään vääriä tietoja .
, jossa suola on redundanttia tietoa, M on viesti - tarkistussumma;
Kaavasta seuraa, että jos suola muuttuu, muuttuu myös S (tarkistussumma), mikä tarkoittaa, että molemmat ja muuttuivat .
Eli voimme päätellä, että väärää tietoa on lisätty.
N-Hash-funktio toimii M viestien kanssa, joiden pituus on mielivaltainen. Tässä tapauksessa tulos on hajakoodi, jonka pituus on kiinteä 128 bittiä. Tämä saadaan, koska viesti on jaettu 128 bitin kokoisiin lohkoihin ja algoritmi toimii peräkkäin jokaisen lohkon kanssa.
Tämä ominaisuus koskee yksisuuntaisia toimintoja, mikä on N-Hash. Viestin M luotettavuus tarkistetaan etsimällä lopullinen hash-koodi (viestin yhteenveto) kahdesti (lähettävä ja vastaanottava osapuoli). Tuloksia verrataan ja jos ne täsmäävät, tieto on luotettavaa. Eheys ei takaa pätevyyttä .
sivustoilla, joissa sinun on syötettävä kirjautumistunnus ja salasana , salasana käännetään syöttämisen jälkeen hash-koodiksi. Eli aluksi käyttäjä syöttää salasanan M, mutta suojatun alueen sisäänpääsyyn käytetään hash-koodia . Tunnettua hash-koodia h ja funktiota H käyttämällä M on erittäin vaikea laskea, mikä varmistaa salasanan luottamuksellisuuden.
Todennus on toimenpide, jolla käyttäjä tai tiedot todennetaan tiettyjen kriteerien avulla.
Herää kysymys, kuinka hash-toiminto varmistaa todennuksen todenperäisyyden. Tämä on helppo osoittaa esimerkillä.
Kun käyttäjä syöttää käyttäjätunnuksen ja salasanan mille tahansa sivustolle , hänen salasanansa muunnetaan hash-koodiksi ja lähetetään verkon kautta todennusta varten. Ilmeisesti jonkun toisen tilille kirjautumiseen riittää, että selvität salasanan hash-koodin ja käytät sitten kaavaa (h-hash-koodi, M - salasana) salasanan löytämiseen. Mutta N-Hash, joka on yksisuuntainen toiminto, varmistaa salasanan turvallisuuden, koska tämä yksisuuntaisten toimintojen yhtälö on erittäin työlästä ratkaista (ei käytä henkilökohtaista tietokonetta).
N-Hash-algoritmi perustuu operaatioiden sykliseen toistoon (12 tai 15 kertaa - kierrosten määrä). Tulossa on hash-koodi ja se voi olla mielivaltainen, tulos on viestin M hash-koodi h , joka on hajautettava. Lähtevän hash-koodin koko on kiinteä ja yhtä suuri kuin 128 bittiä, kun taas koko M on mielivaltainen [2] .
Oikeanpuoleisessa kaaviossa on esitetty seuraavissa kaavioissa olevien toimintojen kaavamerkit.
Alla on yksi N-Hash-algoritmin sykli.
Jäljelle jäävä tuntematon asia löytyy, kun se on kulkenut kahdeksan muunnosfunktion kaskadin läpi. Sen saaminen voidaan kuvata näin:
.
MuunnosfunktioHerää kysymys, miten muunnosfunktio toimii .
Harkitse piirin yläosaa hiusristikkoon.
Alkuperäinen viesti on jaettu bittilohkoihin.
Käsittelemme välilähtöjä tuloina piirin alaosaan. ja syötetään välilähtöihin , kun taas toiminnot ja syötetään kahteen muuhun lähtöön . Nyt on mahdollista määrittää uudelleen välilähtöjen tulokset ja niiden kautta, kuten yläosan, löytää tulokset alaosan lähdöstä eli koko piiristä kokonaisuutena.
Kun kaikki tarvittavat laskelmat on tehty, saadaan, että kun sitä käytetään syötteeseen , lähtöviesti voidaan esittää viestien ketjuna
Koska funktio f toimii argumenteilla, joiden pituus on 32 bittiä, niin funktion f(x, P) hakukaaviosta saamme:
Funktion argumentit (ensimmäinen nuoli vasemmalta) ovat ja .
Funktion argumentit (toinen nuoli vasemmalta) ovat ja .
Toisin sanoen lähtöviestin kaksi komponenttia ovat jo tiedossa ja samat
Lisäksi käytämme lähdössä jo vastaanotettuja viestin lähteviä osia merkinnän helpottamiseksi:
Hajautustoiminto on turvallinen , kun kryptanalyytikko tarvitsee paljon tietoa tiivisteen murtamiseen (jolloin se ei todennäköisesti murtaudu) ja jos tiivistettä ei ole murrettu tähän mennessä [3] .
Jotta hash-toiminto olisi turvallinen, seuraavien ehtojen on täytyttävä:
Muuten henkilö, joka syöttää käyttäjätunnuksensa ja salasanansa päästäkseen Wikipediaan , voi päästä toisen osallistujan sivulle.
Jos tämä ehto ei täyty, se mahdollistaa Wikipedian käyttäjien salasanan löytämisen.
Muuten olisi mahdollista löytää kaksi salasanaa samoilla hash-koodeilla.
N-Hash ei ole turvallinen toiminto, koska viimeinen ehto ei täyty sille.
N-Hashia pidetään tällä hetkellä suojaamattomana ominaisuutena. Tämä kuva luettelee kaikki suojatut yksisuuntaiset toiminnot tällä hetkellä ISO/IEC 10118 [1] mukaisesti :
Niistä algoritmeista, jotka on rakennettu kuten N-Hash, jotka perustuvat lohkosalauksiin, vain MDC-2 ja MDC-4 katsotaan turvallisiksi .
N-Hashille on ominaista seuraava ongelma:
Tämä kuva näyttää hyökkäysten luokituksen kaikkia hajautusalgoritmeja vastaan yleisesti.
Algoritmista riippuvat hyökkäykset ovat hyökkäyksiä, jotka perustuvat tietyn algoritmin ominaisuuksiin.
Esimerkiksi N - Hash on hyökätty onnistuneesti differentiaalimenetelmällä , kiinteän pisteen hyökkäyksellä ja kokouksessa keskellä .
Algoritmista riippumattomia hyökkäyksiä voidaan soveltaa mihin tahansa hash-funktioon, mutta tämä ei sulje pois sitä tosiasiaa, että joillekin algoritmeille ne ovat erittäin aikaa vieviä suuren tietomäärän tai koodin nopeuden vuoksi.
Tehokkaat hyökkäykset N-Hashia vastaanDen Boer ehdotti menetelmää törmäyksen muodostamiseksi yhden kierroksen N-Hash-järjestelmälle.
Biham ja Shamir käyttivät menestyksekkäästi differentiaalista kryptausanalyysiä vaarantaakseen kuuden kierroksen N-Hash-järjestelmän. Heidän ehdottamansa törmäyksen muodostamismenetelmä toimii mille tahansa arvolle N, joka on kolmen kerrannainen, ja samaan aikaan, jos N ≤ 12, se osoittautuu tehokkaammaksi kuin syntymäpäiväparadoksiin perustuva lähestymistapa .
12 kierroksen järjestelmässä törmäysten rakentamisen monimutkaisuus ehdotetulla menetelmällä on arviolta 256 operaatiota (syntymäpäiväparadoksiin perustuvan menetelmän monimutkaisuus on 264 operaatiota).
Algoritmista riippumattomat hyökkäyksetHash-koodin ja salaisen avaimen pituuden lisääminen vaikeuttaa kryptanalyytikon työtä. Voit yrittää tehdä laskelmista liian aikaa vieviä henkilökohtaisille tietokoneille ja vaatia suuria resursseja. Sitten kryptanalyytikon on joko etsittävä supertietokonetta tai kirjoitettava virus, joka hash-funktion murtamisprosessin rinnakkaisuuden perusteella käyttää useita henkilökohtaisia tietokoneita kerralla ratkaistakseen ongelman [3] .
Seuraavat menetelmät hash-funktion [4] suojaamiseksi ovat myös tehokkaita :
Algoritmi | Hash-arvon pituus | Salausnopeus (KB/s) |
---|---|---|
Samanaikainen Davies-Meyer-rata ( IDEAn kanssa ) | 128 | 22 |
Davies-Meyer (DES:n kanssa) | 64 | 9 |
GOST- hajautustoiminto | 256 | yksitoista |
HAVAL (3 sarjaa) | muuttuja | 168 |
HAVAL (4 sarjaa) | muuttuja | 118 |
HAVAL (5 sarjaa) | muuttuja | 98 |
MD2 | 128 | 23 |
MD4 | 128 | 236 |
MD5 | 128 | 174 |
N-Hash (12 vaihetta) | 128 | 29 |
N-Hash (15 vaihetta) | 128 | 24 |
RIPE-MD | 128 | 182 |
SHA-1 | 160 | 75 |
Snefru (4 passia) | 128 | 48 |
Snefru (8 sarjaa) | 128 | 23 |
Hash-funktiot | |
---|---|
yleinen tarkoitus | |
Kryptografinen | |
Avainten luontitoiminnot | |
Tarkista numero ( vertailu ) | |
Hashes |
|