Ano ang Cryptographic Hash Function?

Talaan ng mga Nilalaman:

Ano ang Cryptographic Hash Function?
Ano ang Cryptographic Hash Function?
Anonim

Ang cryptographic hash function (CHF) ay isang algorithm na maaaring patakbuhin sa data gaya ng indibidwal na file o password upang makagawa ng value na tinatawag na checksum.

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

Ang ilang karaniwang ginagamit na cryptographic hash function ay kinabibilangan ng MD5 at SHA-1, bagama't marami pang iba ang umiiral. Ang mga ito ay madalas na tinutukoy bilang "hash function," ngunit hindi iyon teknikal na tama. Ang hash function ay isang generic na termino na sumasaklaw sa mga CHF kasama ng iba pang uri ng mga algorithm tulad ng cyclic redundancy checks.

Cryptographic Hash Function: Isang Use Case

Sabihin mong dina-download mo ang pinakabagong bersyon ng Firefox browser. Para sa ilang kadahilanan, kailangan mong i-download ito mula sa isang site maliban sa Mozilla. Dahil hindi ito hino-host sa isang site na natutunan mong pagkatiwalaan, gusto mong tiyakin na ang file ng pag-install na kaka-download mo lang ay eksaktong kapareho ng iniaalok ng Mozilla.

Gamit ang isang checksum calculator, nag-compute ka ng checksum gamit ang isang partikular na cryptographic hash function, gaya ng SHA-2, at pagkatapos ay ihambing iyon sa na-publish sa site ng Mozilla. Kung pantay ang mga ito, makatitiyak kang ang pag-download na mayroon ka ay ang nilayon ng Mozilla na makuha mo.

Image
Image

Maaari bang Ibalik ang Cryptographic Hash Function?

Ang Cryptographic hash function ay idinisenyo upang pigilan ang kakayahang ibalik ang mga checksum na ginawa nila pabalik sa orihinal na mga text. Gayunpaman, kahit na halos imposibleng baligtarin ang mga ito, hindi 100 porsiyento ang garantisadong mapangalagaan ng mga ito ang data.

Maaaring gumamit ang mga hacker ng rainbow table para malaman ang plain text ng isang checksum. Ang Rainbow table ay mga diksyunaryo na naglilista ng libu-libo, milyon-milyon, o kahit bilyun-bilyong checksum kasama ng kanilang katumbas na plain text value.

Bagama't hindi nito teknikal na binabaligtad ang cryptographic hash algorithm, maaari rin naman, dahil napakasimple nitong gawin. Sa totoo lang, dahil walang rainbow table ang makakapaglista ng bawat posibleng checksum na umiiral, kadalasan ay nakakatulong lang ang mga ito para sa mga simpleng parirala tulad ng mahihinang password.

Narito ang isang pinasimpleng bersyon ng rainbow table upang ipakita kung paano gagana ang isa kapag ginagamit ang SHA-1 cryptographic hash function:

Halimbawa ng Rainbow Table
Plaintext SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Dapat malaman ng isang hacker kung aling cryptographic hash algorithm ang ginamit para bumuo ng mga checksum para malaman ang mga value.

Para sa karagdagang proteksyon, ang ilang website na nag-iimbak ng mga password ng user ay nagsasagawa ng mga karagdagang function sa cryptographic hash algorithm pagkatapos mabuo ang value ngunit bago ito maimbak. Ang prosesong ito ay gumagawa ng bagong halaga na ang web server lang ang nakakaintindi at hindi tumutugma sa orihinal na checksum.

Halimbawa, pagkatapos na maipasok ang isang password at mabuo ang checksum, maaari itong paghiwalayin sa ilang bahagi at muling ayusin bago ito maimbak sa database ng password, o maaaring ipagpalit ang ilang partikular na character sa iba. Kapag sinusubukang i-authenticate sa susunod na mag-sign on ang user, binabaligtad ng server ang karagdagang function na ito, at bubuo muli ang orihinal na checksum upang i-verify na wasto ang password ng isang user.

Ang pagsasagawa ng mga hakbang na ito ay naglilimita sa pagiging kapaki-pakinabang ng isang hack kung saan ninakaw ang lahat ng checksum. Ang ideya ay magsagawa ng function na hindi alam, kaya kung alam ng hacker ang cryptographic hash algorithm ngunit hindi ang custom, hindi nakakatulong ang pag-alam sa mga checksum ng password.

Mga Password at Cryptographic Hash Function

Ang isang database ay nagse-save ng mga password ng user sa paraang katulad ng isang rainbow table. Kapag ang iyong password ay naipasok, ang checksum ay nabuo at inihambing sa isa na nakatala sa iyong username. Pagkatapos ay bibigyan ka ng access kung magkapareho ang dalawa.

Dahil ang isang CHF ay gumagawa ng hindi maibabalik na checksum, ligtas ba para sa iyo na gawing kasing simple ng 12345, sa halip na 12@34 $5, dahil lang sa mismong mga checksum ay hindi maintindihan? Hindi, at narito kung bakit.

Ang dalawang password na ito ay parehong imposibleng matukoy sa pamamagitan lamang ng pagtingin sa mga checksum:

MD5 para sa 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 para sa 12@34$5: a4d3cc004f487b18b2ccd4853053818b

Sa unang tingin, maaari mong isipin na mainam na gamitin ang alinman sa mga password na ito. Totoo ito kung sinubukan ng isang attacker na alamin ang iyong password sa pamamagitan ng paghula sa MD5 checksum, na walang sinuman, ngunit hindi totoo kung isang brute force o pag-atake sa diksyunaryo, na isang karaniwang taktika.

Ang isang malupit na puwersang pag-atake ay nangyayari kapag maraming random na saksak ang kinuha sa paghula ng password. Sa kasong ito, magiging madaling hulaan ang 12345, ngunit medyo mahirap na random na malaman ang isa pa. Ang pag-atake sa diksyunaryo ay magkatulad dahil masusubok ng umaatake ang bawat salita, numero, o parirala mula sa isang listahan ng mga karaniwang (at hindi-pangkaraniwan) na mga password, at ang 12345 ay isa sa mga karaniwang iyon. mga password.

Kahit na ang cryptographic hash function ay gumagawa ng mahirap-sa-imposibleng-hulaan na mga checksum, dapat ka pa ring gumamit ng kumplikadong password para sa lahat ng iyong online at lokal na user account.

Higit pang Impormasyon sa Cryptographic Hash Function

Maaaring mukhang nauugnay sa pag-encrypt ang mga cryptographic hash function, ngunit gumagana ang dalawa sa magkaibang paraan.

Ang Encryption ay isang two-way na proseso kung saan ang isang bagay ay naka-encrypt upang maging hindi nababasa at pagkatapos ay i-decrypt sa ibang pagkakataon upang magamit muli nang normal. Maaari mong i-encrypt ang mga file na inimbak mo upang hindi magamit ng sinumang mag-a-access sa kanila, o maaari mong gamitin ang pag-encrypt ng paglilipat ng file upang i-encrypt ang mga file na gumagalaw sa isang network, tulad ng mga na-upload o dina-download mo online.

Ang Cryptographic hash function ay naiiba, dahil ang mga checksum ay hindi nilalayong i-reverse gamit ang isang espesyal na dehashing na password. Ang tanging layunin ng CHF ay ihambing ang dalawang piraso ng data, gaya ng kapag nagda-download ng mga file, nag-iimbak ng mga password, at kumukuha ng data mula sa isang database.

Posible para sa isang cryptographic hash function na makagawa ng parehong checksum para sa iba't ibang piraso ng data. Kapag nangyari ito, tinatawag itong banggaan, na isang malaking problema kung isasaalang-alang ang buong punto ng function ay ang paggawa ng mga natatanging checksum para sa bawat input ng data dito.

Ang mga banggaan ay maaaring mangyari dahil ang bawat CHF 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 e10adc3949ba55abbef56ef sa kabuuan ng tatlo.

Ang unang checksum ay mula sa 12345. Ang pangalawa ay nabuo mula sa mahigit 700 titik at numero, at ang pangatlo ay mula sa 123456. Magkaiba ang haba ng lahat ng tatlong input, ngunit palaging 32 character lang ang haba ng mga resulta, dahil ginamit ang MD5 checksum.

Walang limitasyon sa bilang ng mga checksum na maaaring gawin dahil ang bawat maliit na pagbabago sa input ay dapat na makagawa ng ganap na kakaibang checksum. Dahil may limitasyon sa bilang ng mga checksum na maaaring gawin ng isang CHF, palaging may posibilidad na makatagpo ka ng banggaan.

Ito ang dahilan kung bakit nagawa ang iba pang mga cryptographic hash function. Habang ang MD5 ay bumubuo ng 32-character na value, ang SHA-1 ay bumubuo ng 40 character at ang SHA-2 (512) ay bumubuo ng 128. Kung mas marami ang bilang ng mga character na mayroon ang checksum, mas maliit ang posibilidad na magkaroon ng banggaan.

Inirerekumendang: