Skip to main content

Ano ba ang isang Cryptographic Hash Function?

Bitcoin - Cryptographic hash function (Hunyo 2026)

Bitcoin - Cryptographic hash function (Hunyo 2026)
Anonim

Ang isang cryptographic hash function ay isang algorithm na maaaring tumakbo sa 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 ipinapalagay na magkatulad lamang kung ang mga checksums na nabuo mula sa bawat file, gamit ang parehong cryptographic function na hash, ay magkapareho.

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

Ang mga pag-andar ng cryptographic na hash ay madalas na tinutukoy bilang "mga pag-andar ng hash," ngunit hindi tama iyon. Ang function ng hash ay isang pangkaraniwang term na sumasaklaw sa mga cryptographic function ng hash kasama ang iba pang mga uri ng mga algorithm tulad ng mga tseke ng tseke kalabisan.

Cryptographic Hash Functions: Isang Paggamit ng Kaso

Sabihin mong i-download mo ang pinakabagong bersyon ng browser ng Firefox. Para sa ilang kadahilanan, kailangan mong i-download ito mula sa isang site bukod sa Mozilla's. Dahil hindi ito naka-host sa isang site na natutunan mong magtiwala, nais mong tiyakin na ang pag-install na file na iyong na-download ay eksaktong kapareho ng nag-aalok ng Mozilla.

Gamit ang isang checksum calculator, kakalkulahin mo ang isang checksum gamit ang isang partikular na function na cryptographic na hash, tulad ng SHA-2, at pagkatapos ay ihambing iyon sa na-publish sa site ng Mozilla. Kung ang mga ito ay katumbas, maaari mong makatuwirang sigurado na ang pag-download mo ay ang isang Mozilla na nilayon mong magkaroon.

Maaari bang maiwasto ang mga Cryptographic Hash Function?

Ang mga function ng cryptographic hash ay dinisenyo upang maiwasan 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 sila 100 porsyento na garantisadong upang protektahan ang data.

Ang mga hacker ay maaaring gumamit ng talahanayan ng bahaghari upang malaman ang payak na teksto ng isang checksum.

Ang mga talahanayan ng Rainbow ay mga diksyunaryo na naglilista ng libu-libong, milyun-milyon, o kahit na bilyun-bilyon ng mga tseke sa tabi ng kanilang katumbas na halaga ng plain text.

Bagaman hindi ito teknikal na nagbabalik sa cryptographic na hash algorithm, maaari rin itong maging, sa kabila na napakadaling gawin ito. Sa totoo lang, dahil walang listahan ng mga rainbow table ang lahat ng posibleng checksum na umiiral, kadalasan ay nakakatulong lamang ang mga ito 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:

PlaintextSHA-1 Checksum
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
mahal ko ang aso koa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Dapat malaman ng isang Hacker kung aling mga cryptographic hash algorithm ang ginamit upang bumuo ng mga checksums upang malaman ang mga halaga.

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 ang halaga ay binuo ngunit bago ito naka-imbak. Ang prosesong ito ay gumagawa ng isang bagong halaga na naiintindihan lamang ng web server at hindi tumutugma sa orihinal na checksum.

Halimbawa, pagkatapos ng isang password ay ipinasok at ang checksum na nabuo, maaaring ito ay nahahati sa maraming bahagi at rearranged bago ito ay naka-imbak sa database ng password, o ang ilang mga character ay maaaring swapped sa iba. Kapag sinusubukan na patotohanan ang susunod na oras ng pag-sign in ng user, binabaligtad ng web server ang karagdagang function na ito, at ang orihinal na checksum ay nabuo muli upang i-verify na ang password ng isang user ay may bisa.

Ang pagkuha ng mga hakbang na ito ay naglilimita sa pagiging kapaki-pakinabang ng isang tadtarin kung saan ang lahat ng mga checksum ay ninakaw. Ang ideya ay upang maisagawa ang isang function na hindi alam, kaya kung alam ng hacker ang cryptographic hash algorithm ngunit hindi ang pasadya, pagkatapos alam na ang checksums ng password ay hindi nakatulong.

Mga Password at Cryptographic Hash Function

Ang isang database ay nagse-save ng mga password ng user sa paraang katulad ng isang talahanayan ng bahaghari. 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.

Given na ang isang cryptographic hash function ay gumagawa ng isang nonreversible checksum, ito ay ligtas para sa iyo upang gawin ang iyong password kasing simple ng 12345, sa halip ng 12@34$5, dahil lamang na ang mga tseke ay hindi nila maiintindihan? Hindi, at narito kung bakit.

Ang dalawang password na ito ay parehong imposibleng maintindihan sa pamamagitan lamang ng pagtingin sa mga tseke:

MD5 para sa 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 para sa 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Sa unang sulyap, maaari mong isipin na maayos na gamitin ang alinman sa mga password na ito. Totoo ito kung sinubukan ng isang magsasalakay pag-usisa ang iyong password sa pamamagitan ng paghula sa MD5 checksum, na walang sinuman, ngunit hindi totoo kung ang isang malupit na puwersa o pag-atake ng diksyunaryo ay ginaganap, na isang pangkaraniwang taktika.

Ang pag-atake ng malupit na puwersa ay nangyayari kapag maraming mga random stabs ang kinuha sa paghula ng isang password. Sa kasong ito, madaling hulaan 12345, ngunit medyo mahirap na isipin ang isa pa. Ang isang pag-atake sa diksyunaryo ay katulad na maaaring masubukan ng magsasalakay ang bawat salita, numero, o parirala mula sa isang listahan ng mga karaniwang (at di-karaniwan) na mga password, at12345 ay isa sa mga karaniwang mga password.

Kahit na ang mga function ng cryptographic hash ay gumagawa ng mahirap-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.

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 iba't ibang paraan.

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

Ang mga function ng cryptographic na hash ay naiiba sa trabaho na ang mga tseke ay hindi sinasadya na mababaligtad sa isang espesyal na password ng pag-dehas. Ang tanging layunin na pag-andar ng cryptographic hash ay ang paghahambing ng dalawang piraso ng data, tulad ng kapag nagda-download ng mga file, nag-iimbak ng mga password, at kumukuha ng data mula sa isang database.

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, na isang malaking problema na isinasaalang-alang ang buong punto ng isang cryptographic function na hash ay upang gumawa ng mga natatanging checksums para sa bawat input ng data sa ito.

Ang mga banggaan ay maaaring mangyari dahil ang bawat cryptographic function ng hash ay gumagawa ng isang halaga ng isang nakapirming haba anuman ang input data. 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 12345. Ang ikalawa ay nakabuo 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 MD5 checksum.

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. Dahil may limitasyon sa bilang ng mga checksum na maaaring magawa ng isang cryptographic function na hash, palaging may posibilidad na makatagpo ka ng 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 na mga character at SHA-2 (512) ay bumubuo ng 128. Kung mas malaki ang bilang ng mga character na may checksum, mas malamang na maganap ang banggaan.