(Inode hash, angl. hash) - opätovné vytvorenie poľa vstupných dát dlhého časového úseku a výstupného bitového riadku pevného dňa. Takéto transformácie sa tiež nazývajú hashovacie funkcie a funkcie hrdla a výsledky sa nazývajú hash, hash code alebo message digest.

Hašovanie zahŕňa vyrovnávanie údajov: ak majú dve polia rôzne hašovacie kódy, je zaručené, že polia budú odlišné; yakshto však - masívne, swed pre všetko, však. V tomto prípade neexistuje jednoznačný vzťah medzi výstupnými údajmi a hašovacím kódom cez tie, v ktorých je počet hodnôt hašovacej funkcie menší ako počet možností vo vstupnom poli; Neexistujú žiadne polia, ktoré by mohli produkovať nové hash kódy – takzvaná kolízia. Spoľahlivosť mince hrá dôležitú úlohu pri odhadovaní kapacity hašovacej funkcie.

Neexistujú žiadne hašovacie algoritmy s rôznymi charakteristikami (kapacita, výpočtová zložitosť, kryptografická sila atď.). Výber jednej alebo druhej hašovacej funkcie závisí od konkrétneho riešeného problému. Najjednoduchšie použitie hašovacích funkcií môže byť buď kontrolná suma alebo CRC.

Kontrolné sumy

Nekomplikované, extrémne flexibilné hardvérové ​​algoritmy, ktoré sa ľahko implementujú, sa používajú na ochranu pred zbytočnými problémami, vrátane porúch hardvéru.

Pre rýchlosť výpočtu sú desiatky a stovky krát rýchlejšie a nižšie kryptografické hašovacie funkcie oveľa jednoduchšie v hardvérovej implementácii.

Kompromisom za takú vysokú likviditu je nedostatočná stabilita kryptomien – jednoduchá možnosť prispôsobiť notifikáciu sume, ktorú zaplatíte vopred. Zvážte tiež veľkosť kontrolných súčtov (typický počet: 32 bitov) nižšiu ako kryptografické hash (typické čísla: 128, 160 a 256 bitov), ​​čo znamená možnosť nepresných kolízií. Najjednoduchšou verziou takéhoto algoritmu je rozdelenie správy na 32- alebo 16-bitové slová a ich význam, ktorý by obstál napríklad v TCP/IP.

Spravidla je pred takýmto algoritmom možné implementovať typické hardvérové ​​brúsky, ako je počet brúsnych bitov, aby sa dostali k danému dátumu. Rodina algoritmov t.z. „cyklické nadbytočné kódy“ tieto výhody spĺňajú. Patrí medzi ne napríklad CRC32, ktorý sa používa v ethernetových zariadeniach a v komprimovanom formáte ZIP.

Kryptografické hašovacie funkcie

Pri absencii základných hašovacích funkcií je bežné vidieť kryptograficky silné, ktoré sú v kryptografii zavedené. Aby bola funkcia hash H Aby ste sa mohli spoľahnúť na kryptografickú silu, existujú tri hlavné výhody, ktoré sa spoliehajú na hašovaciu funkciu kryptografie:
  • Neodvolateľnosť: pre danú hodnotu hash m vinný buti obslyuvalno nemožne poznať blok dát X, pre ktoré H(X) = m.

  • Odolnosť voči prvotriednym škvrnám: pre danú požiadavku M Je zrejmé, že nie je možné získať žiadne ďalšie informácie N, pre ktoré H(N) = H(M).

  • Odolnosť voči zrážkam iného druhu: môže byť celkom nemožné vybrať si pár na informovanie (M, M"), aký je nový hash?
Tieto výhody nie sú nezávislé:
  • Reverzná funkcia je nestabilná voči zrážkam prvého a druhého druhu.

  • Funkcia, nestabilná voči prvému druhu; nestabilné voči kolíziám iného druhu; Brána nie je správna.
Je potrebné poznamenať, že nebola dokončená implementácia neodvolateľných hašovacích funkcií, pre ktoré je teoreticky nemožný výpočet akéhokoľvek prototypu danej hašovacej funkcie. Zvýšte hodnotu návratovej hodnoty, čo znamená zložitejšie úlohy.

Útok „dni ľudí“ vám umožňuje nájsť mince pre hašovaciu funkciu s dvojnásobnou hodnotou n bitov v strede približne 2 n/2 na výpočet hašovacej funkcie. Tom n-bitová hašovacia funkcia sa považuje za kryptostabilnú, pretože náročnosť výpočtu na nájdenie kolesa pre ňu je blízka 2 n/2.

Pre kryptografické hašovacie funkcie je tiež dôležité, že najmenšia zmena argumentu hodnoty funkcie sa výrazne zmení (lavínový efekt). Zokrema, čo znamená, že hesh nie je vinný z poskytovania informácií o strane argumentu. Toto je možné zabezpečiť krypto-odolnosť hašovacích algoritmov na hashovanie hesla klienta na obnovenie kľúča

Definícia hašovacích funkcií

Hashovacie funkcie je možné použiť aj v rôznych dátových štruktúrach – hašovacích tabuľkách, Bloomových filtroch a karteziánskych stromoch. Existujú rôzne spôsoby použitia hašovacej funkcie:
  • dobré miešanie údajov
  • rýchly výpočtový algoritmus
Údaje o zvieratách
Tento proces možno opísať ako overenie určitých informácií, aby sa zabezpečilo, že sú totožné s originálom bez toho, aby sa zmenil originál. Na overenie sa overí hodnota hash informácií, ktoré sa overujú. Existujú dva hlavné smery tejto stagnácie:
  1. Kontrola prítomnosti omilostenia- Napríklad riadiaci súčet môže byť vysielaný kanálom súčasne s hlavným textom. Kontrolná suma môže byť na konci dňa prepoistená a môže byť vyrovnaná s prevedenými hodnotami. Ak sa zistí nezrovnalosť, znamená to, že prenos zlyhal a môžete požiadať o opakovanie.

    Podobný analóg hašovania sa dá občas použiť, ak počas cestovania musíte minúť veľa miesta na batožinu. Aby ste to skontrolovali, nemusíte vedieť o kožnej výstelke, ale stačí sa jej dotknúť. Znamená to, že každý dolár sa neminul. Je tu veľa miesta pre vašu batožinu a jej hash kód. Túto metódu možno jednoducho rozšíriť, aby sa zabránilo falšovaniu prenášaných informácií (metóda MAC). Pri tomto type hashovania sa vykonáva krypto-bezpečná funkcia na oznámeniach spojených s tajným kľúčom, ktorý pozná iba odosielateľ a príjemca oznámenia. Kryptanalytik teda nemôže analyzovať kód na základe množstva informácií a hodnôt hašovacích funkcií, takže nie je možné spresniť informácie.


  2. Rýchlo vyhľadám údaje- Napríklad pri zaznamenávaní textových polí do databázy je možné získať jej hašovací kód a údaje umiestniť do sekcie, ktorá tomuto hašovaciemu kódu zodpovedá. Potom pri vyhľadávaní údajov budete musieť okamžite vypočítať hash kód textu a hneď bude jasné, ktorú sekciu je potrebné hľadať, takže nebudete musieť hľadať celú databázu, ale iba jednu sekciu ( to urýchli vyhľadávanie).

    Podobným analógom heshuvannya môže byť umiestnenie slov v slovníku podľa abecedy. Prvé písmeno slova je identifikované pomocou hash kódu a pri hľadaní sa nedívame na celý slovník, ale len na požadované písmeno.

Kheshuvannya

Kheshuvannya(niekedy "heshuvannya", Angličtina hašovanie) - redizajn poľa vstupných dát s deterministickým algoritmom a výstupným bitovým riadkom s pevnou hodnotou. Takéto pretvorenia sa tiež nazývajú hašovacie funkcie alebo iný funkcie hrdla a ich výsledky sa nazývajú hash, hash kód alebo iný Upozornenia(Angličtina) prehľad správ). Keďže dva riadky hash kódov sú odlišné, riadky sa budú zaručene líšiť, ale ostatné riadky sa budú pravdepodobne zbiehať.

Hašovanie je navrhnuté tak, aby podporovalo asociatívne polia, hľadalo duplikáty v sériách súborov údajov, vytváralo jedinečné identifikátory pre súbory údajov, kontrolovalo spôsob identifikácie odľahlých hodnôt alebo nezhôd Milk pri ukladaní alebo prenose, ukladalo heslá pre bezpečnostné systémy (ktoré majú prístup do pamäťovej oblasti Tam, kde sú heslá známe, neumožňuje obnovenie samotného hesla pri vytváraní elektronického podpisu (v praxi to často nie sú samotné informácie, ktoré sú podpísané, ako napríklad obrázok hash).

V tomto prípade neexistuje jednoznačný vzťah medzi výstupnými údajmi a hašovacím kódom cez tie, v ktorých je hodnota hašovacej funkcie menšia ako možnosti vo vstupnom poli; V zásade neexistujú polia s rôznymi miestami, ale stále môžete dať nové hash kódy - takzvaná kolízia. Spoľahlivosť mince hrá dôležitú úlohu pri odhadovaní kapacity hašovacej funkcie.

Neexistujú žiadne hashovacie algoritmy s rôznymi právomocami (kapacita, výpočtová zložitosť, kryptografická sila atď.). Výber jednej alebo druhej hašovacej funkcie závisí od konkrétneho riešeného problému. Najjednoduchšie použitie hašovacích funkcií môže byť buď kontrolná suma alebo CRC.

História

Prvým serióznym dielom spojeným s vtipom vo veľkých súboroch bol článok Wesleyho Petersona (ang. W. Wesley Peterson ) v IBM Journal of Research and Development 1957 rock, de vin znamená otvorené oslovovanie a poukazuje na nárast produktivity s odstupom. O šesť rokov neskôr vyšlo dielo Wernera Buchholza. Werner Buchholz ), ktorý prešiel rozsiahlym výskumom hašovacích funkcií. V priebehu niekoľkých pokrokov bola Kheshuvannya široko víťazná, ale neboli publikované žiadne významné práce.

V roku 1967 bol proces heshuvannya v jeho súčasnom význame vysvetlený v knihe Herberta Hellermana „Principles of Digital Computing Systems“. Robert Morris sa narodil v roku 1968. Robert Morris ), po publikovaní veľkého prehľadu hašovania v Komunikáciách ACM, sa táto práca považuje za kľúčovú publikáciu na zavedenie konceptu hašovania do vedeckého diskurzu a konsolidáciu termínu, ktorý bol predtým uviaznutý v žargóne často kladených otázok tsiv, „hash ".

Až do začiatku 90. rokov 20. storočia sa v ruskej literatúre používalo slovo „kheshuvannya“ ako ekvivalent termínu "usporiadanie", a pre Koliziy Vicoristovyuvuvyuvov Termin "Conflict" (єrshov Vikoristovavv "Rosstanovka" Z 1956 Rock, v ruskej knihe Virt "Algorithmi that structure of Dani" 1989 Roku Termin "Rosstation"). Bolo tiež navrhnuté nazvať metódu ruským slovom "okroshka". Očakáva sa však, že žiadna z týchto možností sa neuchytí a v ruskej literatúre je výraz „kheshuvannya“ široko používaný.

Pozrite si funkciu hash

Dobrá hašovacia funkcia môže uspokojiť dve autority:

  1. shvidko sa má počítať;
  2. Minimalizujte počet kolies

Pre spev je prijateľné, že existuje veľký počet kláves a hašovacia funkcia nemôže mať viac než rôzne hodnoty:

Ako príklad „zlej“ hašovacej funkcie môžete použiť funkciu s, ktorá dáva desaťmiestnemu prirodzenému číslu tri číslice vybrané zo stredu dvadsaťmiestneho štvorca čísla. Zdalo by sa, že hodnoty hash kódu by boli rovnomerne rozdelené medzi „000“ a „999“, ale pre skutočné údaje je táto metóda vhodná len preto, že kľúče neobsahujú veľké množstvo núl, či už správnych alebo nesprávnych.

Existuje však oveľa viac jednoduchých a spoľahlivých metód, ktoré sú založené na bohatej hašovacej funkcii.

Hashovacie funkcie sú založené na rozdelení

Prvá metóda je založená na tom, čo používame ako hash prebytku v podsekcii, čo je počet všetkých možných hashov:

Preto je zrejmé, že pri spárovanej hodnote funkcie bude spárovaná, s párovanou a nepárovou - s nepárovou, čo môže viesť k výraznému posunu dát v súboroch. Tiež by ste nemali zvíťaziť vo fáze výpočtu počítača, pretože hash kód je obsiahnutý len v niekoľkých čísliciach čísla, ktoré sa otáčajú ručne, čo povedie k veľkému počtu mincí. V skutočnosti si musíte vybrať jednoduchšiu voľbu - táto voľba je úplne uspokojivá.

Ešte jedna vec, ktorú treba povedať o metóde hashovania, základu pre rozdelenie na polynóm po module dva. Táto metóda má tiež stupeň dva a binárne kľúče () sú reprezentované ako polynómy. V tomto prípade ako hašovací kód berieme hodnoty koeficientov polynómu, ktoré sa odstránia ako prebytok z podpoľa do zadnej časti štádia polynómu:

Ak si vyberiete ten správny, tento spôsob zaručuje, že nedôjde ku kolíziám medzi rovnakými kľúčmi.

Multiplikatívna schéma heshuvannya

Ďalšia metóda zahŕňa výber celočíselnej konštanty, ktorá je jednoduchšia ako počet hodnôt, ktoré možno strojom reprezentovať slovom (na počítačoch IBM PC). Potom môžeme použiť hašovaciu funkciu ako:

V tomto prípade je na počítači s dvojcifernou číselnou sústavou číslo rádovo dve a pripočíta sa k najvyšším bitom pravej polovice výtvoru.

Medzi týmito dvoma metódami je zrejmé, že ich pravdepodobne vyberú tí, ktorých skutočné kľúče nie sú konzistentné, napríklad preto, že kľúče predstavujú aritmetickú postupnosť (prijateľná postupnosť mien „NAME1“, „NAME2“, „NAME3“ "). Multiplikatívna metóda je mapovať aritmetickú progresiu približne na aritmetickú progresiu rôznych hash hodnôt, čím sa mení počet mincí na základe jedinečnej situácie.

Jednou z variácií tejto metódy je Fibonacciho hašovanie, ktoré je založené na sile rezu zlata. Ako vybrať číslo najbližšie k celému číslu je obojstranne jednoduché

Heshuvanniya rady dowzhin

Metódy výskumu môžu byť týmto spôsobom obmedzené, pretože sa musíme pozrieť na kľúče, ktoré sú tvorené niekoľkými slovami alebo kľúče premenlivej holubice. Môžete napríklad kombinovať slová do jedného s dodatočným modulom alebo operáciou „čo zahŕňa alebo“. Jedným z algoritmov, ktoré sa riadia týmto princípom, je Pearsonova hašovacia funkcia.

Univerzálna Heshuvannya

Universal kheshuvannyam (angličtina) Univerzálne hashovanie ) sa nazýva hašovanie, pri ktorom sa netestuje jedna konkrétna hašovacia funkcia, ale výber sa uskutočňuje z danej rodiny pomocou náhodného algoritmu. Použitie univerzálneho hashovania zabezpečí nízky počet kolónií. Univerzálne hashovanie môže byť úplne odlišné, napríklad od implementácie hašovacej tabuľky a kryptografie.

Popis

Povedzme, že chceme previesť kľúče na čísla. Na vstupe algoritmus vyberie určitý súbor údajov, ktorý je veľký a z diaľky neznámy. Metódou hašovania je zvyčajne odstránenie najmenšieho počtu mincí, čo je dôležité dosiahnuť pomocou hašovacej funkcie.

Ako riešenie tohto problému si môžete vybrať funkciu v postupnom poradí z jednej sady, ktorá sa nazýva univerzálna rodina.

Metódy boja proti kolióze

Ako už bolo povedané vyššie, hašovacia funkcia (buď konflikt alebo kombinácia) je názov priradený dvom vstupným dátovým blokom, ktoré vytvárajú nové hašovacie kódy.

Majte hašovacie tabuľky

Väčšina prvých prác, ktoré popisujú hašovanie, bola venovaná metódam riešenia kolízií v hašovacích tabuľkách, pretože hašovacie funkcie boli naskladané na vyhľadávanie veľkých súborov. V hašovacích tabuľkách sa používajú dve hlavné metódy:

  1. Lanciuzhkova metóda (metóda priameho pripojenia)
  2. Metóda súkromnej adresy

Prvá metóda je založená na podmnožine zoznamov odkazov, po jednom na každú hodnotu hašovacej funkcie. Zoznam ukladá kľúče, ale dáva rovnaké hodnoty hash kódu. Pri konečnom vyhľadávaní, ktoré je naším kľúčom k zoznamom, bude priemerná veľkosť zoznamu hašovaná, aby sa priemerný počet robotov rovnajúci sa poslednému vyhľadávaniu zmenil približne o faktor.

Ďalšou metódou je uloženie párov kľúč-hodnota do tabuľky poľa. Týmto spôsobom sme si úplne vedomí správy a jednoducho si prezeráme záznamy v tabuľke, kým nenájdeme požadovaný kľúč alebo prázdnu pozíciu. Sekvencia, v ktorej sa zobrazuje stred tabuľky, sa nazýva vzorová sekvencia.

Kryptografická sila

Existuje niekoľko spôsobov, ako chrániť podrobnosti hesiel a podpisov, ktoré možno použiť rovnakým spôsobom, ako sa kryptoanalytici zaujímajú o spôsoby generovania množstva hodnôt pre upravenú hashovaciu funkciu. Jednou z týchto metód je pridávanie kryptografickej soli (riadky náhodných údajov) do vstupných údajov (niekedy sa „soľ“ pridáva do hash kódu), čo výrazne komplikuje analýzu sub-bag hash tabuliek. Táto metóda sa napríklad používa na ukladanie hesiel v operačných systémoch podobných UNIX.

Definícia hašovacích funkcií

Kryptografické hašovacie funkcie

Medzi absenciou čistých hašovacích funkcií je zvykom vidieť kryptograficky silné, ktoré sú zavedené v kryptografii, pretože sa na ne prekrývajú ďalšie výhody. Aby bola hašovacia funkcia kryptograficky bezpečná, existujú tri hlavné dôvody, prečo sa hašovacie funkcie v kryptografii používajú:

Tieto výhody nie sú nezávislé:

  • Reverzná funkcia je nestabilná voči zrážkam prvého a druhého druhu.
  • Funkcia, nestabilná voči prvému druhu; nestabilné voči kolíziám iného druhu; Brána nie je správna.

Je potrebné poznamenať, že nebola dokončená implementácia neodvolateľných hašovacích funkcií, pre ktoré je teoreticky nemožný výpočet akéhokoľvek prototypu danej hašovacej funkcie. Zvýšte hodnotu návratovej hodnoty, čo znamená zložitejšie úlohy.

Hašovanie sa často používa v algoritmoch digitálneho podpisu, kde samotná informácia nie je šifrovaná, ako napríklad hash kód, ktorý mení čas výpočtu a tiež zlepšuje šifrovaciu silu. Pri väčšine náhrad hesiel sa uložia aj hodnoty ich hash kódov.

Kontrolné sumy

Nekomplikované, extrémne rýchle a ľahko použiteľné hardvérové ​​algoritmy, ktoré možno použiť na ochranu pred nežiaducimi problémami a predchádzanie problémom s hardvérom. Z matematického hľadiska ide o hašovaciu funkciu, ktorá vypočítava riadiaci kód, ktorý slúži na zisťovanie chýb pri prenose a ukladaní informácií.

Pre rýchlosť výpočtu sú desiatky a stovky krát rýchlejšie a nižšie kryptografické hašovacie funkcie hardvérovo oveľa jednoduchšie.

Kompromisom za takú vysokú likviditu je nedostatočná stabilita kryptomien – jednoduchá možnosť prispôsobiť notifikáciu sume, ktorú zaplatíte vopred. Zvážte tiež veľkosť kontrolných súčtov (typický počet: 32 bitov) nižšiu ako kryptografické hash (typické čísla: 128, 160 a 256 bitov), ​​čo znamená možnosť nepresných kolízií.

Najjednoduchšou verziou takéhoto algoritmu je rozdelenie správy na 32- alebo 16-bitové slová a ich význam, ktorý by obstál napríklad v TCP/IP.

Spravidla je pred takýmto algoritmom možné implementovať typické hardvérové ​​brúsky, ako je počet brúsnych bitov, aby sa dostali k danému dátumu. Rodina algoritmov t.z. „cyklické nadbytočné kódy“ tieto výhody spĺňajú. Patria sem napríklad CRC32, formáty nachádzajúce sa v ethernetových zariadeniach a vo formáte kompresie dát ZIP.

Napríklad kontrolný súčet môže byť prenášaný kanálom ako odkaz spolu s hlavným textom. Kontrolná suma môže byť na konci dňa prepoistená a môže byť vyrovnaná s prevedenými hodnotami. Ak sa zistí nezrovnalosť, znamená to, že prenos zlyhal a môžete požiadať o opakovanie.

Podobný analóg hašovania sa dá občas použiť, ak počas cestovania musíte minúť veľa miesta na batožinu. Aby ste to skontrolovali, nemusíte vedieť o kožnej výstelke, ale stačí sa jej dotknúť. Znamená to, že sa neminul každý dolár. Je tu veľa miesta pre vašu batožinu a jej hash kód. Túto metódu možno jednoducho rozšíriť, aby sa zabránilo falšovaniu prenášaných informácií (metóda MAC). Pri tomto type hashovania sa vykonáva krypto-zabezpečená funkcia na oznámeniach spojených s tajným kľúčom, ktorý pozná iba odosielateľ a príjemca oznámenia. Kryptanalytik teda nebude môcť aktualizovať kód na základe množstva informácií a hodnôt hašovacích funkcií, takže nebude možné informácie rozpracovať (mimoriadny imitátor).

Geometrichetche Kheshuvannya

Geometrichetche Kheshuvannya (anglicky) Geometrické hašovanie) je široko používaná metóda v počítačovej grafike a výpočtovej geometrii na riešenie úloh v rovine alebo v triviálnom priestore, napríklad na nájdenie najbližších párov anonymných bodov alebo na hľadanie nových obrázkov. Hašovacia funkcia v tejto metóde berie ako vstup ľubovoľný metrický priestor a rozdeľuje ho na mriežku buniek. Tabuľka niekedy obsahuje pole dvoch alebo viacerých indexov a nazýva sa súbor mriežky. Súbor mriežky). Geometrické hashovanie stagnuje aj v telekomunikáciách pri práci s veľkým množstvom signálov.

Rýchlo vyhľadám údaje

Hašovacia tabuľka je dátová štruktúra, ktorá umožňuje ukladať dátové typy (kľúč, hash kód) a podporuje operácie vyhľadávania, vkladania a vzdialené prvky. Hašovaciu tabuľku možno rýchlo nájsť, napríklad pri písaní textových polí do databázy, použiť jej hašovací kód a údaje umiestniť do sekcie, ktorá sa zhoduje s hašovacím kódom. Potom pri vyhľadávaní údajov budete musieť okamžite vypočítať hash kód textu a hneď bude jasné, ktorú sekciu je potrebné hľadať, takže nebudete musieť hľadať celú databázu, ale iba jednu sekciu ( to urýchli vyhľadávanie).

Podobným analógom heshuvannya môže byť umiestnenie slov v slovníku podľa abecedy. Prvé písmeno slova je identifikované pomocou hash kódu a pri hľadaní sa nedívame na celý slovník, ale len na požadované písmeno.

Poznámky

Literatúra

  • Bruce Schneier"Aplikovaná kryptografia. Protokoly, algoritmy, výstupné texty môjho C." – M.: Triumph, 2002. –

Jedným z kľúčových slov, ktoré nováčikovia vnímajú, keď sa učia o blockchaine, je koncept hash a hash algoritmus, ktoré sú navrhnuté tak, aby boli rozšírené kvôli bezpečnosti. Spustenie decentralizovaného konsenzuálneho opatrenia, ako je bitcoin alebo ethereum, s desiatkami tisíc uzlov pripojených cez p2p, zlepšuje spoľahlivosť aj efektivitu overovania. Tieto systémy budú vyžadovať spôsoby kódovania informácií v kompaktnom formáte, ktorý umožňuje bezpečné overenie účastníkmi.

Do záložiek

Hlavnou črtou, ktorú zdieľajú Bitcoin aj Ethereum, je pochopenie blokovať, čo je dátová štruktúra, ktorá zahŕňa transakcie, časové pečiatky a ďalšie dôležité metadáta. Kritická časť ich bezpečnosti zahŕňa schopnosť zhustiť veľké množstvo informácií o globálnom hraničnom systéme do krátkeho štandardu informácií, ktorý možno v prípade potreby efektívne overiť. hash.

Zmena jedného znaku vo vstupných údajoch bude mať za následok iný hash.

Kryptografické hash sa overuje od ukladania hesiel do systémov overovania súborov. Hlavnou myšlienkou je vytvoriť deterministický algoritmus (algoritmický proces, ktorý generuje jedinečný a inteligentný výsledok pre daný vstup), ktorý vezme jeden vstup a vytvorí sériu pevných výstupov naraz. Takže opakovanie toho istého úvodu povedie k rovnakému výsledku. Determinizmus je dôležitý nielen pre hashe, ale aj pre jeden bit, ktorý sa mení vo vstupných dátach, čím vzniká úplne iný hash. Problémom hashovacích algoritmov je nevyhnutnosť kolízií. Skutočnosť, že hash má množstvo pevných hodnôt, znamená, že pre dermálne podanie, ktoré vieme sami zistiť, Existujú aj ďalšie možné vstupy, ktorých výsledkom bude rovnaký hash. Kolízia je zlá. To znamená, že útočník môže vytvoriť tajnú dohodu, môže preniesť poškodené súbory alebo údaje, ktoré obsahujú správny a nesprávny hash a nachádzajú sa pod správnym hashom. Cieľom dobrej hašovacej funkcie je mimoriadne sťažiť útočníkom nájsť spôsoby generovania vstupných údajov, ktoré sa hašujú s novými hodnotami. Výpočet hashu si možno vopred odpustíme, pretože to uľahčí zločincom výpočet mincí. Hašovacie algoritmy môžu byť odolné voči „prototypovým útokom“. Potom, po odstránení hashu, by bolo veľmi jednoduché vypočítať deterministické hodnoty brány vytvorené na vytvorenie hodnoty, ktorá vytvorila hash (následne nájsť prototyp).

Teoreticky S = hash(x), poznať X môže byť nemožné.

Je jasné, že „dobré“ hašovacie algoritmy majú takú silu:

  • Zmena jedného bitu vstupných údajov môže mať za následok zmenu celého hashu;
  • Výpočet heshe je vinný, ale vopred odpustíme, náročnosť znalosti prototypu je vysoká;
  • Prevalencia koliózy je dokonca nízka;

Zlo hašov

Jedným z prvých štandardov je hashovací algoritmus MD5, ktorý sa široko používa na overovanie integrity súborov (kontrolné sumy) a ukladanie hashovaných hesiel do databáz webových doplnkov. Jeho funkčnosť je jednoduchá, pretože poskytuje pevný 128-bitový riadok pre vstup skinu a vykonáva triviálne jednosmerné operácie v niekoľkých kolách na výpočet deterministického výsledku. Tento krátky víkend a jednoduchosť operácií urobili MD5 ešte ľahším pre zlo a flexibilnejším pred útokom „Day of the People“.

Čo je to „Útok dňa ľudí“?

Počuli ste už o tom, že ak dáte na izbu 23 jedincov, je 50% šanca, že dvaja z nich budú mať jeden pôrod v ten istý deň? Zvýšenie počtu na 70 osôb na izbu dáva 99,9% šancu. Ak sú holuby umiestnené v boxoch a počet holubov je väčší ako počet boxov, potom by ste chceli mať viac ako jedného holuba v jednej krabici. Táto fixná výmena na výstupe znamená, že základom pre fixáciu je stupeň permutácií, na ktorom možno nájsť kolíziu.

Pamätajte, že jeden holub bude matkou dvoch holubov.

V skutočnosti sú desktopy MD5 slabé až do bodu kolízie, ale jednoduchý procesor Pentium 2,4 GHz dokáže vypočítať jednotlivé hašovacie kolízie v priebehu niekoľkých sekúnd. Okrem toho toto rozšírené používanie v prvých dňoch streamovania vytvorilo na internete množstvo MD5 pokročilých obrázkov, ktoré možno nájsť jednoduchým vyhľadaním ich hash v Google.

Vlastnosti a vývoj hashovacích algoritmov Cob: SHA1 a SHA2

NSA (National Security Agency) je už dlho priekopníkom štandardov hašovacích algoritmov so svojím priekopníckym algoritmom Secure Hashing Algorithm alebo SHA1, ktorý vytvára 160-bitové výstupy s pevnou sadzbou. Bohužiaľ, SHA1 jednoducho zlepšuje MD5, zvyšuje počet jednosmerných operácií a zložitosť týchto jednosmerných operácií, ale neposkytuje žiadne zásadné vylepšenia proti starším počítačom, ktoré sú schopné víťazných útokov. Ako teda môžeme lepšie zarobiť?

Wikoristannya SHA3

V roku 2006 vyhlásil Národný inštitút pre štandardy a technológie (NIST) súťaž s cieľom nájsť alternatívu k SHA2, ktorá by bola v súlade s jeho architektúrou, aby sa stala štandardom. SHA3 ​​sa teda objavil ako súčasť veľkej schémy hashovacích algoritmov známych ako KECCAK (známych ako Ketch-Ak). Bez ohľadu na svoj názov je SHA3 veľmi rušivý vďaka svojmu vnútornému mechanizmu, známemu ako „špongový dizajn“, ktorý je víťaznou permutáciou pre „navíjanie“ a „skrúcanie“ údajov, ktoré pôsobí ako mechanizmus pre oživenie budúcich vstupov. ktoré sú zahrnuté v hašovacom algoritme.

Kheshuvannya a dôkaz o práci

Pokiaľ ide o integráciu hashovacieho algoritmu do blockchainových protokolov, Bitcoin prijal SHA256, rovnako ako Ethereum prijalo modifikácie SHA3 (KECCAK256) pre svoj PoW. Dôležitým faktorom pri výbere hašovacej funkcie pre blockchain proof-of-work je však efektivita výpočtu určeného hashu. Bitcoinový hashovací algoritmus SHA256 možno spracovať jednoducho pomocou špeciálneho zariadenia známeho ako špecializované integrované obvody (alebo ASIC). O použití ASIC v ťažobných pooloch a o tom, ako eliminovať protokol priamo na centralizáciu výpočtov, sa toho popísalo veľa. Tento dôkaz práce povzbudzuje skupiny výpočtovo efektívnych strojov, aby sa spojili do guľôčok a zvýšili tie, ktoré sa považujú za „hash power“ alebo počet hashov, ktoré stroj dokáže vypočítať za hodinu. Ethereum, ktoré si zvolilo modifikácie SHA3 ako KECCAK 256. Okrem toho je algoritmus Ethereum PoW - Dagger-Hashimoto zodpovedný za dôležité výpočty pre hardvérovú bezpečnosť.

Prečo Bitcoin používa šifrovanie SHA256?

Bitcoin má inú metódu hashovania údajov pomocou SHA256, takže má vo svojom protokole dve iterácie algoritmu. Aby som to zhrnul: nejde o protiútok na útoky na štátny sviatok, ale je jasné, že hash(x) = hash(y), potom hash(hash(x)) = hash(hash(y)). Objem čiastkového upozornenia SHA256 sa používa na poznámku „Útoky čiastkových upozornení sú typom útoku na hašovaciu funkciu, ktorá je zahrnutá v pridaných nových informáciách na konci výstupného upozornenia.“ Útok nie je bezpečný, pretože je možné zmeniť príkaz a samozrejme zrušiť príkazy, ktorým príkaz zodpovedá (napríklad prevod halierov)

SHA3 ​​​​nie je jediným prelomom, ktorý vzišiel z hashovacej súťaže NIST v roku 2006. Bez ohľadu na tie, ktoré vyhral SHA3, algoritmus, známy ako BLAKE, zaujal iné miesto. Na implementáciu shardingu Ethereum 2.0 je Vikorist efektívnejší. Hashovací algoritmus BLAKE2b, ktorý je vysoko pokročilou verziou BLAKE v porovnaní s jeho konkurentmi, je intenzívne chválený pre svoju fantastickú účinnosť v porovnaní s KECCAK256 pre zachovanie vysokej úrovne bezpečnosti. Náklady na BLAKE2b sú takmer 3-krát vyššie ako náklady na KECCAK na dennom procesore.

Budúce hashovacie algoritmy

Zdá sa, že bez ohľadu na to, čoho sa bojíme, sme jednoducho buď (1) väčšia zložitosť interných hašovacích operácií, príp (2) Väčšinou na základe hašovacieho výstupu predpokladáme, že počítače útočníkov nebudú dostatočne rýchle na to, aby efektívne vypočítali svoj vklad. Spoliehame sa na nejednoznačnosť predných prototypov jednosmerných operácií, aby sme zaistili bezpečnosť našich opatrení. Účelom hashovacieho algoritmu je vytvoriť niečo, čo je jednoduché pre každého, kto chce nájsť dve hodnoty, ktoré sú hašované na rovnakom symbole, bez ohľadu na to, že existuje nekonečné množstvo možných riešení. „A čo budúce kvantové počítače? Budú hashovacie algoritmy bezpečné? Krátka odpoveď a presnejšie pochopenie je, že hashovacie algoritmy boli testované hodiny oproti kvantovým výpočtom. Problémy, ktoré môže kvantová výpočtová technika vyriešiť, sú problémy, ktoré sa skrývajú za matematickou štruktúrou založenou na úhľadných trikoch a teórii, ako je šifrovanie RSA. Na druhej strane, hashovacie algoritmy majú menej formálnu štruktúru vo svojich vnútorných štruktúrach. Kvantové počítače môžu efektívne poskytnúť zvýšenú flexibilitu v množstve neštruktúrovaných problémov, ako je hašovanie, ale stále môžu byť hrubo napadnuté rovnakým spôsobom, akým sa na nich dnešný počítač pokúša pracovať. Bez ohľadu na to, aké algoritmy si vyberieme pre naše protokoly, je jasné, že sa zrútime do výpočtovo efektívnej budúcnosti a môžeme sa rozhodnúť podľa nášho najlepšieho úsudku, aby sme si vybrali správne nástroje pre prácu, ako napríklad A veríme, že to bude trvať hodinu vyskúšať.

_____________________________________________________________________________

______________________________________________________________________________

Často, keď sa zaujímate o torrenty alebo dokonca o samotné súbory, popis obsahuje položku „ad33e486d0578a892b8vbd8b19e28754“ (napríklad ex.ua), často s predponou „md5“. Tento hašovací kód je výsledkom, ktorý hašovacia funkcia vidí po spracovaní vstupných údajov. V anglickom preklade znamená hash malina, marihuana, tráva alebo bylinky z nadrobno nakrájaného mäsa a zeleniny. Je to veľmi a veľmi ťažké, dalo by sa povedať, že je to prakticky nemožné. Potom vyvstáva otázka: Horia všetky potrebné veci a ten smrad je viditeľný pre hlúpe bláboly, ktoré sa zatiaľ nedajú rozlúštiť? O tomto je k dispozícii v tomto statti.

Čo je to hašovacia funkcia a na čo slúži?

Táto funkcia je navrhnutá tak, aby transformovala vstupné údaje na veľkú veľkosť, čo vedie k fixnému príjmu. Samotný proces takéhoto opätovného vytvárania sa nazýva hash a výsledkom je hash alebo hash kód. Niekedy sa používajú slová „video“ alebo „správy“, no v skutočnosti sú pachy výraznejšie. Existuje mnoho rôznych algoritmov, ktoré dokážu transformovať ľubovoľné dátové pole na základe sekvencie symbolov skladby. Najväčší rozmach dosiahol algoritmus s názvom md5, vyvinutý už v roku 1991. Bez ohľadu na to, že dnes je md5 trochu zastarané a doteraz sa neodporúča, stále sa používa a často namiesto slova „hash code“ na stránkach jednoducho napíšete md5 a uvediete kód.

Je potrebná hašovacia funkcia?

Pri znalosti výsledku je prakticky nemožné určiť výstupné dáta, pokiaľ samotné vstupné dáta nedávajú rovnaký výsledok. Preto sa hašovacia funkcia (tiež nazývaná hašovacia funkcia) často používa na uloženie dôležitých informácií, ako sú heslo, prihlasovacie meno, referenčné číslo a ďalšie osobné informácie. Namiesto vyrovnávania údajov zadaných klientom s údajmi uloženými v databáze sa vytvárajú ich hash. To zaručuje, že pri rýchlom toku informácií nikto nemôže rýchlo získať dôležité údaje pre svoje účely. Kontrolou hash kódu môžete tiež manuálne overiť správnosť sťahovania súborov z internetu, najmä ak počas sťahovania došlo k prerušeniam pripojenia.

Hashovacie funkcie: čo je to smrad T

V závislosti od účelu môže byť hašovacia funkcia jedným z troch typov:

1. Funkcia kontroly integrity informácií

Pri prístupe cez middleware sa haš paketu dekomprimuje a výsledok sa tiež prenáša súčasne so súborom. Po prijatí sa hash kód znova vypočíta a porovná s rôznymi hodnotami. Ak sa kód neuloží, hovoríme o zrušení a zazipovaný paket sa prenesie znova. Táto funkcia má za následok rýchlejšiu expanziu, menšiu hodnotu hash a slabú stabilitu. Zásoba je tohto typu: CRC32, ktorá má viac ako 232 rôznych hodnôt.

2. Kryptografická funkcia

Vikorystvovaetsya na ochranu pred ND. Môžete skontrolovať, či pri prenose súborov cez bariéru nedošlo ku konfliktu s výsledkami ND. Referenčný hash je v tomto prípade úplne prístupný a hash extrahovaného súboru je možné vypočítať pomocou iných programov. Takéto funkcie majú dlhú a stabilnú dobu prevádzky a hľadanie kolízií (možné výsledky z rôznych výstupných údajov) je ešte zložitejšie. Tieto funkcie samotné slúžia na ukladanie hesiel databázy (SH1, SH2, MD5) a iných cenných informácií.

3. Funkcia určená na vytvorenie efektívnej dátovej štruktúry

Týmto spôsobom je organizácia záznamov v špeciálnej štruktúre nazývanej hašovacia tabuľka kompaktná a dobre organizovaná. Takáto tabuľka vám umožňuje pridávať nové informácie, mazať údaje a vyhľadávať požadované údaje s ešte vyššou flexibilitou.

V rámci tohto článku vám to poviem čo je Hash?, tu je to potrebné, kde a ako zmraziť, ako aj najvhodnejší zadok.

Obrovská ponuka informačných technológií vo svete je ešte dôležitejšia pre dátové povinnosti. Napríklad, ak potrebujete zarovnať dva súbory s veľkosťou 1 kB a dva súbory s veľkosťou 10 GB, všetky v inom čase. Preto sú veľmi žiadané algoritmy, ktoré umožňujú pracovať s kratšími a menšími hodnotami.

Jednou z týchto technológií je hash, ktorý našiel svoju užitočnosť pod vysokým tlakom. Ale, myslím, že ty, ako skutočný žoldnier, stále nechápeš, čo je to za zviera a na čo je potrebné víno. Pokúsim sa to vysvetliť tými najjednoduchšími slovami.

Poznámka: Materiál poistenia pre primárnych klientov a nehovoriac o množstve technických aspektov na základné znalosti nestačí.

Čo je Hesh chi Kheshuvannya?

Dovoľte mi začať s podmienkami.

Hash funkcia, Hash funkcia- ide o špeciálny typ funkcie, ktorá umožňuje previesť veľké množstvo textu na kód pevného dátumu (nazývaný krátky záznam digitálneho listu).

Kheshuvannya- ide o proces opätovného vytvárania výstupných textov.

Hash, hash code, hash value, hash sum- Toto je výstupná hodnota funkcie Hash, aby sa odstránil fixačný blok.

Ako vidíte, výrazy vytvárajú podrobný popis, takže je ťažké pochopiť, prečo je všetko potrebné. Dám tomu malý zadok (o ďalších problémoch si povieme o niečo neskôr). Povedzme, že máte 2 súbory s veľkosťou 10 GB. Ako môžete rýchlo zistiť, ktorý z nich potrebujete? Môžete zmeniť názov súboru, ale môžete ho jednoducho premenovať. Môžete vidieť dátumy, ale po skopírovaní súborov môžu dátumy zostať rovnaké alebo iným spôsobom. Veľkosť, ako sami chápete, je málo nápomocná (najmä ak sa vyhnete veľkosti alebo vás neprekvapí presný význam bajtov).

Os je tu potreba samotného hashu, čo je krátky blok, ktorý sa tvorí z výstupného textového súboru. Tieto dva súbory, každý s veľkosťou 10 GB, budú mať dva samostatné, ale krátke hašovacie kódy (pre príkaz „ACCAC43535“ a „BBB3232A42“). Pomocou Vikorist môžete rýchlo rozpoznať požadovaný súbor, kliknúť po skopírovaní a zmene názvu.

Poznámka: V súvislosti s tým, že hash v počítačovom svete a na internete je už dobre pochopený, potom sa často všetky tie, ktoré môžu súvisieť s hashom, skrátia na samotné slovo, napríklad fráza „Mám víťazstvo MD5 Hash ” v preklade To znamená, že stránka alebo tu používa aj hashovací algoritmus pre štandard MD5.

Funkcia Power of Hash

Teraz si povedzme o sile hašovacej funkcie, aby ste ľahšie pochopili, prečo je hašovanie potrebné. Začnime ešte jednou vecou.

Koloseum- toto je situácia, ak rovnaký Hash Sum vyjde pre dva rôzne texty. Ako sami chápete, keďže blok je pevný dátum, môže obmedziť množstvo možných hodnôt, a teda aj možných opakovaní.

A teraz k sile samotných hashovacích funkcií:

1. Vstupom môže byť text ľubovoľnej veľkosti a výstupom môže byť blok údajov s pevným dátumom. Toto vychádza z významu.

2. Hašovací súčet týchto textov môže byť nový. V inom prípade sú takéto funkcie jednoducho okrajové – sú rovnaké až do výstupného čísla.

3. Dobrá funkcia hrdla je daná dobrou povahou matky. Počkajte, pretože veľkosť výstupného hash je napríklad 16 bajtov, potom keďže funkcia otáča iba 3 rôzne hodnoty pre akékoľvek texty, cena takejto funkcie je 16 bajtov nič (16 bajtov je 2 ^ 128 možností, čo sa približne rovná 3 , 4 * 10 ^ 38 krokom).

4. Miera, do akej funkcia reaguje na najmenšie zmeny vo výstupnom texte. Prepáč zadok. Zmenili sme 1 písmeno v súbore s veľkosťou 10 GB, význam funkcie sa môže líšiť. Ak to tak nie je, potom je implementácia takejto funkcie ešte problematickejšia.

5. Možnosť ospravedlnenia konfliktu. Veľmi flexibilný parameter, ktorý je pre spievajúce mysle poistiteľný. No, podstatou toho je, že akýkoľvek zmysel hash funkcie, akonáhle je hash súčet odstránený, bude často uložený.

6. Rýchlosť výpočtu hash. Aké je využitie funkcie hrdla, ak existuje už dlho? V každom prípade je jednoduchšie revidovať dátové súbory alebo použiť iný prístup.

7. Zložitosť aktualizácie výstupných údajov z hodnoty Hash. Táto charakteristika je špecifickejšia, menej tajná, takže nie je nevyhnutne potrebná. Prote, pre najpopulárnejšie algoritmy, je táto charakteristika hodnotená. Napríklad je nepravdepodobné, že pomocou tejto funkcie budete môcť získať výstupný súbor. Ak je však problém s kolážami (napríklad je potrebné poznať nejaký text, ktorý zodpovedá takému Heshovi), potom môže byť takáto charakteristika dôležitá. Napríklad heslá, ale je o nich málo vedieť.

8. Výstupný kód takejto funkcie je buď otvorený alebo zatvorený. Ak kód nie je dešifrovateľný, potom sa pri napájaní stratí zložitosť aktualizácie údajov a samotná kryptografická sila. Čiastočne je to problém kvôli šifrovaniu.

Os je teraz možné presunúť na „čo je to všetko?“

Čo potrebujete pre Hash?

Hašovacia funkcia má iba tri hlavné účely (väčšinou ich význam).

1. Kontrola integrity údajov. V tomto prípade je všetko jednoduché, táto funkcia musí byť vypočítaná rýchlo a umožní vám rýchlo skontrolovať, či napríklad súbor stiahnutý z internetu nie je počas prenosu poškodený.

2. Rastúca produktivita pri vyhľadávaní údajov. Oprava veľkosti bloku vám umožní odobrať prioritu najdôležitejších úloh vyhľadávania. V tomto prípade hovoríme o tých, ktoré čisto technicky môže mať použitie hašovacej funkcie pozitívny vplyv na produktivitu. Pre takéto funkcie je ešte dôležitejšie zabezpečiť súlad medzi vinohradmi a garniy divíziou.

3. Pre kryptografické potreby. Tento typ funkcie záťaže je v týchto oblastiach bezpečnosti obmedzený, ale je dôležité, aby sa výsledky dali ľahko upravovať alebo je potrebné čo najviac uľahčiť extrahovanie požadovaných informácií z hashu.

Kde a ako sa vytvára hash?

Ako ste už pravdepodobne uhádli, Hash bude stagnovať, keď je úloha vysoká. Náprava týchto:

1. Heslá sa ukladajú v otvorenom zobrazení a v zobrazení Hash Sum, čo umožňuje vyššiu úroveň zabezpečenia. Aj keď útočník zamietne prístup k takejto databáze, bude musieť stráviť veľa času hľadaním týchto hash kódov pre základné texty. Dôležitou charakteristikou je „zložitosť aktualizácie výstupných údajov z hodnoty hash“.

Poznámka: Raju si prečítal tento článok o stávkach na zlepšenie úrovne zabezpečenia hesla

2. Naprogramované vrátane databáz. Samozrejme, najčastejšie hovoríme o dátových štruktúrach, ktoré umožňujú rýchle vyhľadávanie. Len technický aspekt.

3. Do hodiny prenosu dát cez sieť (vrátane internetu). Mnohé protokoly, ako napríklad TCP/IP, obsahujú špeciálne reverzné polia, ktoré nahradia hodnotu hash výstupnej správy, takže ak dôjde k jej poškodeniu, neovplyvní to prenos údajov.

4. Pre rôzne algoritmy súvisiace s bezpečnosťou. Napríklad hash je uložený v elektronických digitálnych podpisoch.

5. Na kontrolu integrity súborov. V skutočnosti môžete často nájsť dodatočné popisy s hash kódom na súboroch (napríklad archívoch) na internete. Toto prihlásenie je zablokované nielen preto, že omylom spustíte súbor, ktorý sa poškodil pri surfovaní na internete, ale jednoducho sa vyskytli chyby na hostingu. V takýchto situáciách môžete rýchlo skontrolovať hash a v prípade potreby súbor znova nahrať.

6. Niektoré hašovacie funkcie sa používajú na vytváranie jedinečných identifikátorov (ako súčasť). Napríklad pri ukladaní obrázkov alebo len súborov použite vikoryst na použitie hash v názvoch spolu s dátumom a hodinou. To vám umožní prepísať súbory s rovnakými názvami.

V skutočnosti sa hašovacie funkcie častejšie používajú v informačných technológiách. Predovšetkým tým, že povinnosti týchto údajov a ťažkosti najjednoduchších počítačov veľmi narástli. V prvej epizóde je jazyk viac o hľadaní a v druhej je jazyk viac o potravinovej bezpečnosti.

Zobraziť hashovacie funkcie

Najpopulárnejšie sú tri hašovacie funkcie.