Cryptographic Hash Function

Kahulugan ng Crypographic Hash Function

Ang cryptographic hash function ay isang uri ng algorithm na maaaring tumakbo sa isang piraso ng data, tulad ng isang indibidwal na file o isang password, upang makabuo ng isang halaga na tinatawag na isang checksum.

Ang pangunahing paggamit ng isang cryptographic function na hash ay upang i-verify ang pagiging tunay ng isang piraso ng data. Ang dalawang mga file ay maaaring panatag na magkapareho lamang kung ang mga checksums na nabuo mula sa bawat file, gamit ang parehong cryptographic function na hash, ay magkapareho.

Ang ilang mga karaniwang ginagamit na cryptographic hash function ay kasama ang MD5 at SHA-1 , bagaman maraming iba pa ang umiiral.

Tandaan: Ang mga pag- andar ng cryptographic na hash ay madalas na tinutukoy lamang bilang mga pag- andar ng hash para sa maikli, ngunit hindi tama ito. Ang hash na pag-andar ay isang mas pangkaraniwang term na kadalasang ginagamit upang mapalibutan ang mga function ng cryptographic na hash kasama ang iba pang mga uri ng mga algorithm tulad ng mga tseke ng tseke sa pag-redo.

Cryptographic Hash Functions: Isang Paggamit ng Kaso

Sabihin nating i-download mo ang pinakabagong bersyon ng browser ng Firefox . Para sa anumang kadahilanan, kailangan mong i-download ito mula sa isang site bukod sa Mozilla's. Hindi naka-host sa isang site na natutunan mong magtiwala, nais mong tiyakin na ang pag-install ng file na iyong na-download lamang ang eksaktong parehong bagay na nag-aalok ng Mozilla.

Gamit ang isang checksum calculator , kakalkulahin mo ang isang checksum gamit ang isang partikular na function na cryptographic na hash (sabihin SHA-2) at pagkatapos ay ihambing iyon sa na-publish sa site ng Mozilla.

Kung ang mga ito ay pantay, maaari kang maging makatwirang sigurado na ang pag-download mo ay ang isang Mozilla na nilayon mong magkaroon.

Tingnan ang Ano ba ang Checksum? para sa higit pa sa mga espesyal na calculators, kasama ang higit pang mga halimbawa sa paggamit ng mga checksum upang matiyak na ang mga file na iyong ina-download ang talagang inaasahan mo sa kanila.

Maaari bang maiwasto ang mga Cryptographic Hash Function?

Ang mga function ng cryptographic hash ay dinisenyo upang pigilan ang kakayahang i-reverse ang mga checksum na nilikha nila pabalik sa orihinal na mga teksto.

Gayunpaman, kahit na halos imposible silang i-reverse, hindi ito nangangahulugan na 100% sila na garantisadong upang protektahan ang data.

Ang isang bagay na tinatawag na isang talahanayan ng bahaghari ay maaaring magamit upang mabilis na malaman ang plaintext ng isang checksum. Ang mga talahanayan ng Rainbow ay karaniwang mga diksyunaryo na naglilista ng libu-libong, milyun-milyon, o kahit bilyun-bilyong ito kasama ang kanilang nararapat na halaga ng plaintext.

Habang ito ay hindi technically reversing ang cryptographic hash algorithm, maaaring ito rin ay dahil ito ay kaya simpleng gawin. Sa totoo lang, dahil walang listahan ng mga rainbow table ang lahat ng posibleng checksum na umiiral, karaniwan lamang ang mga ito ay "kapaki-pakinabang" para sa mga simpleng parirala ... tulad ng mga mahina na password.

Narito ang isang pinasimple na bersyon ng isang talahanayan ng bahaghari upang ipakita kung paano gagana ang isang tao kapag ginagamit ang SHA-1 cryptographic function na hash:

Plaintext SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
mahal ko ang aso ko a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Para sa mga halagang ito na mai-figured out gamit ang checksum, ay mangangailangan na ang Hacker nauunawaan kung aling cryptographic hash algorithm ang ginamit upang makabuo ng mga ito.

Para sa dagdag na proteksyon, ang ilang mga website na nag-iimbak ng mga password ng user ay nagsasagawa ng mga karagdagang function sa cryptographic na hash algorithm matapos mabuo ang halaga ngunit bago ito nakaimbak.

Nagbubuo ito ng isang bagong halaga na naiintindihan lamang ng web server at hindi eksaktong tumutugma sa orihinal na checksum.

Halimbawa, pagkatapos na maipasok ang isang password at ang checksum ay nabuo, maaari itong ihiwalay sa maraming bahagi at muling ayusin bago ito naka-imbak sa database ng password, o ang ilang mga character ay maaaring mailipat sa iba. Kapag sinubukan ng user na patotohanan ang susunod na pag-sign in, ang karagdagang function na ito ay pagkatapos ay mababaligtad ng web server at ang orihinal na checksum na binuo muli, upang mapatunayan na ang password ng isang user ay may bisa.

Ang paggawa nito ay nakakatulong na limitahan ang pagiging kapaki-pakinabang ng isang tadtarin kung saan ang lahat ng mga checksum ay ninakaw.

Muli, ang ideya dito ay upang magsagawa ng isang function na ay hindi kilala upang kung ang mga Hacker alam ang cryptographic hash algorithm ngunit hindi ang custom na ito, pagkatapos ay alam ang checksums password ay hindi nakatulong.

Mga Password at Cryptographic Hash Function

Katulad ng isang talahanayan ng bahaghari ay kung paano ang isang database ay nagse-save ng mga password ng user. Kapag ipinasok ang iyong password, ang checksum ay nakabuo at kumpara sa isa na naka-record sa iyong username. Pagkatapos ay binibigyan ka ng access kung ang dalawa ay magkapareho.

Dahil ang isang cryptographic hash function ay gumagawa ng isang hindi baligtad checksum, ibig sabihin na maaari mong gawin ang iyong password kasing simple ng 12345 , sa halip ng 12 @ 34 $ 5 , dahil lamang sa ang checksums kanilang sarili ay hindi maaaring maunawaan? Ito ay tiyak na hindi , at narito kung bakit ...

Tulad ng makikita mo, ang dalawang password na ito ay parehong imposible na maunawaan sa pamamagitan lamang ng pagtingin sa checksum:

MD5 for 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 para sa 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Kaya, sa unang tingin maaari mong isipin na ito ay ganap na mahusay na gamitin ang alinman sa mga password. Tiyak na totoo kung sinubukan ng isang magsasalakay ang pag-uunawa ng iyong password sa pamamagitan ng paghula sa MD5 checksum (na walang sinuman ay), ngunit hindi totoo kung ang isang malupit na puwersa o pag-atake ng diksyunaryo ay ginaganap (na isang pangkaraniwang taktika).

Ang isang malupit na atake sa puwersa ay kapag maraming mga random stabs ay kinuha sa paghula ng isang password. Sa kasong ito, napakadaling hulaan ang "12345," ngunit medyo mahirap na isipin ang isa pa. Ang isang pag-atake sa diksyunaryo ay katulad na ang magsasalakay ay maaaring subukan ang bawat salita, numero, o parirala mula sa isang listahan ng mga karaniwang (at mas mababang karaniwang ginagamit na) mga password, "12345" tiyak na isa na sinubukan.

Kaya, kahit na ang mga function ng cryptographic na hash ay gumagawa ng mahirap na imposible-to-guess checksums, dapat mo pa ring gamitin ang isang komplikadong password para sa lahat ng iyong mga online at lokal na account ng gumagamit.

Tip: Tingnan ang Mga Halimbawa ng Malakas at Malakas na Mga Password kung hindi ka sigurado kung ang iyong ay itinuturing na isang malakas na password.

Higit pang Impormasyon tungkol sa mga Cryptographic Hash Function

Maaaring mukhang tulad ng cryptographic na hash function na may kaugnayan sa encryption ngunit ang dalawang trabaho sa ibang paraan.

Ang pag-encrypt ay isang proseso ng dalawang paraan kung saan naka-encrypt ang isang bagay upang maging hindi mababasa, ngunit pagkatapos ay decrypted mamaya upang magamit nang normal muli. Maaari mong i- encrypt ang mga file na iyong nai-imbak upang ang sinuman na nag-access sa mga ito ay hindi magagamit ang mga ito, o maaari mong magamit ang pag- encrypt ng file transfer upang i-encrypt ang mga file na gumagalaw sa isang network, tulad ng mga na-upload mo o i-download online.

Tulad ng inilarawan sa itaas, ang mga function ng cryptographic na hash ay naiiba sa trabaho na ang mga checksum ay hindi sinasadya na baligtarin ng isang espesyal na de-hashing na password tulad ng kung paano naka-encrypt na mga file ang binabasa gamit ang isang espesyal na password ng decryption. Ang tanging layunin na pag-andar ng cryptographic na hash ay ang paghahambing ng dalawang piraso ng data, tulad ng pag-download ng mga file, pagtatago ng mga password, paghuhukay ng data mula sa isang database, atbp.

Ito ay posible para sa isang cryptographic function na hash upang makabuo ng parehong checksum para sa iba't ibang mga piraso ng data. Kapag nangyari ito, ito ay tinatawag na isang banggaan. Malinaw, ito ay isang malaking problema na isinasaalang-alang ang buong punto ng isang cryptographic function na hash ay upang gawing ganap na natatanging checksums para sa bawat data inputted ito.

Ang mga dahilan ng banggaan ay maaaring mangyari ay dahil ang bawat cryptographic na function ng hash ay gumagawa ng isang halaga ng isang takdang haba kahit anong data ng pag-input. Halimbawa, ang MD5 cryptographic hash function ay bumubuo ng 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 , at e10adc3949ba59abbe56e057f20f883e para sa tatlong lubos na magkakaibang mga bloke ng data.

Ang unang checksum ay mula sa 12345 , ang pangalawang ay nabuo mula sa higit sa 700 mga titik at numero, at ang ikatlo ay mula sa 123456 . Ang lahat ng tatlong mga input ay may iba't ibang haba ngunit ang mga resulta ay palaging lamang 32 character na matagal mula noong ginamit ang MD5.

Tulad ng makikita mo, halos walang limitasyon sa bilang ng mga checksum na maaaring malikha dahil ang bawat maliit na pagbabago sa input ay dapat na gumawa ng isang ganap na iba't ibang checksum. Gayunpaman, dahil mayroong isang limitasyon sa bilang ng mga checksum isang cryptographic function na hash ay maaaring gumawa, palaging may posibilidad na makatagpo ka ng isang banggaan.

Ito ang dahilan kung bakit nilikha ang ibang mga cryptographic function na hash. Habang ang MD5 ay bumubuo ng isang 32-character na halaga, ang SHA-1 ay bumubuo ng 40 character at SHA-2 (512) ay bumubuo ng 128. Ang mas malaki ang bilang ng mga character na ang checksum ay, mas malamang na ang isang banggaan ay magaganap dahil nagbibigay ito ng higit na puwang para sa natatanging mga halaga.