Funksion kriptografik Hash

Përkufizimi i funksionit të kriptografisë

Një funksion hash kriptografik është një lloj algoritmi që mund të kryhet në një pjesë të të dhënave, si një skedar individual ose një fjalëkalim, për të prodhuar një vlerë të quajtur checksum.

Përdorimi kryesor i një funksioni hash kriptografik është për të verifikuar vërtetësinë e një pjese të të dhënave. Dy skedarë mund të sigurohen që të jenë identike vetëm nëse checksums të gjeneruara nga secili skedar, duke përdorur funksionin e njëjtë hash kriptografik, janë identike.

Disa funksione hash kriptografike të përdorura zakonisht përfshijnë MD5 dhe SHA-1 , megjithëse ekzistojnë edhe shumë të tjerë.

Shënim: Funksionet e hash kriptografike shpesh referohen thjesht si funksione hash për të shkurtër, por kjo nuk është teknikisht e saktë. Një funksion hash është një term më i përgjithshëm që zakonisht përdoret për të përfshirë funksione hash kriptografike së bashku me llojet e tjera të algoritmeve si kontrolle ciklike të tepricave.

Funksionet kriptografike Hash: Një Rast Përdorimi

Le të themi që shkarkoni versionin mëfundit të shfletuesit Firefox . Për çfarëdo arsye, ju duhej ta shkarkoni nga një vend tjetër përveç Mozilla-s. Duke mos u pritur në një faqe që keni mësuar të besoni, dëshironi të siguroheni se skedari i instalimit që sapo keni shkarkuar është e njëjta gjë që ofron Mozilla.

Duke përdorur një llogaritës checksum , llogaritni një checksum duke përdorur një funksion të veçantë hash kriptografik (thoni SHA-2) dhe pastaj krahasoni atë me atë të publikuar në faqen e Mozilla-s.

Nëse janë të barabartë, atëherë mund të jeni mjaft të sigurt se shkarkimi që keni është ai që Mozilla ka menduar që të keni.

Shikoni Çfarë është një çek? për më shumë në këto llogaritëse të veçanta, plus më shumë shembuj mbi përdorimin e sondazheve për t'u siguruar që skedarët që shkarkoni vërtet janë ato që prisni që ata të jenë.

A mund të ndryshohen funksionet kriptografike?

Funksionet kriptografike hash janë të dizajnuara për të parandaluar aftësinë për të ndryshuar checksums që ata krijojnë përsëri në tekstet origjinale.

Megjithatë, edhe pse ato janë pothuajse të pamundura për të ndryshuar, kjo nuk do të thotë se ata janë 100% të garantuar për të mbrojtur të dhënat.

Diçka e quajtur një tavolinë ylber mund të përdoret për të shpejt të kuptoj tekstin e qartë të një kontrolli. Tabelat e Rainbow janë në thelb fjalorë që listojnë mijëra, miliona apo edhe miliarda prej tyre krahas vlerës së tyre korresponduese.

Ndërsa kjo nuk është mbrapa teknikisht algoritmi cryptographic hash, ajo mund të jetë edhe pasi ajo është kaq e thjeshtë për të bërë. Në të vërtetë, pasi që asnjë tabelë e ylberit nuk mund të tregojë çdo ekzemplari të mundshëm të ekzistencës, ata zakonisht janë vetëm "të dobishëm" për frazat e thjeshta ... si fjalëkalime të dobëta.

Ja një version të thjeshtuar të një tabele ylberësh për të treguar se si do të funksiononte kur përdoret funksioni kriptografik SHA-1:

Teksti i thjeshtë SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
e dua qenin tim a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Për këto vlera të zbulohet duke përdorur checksum, do të kërkonte që hakeri të kuptojë se cili algoritëm hash kriptografik është përdorur për t'i gjeneruar ato.

Për një mbrojtje të shtuar, disa uebfaqe që ruajnë fjalëkalimet e përdoruesit kryejnë funksione shtesë në algoritmin kriptografik hash pasi vlera të gjenerohet, por para se të ruhet.

Kjo prodhon një vlerë të re që vetëm web server kupton dhe që nuk përputhet saktësisht me checksum origjinale.

Për shembull, pas futjes së një fjalëkalimi dhe krijimit të checksumit, mund të ndahet në disa pjesë dhe të riorganizohet para se të ruhet në bazën e të dhënave të fjalëkalimit ose disa shkronja mund të zëvendësohen me të tjerët. Kur përdoruesi përpiqet të vërtetojë herën tjetër kur të hyjnë, ky funksion shtesë do të kthehet prapa nga serveri i internetit dhe kontrolli origjinal i gjeneruar përsëri, për të verifikuar që fjalëkalimi i përdoruesit është i vlefshëm.

Të bësh këtë ndihmon në kufizimin e dobisë së një kollame ku të gjitha sekuencat janë vjedhur.

Përsëri, ideja këtu është të kryejë një funksion që është i panjohur, kështu që nëse hackeri e di algoritmin e hash algoritm kriptografik por jo këtë zakon, atëherë njohja e checksums sërfi është e padobishme.

Fjalëkalimet dhe Funksionet kriptografike të Hashit

Ngjashëm me një tavolinë ylber është se si një bazë të dhënash kursen fjalëkalimet e përdoruesit. Kur futet fjalëkalimi, checksum gjenerohet dhe krahasohet me atë në regjistrim me emrin e përdoruesit. Më pas ju u jepet akses nëse të dyjat janë identike.

Duke pasur parasysh se një funksion hash kriptografik prodhon një checksum jo-kthyeshëm, a do të thotë kjo që ju mund të bëni fjalëkalimin tuaj aq të thjeshtë sa 12345 , në vend të 12 @ 34 $ 5 , thjesht sepse vetë checksums nuk mund të kuptohen? Sigurisht që nuk ka , dhe këtu është arsyeja pse ...

Siç mund ta shikoni, këto dy fjalëkalime janë të pamundur të deshifroj vetëm duke shikuar vetëm në checksum:

MD5 për 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 për 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Pra, në shikim të parë mund të mendoni se është absolutisht mirë që të përdorni secilën nga këto fjalëkalime. Kjo është padyshim e vërtetë nëse një sulmues ka provuar të kuptojë fjalëkalimin duke guxuar kontrollin MD5 (të cilin askush nuk e bën), por nuk është i vërtetë nëse kryhet një sulm brutal ose fjalor (që është një taktikë e zakonshme).

Një sulm me forcë brutale është kur goditjet e shumta të rastësishme merren në guessing një fjalëkalim. Në këtë rast, do të ishte shumë e lehtë të mendosh "12345", por shumë e vështirë për të kuptuar rastësisht një tjetër. Një sulm fjalor është i ngjashëm në atë që sulmuesi mund të provojë çdo fjalë, numër ose frazë nga një listë e fjalëkalimeve të zakonshme (dhe më pak të zakonshme), "12345" patjetër që do të ishte një që do të gjykohej.

Pra, edhe pse funksionet hash kriptografike prodhojnë kontrolle të vështira të pamundura për të menduar, ju duhet të përdorni një fjalëkalim të ndërlikuar për të gjitha llogaritë e përdoruesit tuaj në internet dhe lokal.

Këshillë: Shihni Shembuj të Fjalëkalimeve të Dobëta dhe të Fortë nëse nuk jeni i sigurt nëse juaji konsiderohet si një fjalëkalim i fortë.

Më shumë informacion mbi Funksionet Cryptographic Hash

Mund të duket sikur funksionet hash kriptografike kanë lidhje me encryption, por të dy punojnë në mënyra shumë të ndryshme.

Encryption është një proces dy mënyra ku diçka është e koduar për t'u bërë e palexueshme, por më pas do të dekriptohet më vonë për t'u përdorur normalisht përsëri. Ju mund të kodoni skedarët që keni ruajtur në mënyrë që të gjithë ata që i qasen atyre nuk do të jenë në gjendje t'i përdorin ato, ose mund ta shfrytëzoni encryption transferimin e skedarëve për të koduar skedarët që lëvizin në një rrjet, si ato që ngarkoni ose shkarkoni në internet.

Siç u përshkrua më lart, funksionet e hash kriptografike funksionojnë ndryshe në atë që checksums nuk kanë për qëllim të përmbysen me një fjalëkalim të veçantë de-hashing si si lexohen skedarët e koduar me një fjalëkalim të veçantë decryption. Funksioni i vetëm për qëllime hash kriptografike shërben për të krahasuar dy pjesë të të dhënave, si gjatë shkarkimit të skedarëve, ruajtjes së fjalëkalimeve, nxjerrjes së të dhënave nga një bazë të dhënash etj.

Është e mundur për një funksion hash kriptografik për të prodhuar të njëjtën checksum për pjesë të ndryshme të të dhënave. Kur kjo ndodh, kjo quhet një përplasje. Është e qartë, ky është një problem i madh duke pasur parasysh të gjithë pikat e një funksioni hash kriptografik është që të bëjnë kontrolle krejtësisht unike për çdo të dhënë të futur në të.

Arsyet e përplasjeve mund të ndodhin sepse çdo funksion hash kriptografik prodhon një vlerë të një gjatësi fikse pavarësisht nga të dhënat e hyrjes. Për shembull, funksioni kriptografik MD5 krijon 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 dhe e10adc3949ba59abbe56e057f20f883e për tre blloqe krejtësisht të ndryshme të të dhënave.

Kontrolluesi i parë është nga 12345 , i dyti është gjeneruar nga mbi 700 shkronja dhe numra, dhe e treta është nga 123456 . Të tre inputet janë të gjatësive të ndryshme, por rezultatet janë gjithmonë vetëm 32 shkronja që prej përdorimit të MD5.

Siç mund ta shikoni, nuk ka pothuajse asnjë kufizim të numrit të checksums që mund të krijohen pasi që çdo ndryshim i vogël në input është menduar të prodhojë një checksum krejtësisht të ndryshme. Megjithatë, për shkak se ekziston një kufi për numrin e sekuencave të kontrollit, një funksion hash kriptografik mund të prodhojë, gjithmonë ekziston mundësia që të hasni një përplasje.

Kjo është arsyeja pse funksionet e tjera hash kriptografike janë krijuar. Ndërsa MD5 gjeneron një vlerë 32-karakter, SHA-1 gjeneron 40 karaktere dhe SHA-2 (512) gjeneron 128. Sa më i madh numri i karaktereve që ka checksum, aq më pak ka gjasa që një përplasje të ndodhë, sepse ai siguron më shumë hapësirë ​​për vlera unike.