Kysymys:
Mitä eroja MD5: n, SHA: n ja RSA: n välillä on?
Kars
2011-02-25 20:46:15 UTC
view on stackexchange narkive permalink

MD5-työkalut tuottavat heksadesimaaliarvot. Samalla tavalla tuottavatko SHA ja RSA yhdessä heksadesimaalilähdön (tai minkä tahansa muun)?

Mitkä ovat MD5-, SHA- ja RSA-algoritmien erot?

Hex on vain tavanomainen tapa näyttää näiden algoritmien tulokset. Ne voidaan yhtä hyvin näyttää binäärisinä tai desimaaleina.
Kaksi vastused:
#1
+58
bethlakshmi
2011-02-25 21:13:04 UTC
view on stackexchange narkive permalink

Se ei ole tuotoksen tyyppi. Hex on vain tapa, jolla data muotoillaan - koska ne kaikki työskentelevät binaaritiedon parissa, heksalla on paljon järkeä.

Tärkeä osa on mitä he tekevät ja miten he tekevät:

  • MD5 ja SHA ovat hash-toimintoja (SHA on itse asiassa hash-toimintojen perhe) - he ottavat osan datasta, tiivistävät sen ja luovat sopivan ainutlaatuisen tuotoksen, jota on hyvin vaikea jäljitellä eri datalla. Ne eivät salaa mitään - et voi ottaa MD5- tai SHA-lähtöä ja "purkaa" sitä palataksesi aloituspisteeseesi. Ero näiden kahden välillä on siinä, mitä algoritmia he käyttävät hajautuksen luomiseen. Huomaa myös, että MD5 on nyt rikki, koska löydettiin tapa luoda helposti törmäyksiä, eikä sitä tule käyttää eikä luottaa enää.

  • RSA on assymetrinen salausalgoritmi. Sinulla on kaksi avainta (yksityinen ja julkinen) ja voit suorittaa toiminnon yhdellä avaimella (salata tai purkaa) ja peruuttaa toisella avaimella. Käytettävä avain riippuu siitä, yritätkö tehdä digitaalisen allekirjoituksen vai salauksen.

Eikö RSA ole myös allekirjoitusalgoritmi?
#2
+35
Thomas Pornin
2013-02-03 21:55:03 UTC
view on stackexchange narkive permalink

MD5 on salaushajautusfunktio . "SHA" on hash-funktioiden perheen nimi; ensin lyhytaikainen "SHA", joka nimettiin uudelleen "SHA-0", sitten määriteltiin "SHA-1" (bestseller). Myöhemmin perheeseen lisättiin uusia jäseniä, jotka nimettiin yhdessä nimellä "SHA-2" ja jotka koostuvat SHA-224: stä, SHA-256: sta, SHA-384: stä ja SHA-512: sta. Äskettäin suunniteltiin uusi SHA-sukupolvi, nimeltään "SHA-3", mutta myös "Keccak" (tämä oli avoin kilpailu, Keccak oli yhden ehdokkaan koodinimi, joka lopulta voitti).

A kryptografinen hajautusfunktio on täysin määritelty, deterministinen toiminto, joka ei käytä salaista avainta. Se vie syötteenä mielivaltaisen pituisen viestin (bittivirta, kaikki bittiä) ja tuottaa kiinteän koon. Lähdön koko riippuu toiminnosta; se on 128 bittiä MD5: lle, 160 bittiä SHA-1: lle, 256 bittiä SHA-256: lle ... Kaikki voivat laskea tietyn hajautusfunktion tietylle tulolle, ja he kaikki saavat samat tulokset. Hash-toimintoja kutsutaan myös pilkkomisiksi , koska ne tuottavat jotenkin eräänlaisen "tarkistussumman" tai "yhteenvedon" syötteestä. Vankan hajautusfunktion on oltava sellainen, ettei kukaan osaa "kääntää" niitä tai edes löytää kahta erillistä tuloa, jotka tuottavat saman tuotoksen. Jälkimmäistä kutsutaan törmäykseksi ja se on matemaattinen välttämättömyys, että törmäykset ovat olemassa (koska funktio voi hyväksyä paljon enemmän erillisiä syötteitä kuin se voi tuottaa erillisiä lähtöjä), mutta vaadimme, että ei ole mahdollista löytää edes yksi törmäys.

MD5 osoittautui hyvin rikki törmäyksissä (voimme tuottaa törmäyksen muutamassa sekunnissa PC: llä) ja SHA-0 on myös rikki tältä osin; SHA-1 on hieman hilseilevä; muu SHA-perhe näyttää toistaiseksi olevan vahva. Kuinka hash-toiminto saavuttaa törmäysvastuksen, on vähän ihme, koska koko toiminto on täysin tiedossa, ilman salaisia ​​arvoja; se vain sekoittaa tietoja liikaa, jotta parhaat salaustekijät voisivat selvittää prosessin.

RSA on kaksi algoritmia: asymmetrisen salauksen algoritmi ja digitaalisen allekirjoituksen algoritmi . Vaikka molemmat algoritmit perustuvat samantyyppiseen matematiikkaan, ne ovat melko erillisiä (monet ihmiset kuvailevat allekirjoituksia "salaukseksi yksityisellä avaimella", mikä on virhe-analogia ja parhaimmillaan sekaannusta, joten älä tee niin). Molemmat algoritmit käyttävät avaimia eli tietoja, jotka on pidettävä salassa. Sattuu, että RSA-allekirjoituksissa allekirjoitettu ei ole suoraan annettu viesti (bittisarja), vaan viestin hash : viesti käsitellään ensin salaustekniikkafunktiolla, kuten SHA- 256, ja sitten käytetään hash-arvoa. Tämä tehdään niin, koska RSA: n matematiikka pystyy käsittelemään vain kohtuullisen kokoisia, parhaimmillaan muutama sata bittiä. Salaushajautusfunktiot ovat sellaisia, että hashin allekirjoittaminen on yhtä hyvä kuin alkuperäisten tietojen allekirjoittaminen.

Tällä tavalla RSA- ja kryptografisia hash-toimintoja käytetään usein yhdessä; mutta ne eivät ole lainkaan sama asia.

Heksadesimaali on tapa esittää bittisarja merkkien sarjaan: heksadesimaali käyttää numeroita ja kirjaimia A: sta F: ään; kukin merkki koodaa tarkalleen neljä bittiä ('0' koodaa '0000', '7' koodaa '0111', 'D' koodaa '1101' ...). Mikä tahansa bittisarja (ja erityisesti hash-funktion lähtö) voidaan muuntaa heksadesimaaliksi ja takaisin. Heksadesimaali on suosittu, koska ihmisen silmät ja aivot pystyvät lukemaan hahmoja eivätkä bittejä. Komentorivityökalut, jotka laskevat salauksen hash-toiminnot tiedostoissa, tuottavat perinteisesti heksadesimaalimerkkejä tästä syystä. Mikään ei kuitenkaan sido hash-funktioita luontaisesti heksadesimaaleihin: kaikki, mikä sopii tietokoneeseen tavalla tai toisella, on bittisarja, joten se soveltuu heksadesimaaliin; ja hajautusfunktiolähtö on vain sekvenssi bittejä, jotka voidaan koodata monin tavoin, heksadesimaali on vain "perinteinen" tapa (vaikka Base64 esiintyy myös usein, erityisesti tietokantoja käsiteltäessä).



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...