Sha 256 algoritmas paprastais žodžiais. Paaiškinkite kasybos kriptovaliutų algoritmus. Labiau pergalingas

Aleksandras Markovas

Santrumpa SHA 256 reiškia Secure Hashing Algorithm – maišos užklausos mechanizmą, sukurtą NSA faksimilėmis. Pagrindinė algoritmo užduotis yra vertės tipo informacijos transformavimas į fiksuotą reikšmę, turi būti įmanoma atskirti šių duomenų identifikavimo būdą.

Išvaizdos istorija

Labai svarbu, kad tai yra kitos kartos algoritmas, sukurtas remiantis jo įpėdiniu - SHA-1, kuris savaime buvo išplėstas 1995 m. ir pasirodė naudojamas civilinėms reikmėms. Atnaujinta versija Nin_ populiarus algoritmas buvo sukurtas Nacionalinio saugumo agentūros specialistų 2002 m.

Po trejų metų atsirado patentas, leidžiantis man laimėti civiliniams tikslams skirtą algoritmą. Trečioji populiaraus mechanizmo versija pasirodė 2012 m., o kūrimu užsiėmė Nacionalinių standartų agentūrų specialistai. Beje, SHA-3 nugalės savo pirmtakus.

Konvertuotų duomenų iššifruoti neįmanoma, maišos sumos fragmentai negali būti vertinami kaip šifravimo procesas klasikiniame interpretavimo procese. Vienpusis šifravimo algoritmas apdoroja neribotą kiekį informacijos.

Varto paskirti, kad absoliučiai viskas pagrindinės versijos algoritmas Secure Hashing Algorithm buvo sukurti vadovaujantis Merkle-Damgard principu: informacija skirstoma į lygias kategorijas. Odos grupei taikomas vienpusis suėmimas, po kurio labai pasikeičia odos oda.

Toks šifravimo būdas gali būti beasmenis:

  • duomenų išspaudimas atliekamas operatyviai;
  • neįmanoma atlikti transformacijos proceso be raktų;
  • imovirnіst išvaizda kolіzіy zveda nanіvets.

Techninės charakteristikos

Duomenų paskyrimų protokolas, padalijimas į dalis, bendra oda - 64 baitai. Algoritmas užtikrina konsolidavimą, po kurio deklaruojamas 256 bitų kodas. Šifravimo technologija pagrįsta iš pažiūros nepatogiu ratu, kurio cikliškumas yra 64 kartus.

  • 64 baitų bloko dydis.
  • Maksimalus šifruojamo kodo ilgis yra 33 baitai.
  • Įspėjimo santraukos parametrai – 32 baitai.
  • Rozmir už zamovchuvannyam - 4 baitai.
  • Pakartojimų skaičius vieno ciklo ribose yra 64.
  • Algoritmo greitis – 140 Mb/s.

Kaip minėta anksčiau, SHA-256 protokolas yra pagrįstas Merkle-Damgard koncepcija, o tada, pirma, yra padalintas į blokus, o tada į gretimus žodžius.

Renkama informacija, kad praeitų atsitiktinis pasikartojimų diapazonas – 64 arba 80. Odos ciklą lydi žodžių transformacija. Sumos maišos kodas generuojamas po cob reikšmių subsumos.

Kriptovaliuta su SHA-256 algoritmu

Pažvelkime į skaitmenines valiutas, kurių kasimas pagrįstas SHA-256 algoritmo principais:

  • Bitcoin yra valiuta, kuri nereikalauja papildomo įvedimo, kaip ir anksčiau, tai populiariausias kriptovaliutų turtas.
  • Peercoin yra unikalus tuo, kad kodas yra sukurtas Bitcoin pagrindu, o mechanizmas yra pergalingas priemonės gynybai, o PoW - monetų platinimui.
  • Namecoin – technologija su kodu Palaipsniui gerinsiu saugumą, privatumą, decentralizaciją.
  • Unobtanium – pasižymi minimaliu svyravimu prieš infliaciją. „Unobtanium“ monetų vidobotui reikia apie 300 monetų.
  • „Deutsche eMark“ yra skaitmeninė priemonė įvairiam turtui, pavyzdžiui, centams, perleisti. Keitimas vykdomas be tarpininkų.
  • BetaCoin yra tarptautinė mokėjimo sistema, kuri veikia tuo pačiu principu kaip ir Bitcoin sistema.
  • Joulecoin – užtikrina efektyviausią operacijų patvirtinimą, paremtą Bitcoin.
  • IXCoin yra dar vienas projektas, kurio pagrindas yra kodas, pagrįstas peer-to-peer principu.
  • – Blockchain platforma, jakų vynuogynai unikalaus turinio publikavimui.

Varto taip pat reiškia, kad SHA-256 algoritmas laimi Litecoin sistemoje, bet ne subprogramoje. Kasybai yra įdiegtas Scrypt protokolas.

Kriptovaliutų kasimas pagal SHA-256 algoritmą

Kažkodėl norint gauti monetų, kurių sistemos naudojamos šiam protokolui, galima trimis būdais:

  • ASIC.

Kasybos lankstumas be vidurio priklauso nuo to, ar yra būdas rasti kriptovaliutą. Tačiau bet kuriuo atveju pats ASIC priedas pasižymi didžiausiu efektyvumu, kurio galvutė yra nepaprastai didelė.

Vidutinis ASIC kalnakasys kainuoja apie 100 tūkstančių rublių (Asic Miner AVALON 821), tačiau galima įsigyti ir brangesnių modelių, kurių kaina gali siekti milijoną rublių (Asic Miner BITFURY B8 16NM 50 TH/S) .

Kalbant apie kriptovaliutos vidoboot procesoriuose, toks metodas yra mažiausiai efektyvus. Ypač kalbant apie skaitmeninę valiutą Bitcoin.

Tinkamiausias sprendimas yra vaizdo plokštės. Vidutinis sėdmenų fermi variantas yra 1000–2000 USD. Kaip išsirinkti vaizdo plokštę kriptovaliutų vaizdo stendui pagal SHA-256 algoritmą?

Jei kalbate apie Nvidia, tada geriausi sprendimai tapti vaizdo plokšte (1400 MH/s). Akivaizdu, kad AMD nėra tokio dalyko kaip nenutrūkstamas konkurentas, todėl kasybai naudojamos visos Vega serijos kortelės. Radeon RX Vega vaizdo adapteris užtikrina kasybą 1200 MH/S greičiu. Kitas dalykas, kurį reikia laimėti, turi tokį patį turtą.

Jei ieškote pigesnio varianto, tokiu atveju galite gauti Radeon 7970, todėl matysite iki 800 MH/s. Nepamirškite, kad vaizdo plokštei ūkiui pradėti reikės daugiau įrangos, pavyzdžiui, aušinimo radiatorių, gyvenamojo bloko, operatyvioji atmintis ir kt.

Visnovok

Tai viskas, ką kalnakasiai turi žinoti apie SHA-256 algoritmą. Akivaizdu, kad daugelis šiuolaikinių kriptovaliutų yra pagrįstos Scrypt protokolu, o populiariausios monetos (BTC) kasimas, kaip ir anksčiau, vadovaujasi šiuo principu.

Kam skirtas SHA - 256?

SHA 256 – saugaus maišos algoritmo santrumpa – nėra populiarus kriptografinė maišos algoritmas, suskaidantis Nacionalinio saugumo agentūrą – JAV Nacionalinio saugumo agentūrą. SHA-256 užduotis grindžiama tuo, kad reikia sugeneruoti duomenų rinkinį su fiksuota verte, kad jis veiktų kaip identifikatorius tsikh danikh.

Otrimane vertės lyginamos su oficialių duomenų dublikatais, nes jų neįmanoma atimti. Pagrindinė algoritmo įjungimo sritis yra darbas su įvairiais priedais ar paslaugomis, susijusiais su informacijos apsauga, išjungimu ir otrimala. platesnis. Ji taip pat laimi kaip kriptovaliutų gavybos technologija.

Šis algoritmas priklauso SHA-2 šifravimo algoritmų grupei, kuri buvo sukurta remiantis SHA-1 algoritmu, kuris pirmą kartą buvo sukurtas 1995 m., skirtas naudoti civiliniams tikslams. Pats SHA-2 buvo suskaidytas JAV Nacionalinio saugumo agentūros 2002 m. pavasarį. Trejiems metams JAV NSA išdavė patentą naudoti SHA technologiją civiliniuose projektuose.

2012 m. Nacionaliniame standartų ir technologijų institute buvo atliktas algoritmo atnaujinimas: SHA - 3. Metams naujasis algoritmas buvo priimtas kaip supaprastintas pagrindinis SHA - 2 algoritmas, tačiau jis jau pasenęs, tačiau SHA - 1 vis dar laimi.

Maiša – duomenų kiekis, neužšifruotas naudojant klasikinę rozumіnni technologiją, tai yra neįmanoma iššifruoti duomenų iš grąžinimo knygos. Tse vienpusis šifravimas bet kokiam duomenų skaičiui. Visi SHA algoritmai pagrįsti Merkle-Damgard metodu: duomenys suskirstomi į lygias grupes, kurių oda turi praeiti per vienpusio išspaudimo funkciją. Po kurios dozhina duomenys keičiasi.

Šis metodas turi du reikšmingus pranašumus:

  • greito šifravimo praktiškai neįmanoma iššifruoti be raktų;
  • minimali kolizmų atsiradimo rizika (tie patys vaizdai).

Labiau pergalingas

Šiandieninis odos įsilaužėlis Merezhi, žinantis chi, įsilaužėlis SHA-256: SSL saugumo sertifikatas, savotiškas svetainės užgrobimas, įskaitant SHA-256 algoritmą. Tai būtina siekiant sukurti ir autentifikuoti saugomą z'ednannyą su svetaine.

Plius SHA – 256

SHA-256-self plėtiniai kitų vidurio kasybos algoritmas. Vіn įrodė esąs stiprus kaip blogis (dėl retų gedimų) ir efektyvus algoritmas tiek kasybai, tiek kitiems tikslams.

Minus SHA – 256

Golovny nedolіkom SHA - 256 є joga kontroliuojama kalnakasiams: didžiausių skaičiavimo spaudimų sąrašai atima didžiąją dalį kriptovaliutos, įskaitant vieną esminis kriptovaliutų principai decentralizacija.

Po to, kaip puikūs investuotojai, jie pradėjo investuoti centus į pramoninės bitkoino kasybos skaičiavimo spaudimą, padidėjo bagatoriaus kasybos lankstumas ir pradėjo didėti vinatkovijos skaičiavimo įtampa. Kituose protokoluose, moderniuose ir „įkalintuose“ kriptovaliutų gavyboje, tokių kaip „Scrypt“ pakeitimų yra nedaug. Nepriklausomai nuo tų, kurie šiandien SHA-256 užima didesnę kriptovaliutų rinkos dalį, mes sušvelninsime savo įtaką, padidindami naštą dėl daugiau vogtų ir paslydusių protokolų.

Po vienos valandos SHA-1 algoritmai nustojo suteikti reikiamą patikimumo lygį, nes jie nepatvirtina susidūrimų. SHA-256, kaip ir SHA-512, yra saugesnis trūkumo atveju, tačiau kaltės nepajudinamumas išlieka.

Kriptovaliutos Wiki

Kasyba naudojant SHA – 256

Kasyba naudojant SHA - 256, kaip ir bet kurį kitą algoritmą - atrodo, kad visas procesas yra sulankstomas. kriptografinė užduotis, kaip programa generuoja kasybai pagal ankstesnių blokų duomenis.

Yra trys kasybos būdai naudojant skirtingas SHA-256 funkcijas:

  • CPU (centrinis procesorius);
  • GPU (grafinis procesorius);
  • specializacijų Procesorius: ASIC.

Kasybai maiša yra pergalių suma, kaip jau esamų blokų identifikatorius ir naujų kūrimo remiantis ankstesniais blokais. Kasybos procesas rodomas sąsajoje „priimta f33ae3bc9 ...“. De f33ae3bc9 – tse maiša – suma, duomenų dalis, pripažino už iššifravimą. Pagrindinis blokas sudarytas iš daugybės panašių maišų – suma.

Tobto, kasyba su SHA algoritmu - 256 є nepriekaištingas teisingos maišos reikšmės parinkimas – suma, skaičių surašymas, kad būtų sukurtas naujas blokas. Kuo didesnis jūsų skaičiavimo spaudimas, tuo didesnė tikimybė rasti tinkamą bloką: įvairių maišos sumų rūšiavimo greitis slypi spaudimuose.

Kreipkitės į tuos, kuriuos Bitcoin ragina pagal SHA - 256 algoritmą konkurencingas naujų poreikių gavyba didelės stingdančios įtampos regione. Todėl bitkoino gavybai jau seniai buvo tobulinama „ASIC“ gamyba – taikymui specifinis integrinis grandynas, t.y. e) specialios paskirties integrinis grandynas. ASIC leidžia bitkoinus ir kitas kriptovaliutas išgauti naudojant SHA-256 algoritmą turtingiau, efektyviau ir pigiau.

Kaip kriptovaliutos įsilaužia į algoritmą SHA - 256

SHA - 256 yra klasikinis kriptovaliutų algoritmas: pagrindinė kriptovaliuta Bitcoin buvo įkvėpta naujai. Matyt, bitkoinų šakutėse nugali tas pats algoritmas: Bitcoin Cash, Gold, Diamond.

Krim juos, SHA - 256 taip pat laimėjo:

  • Steemit;
  • DigiByte;
  • peercoin;
  • vardo moneta;
  • Teckcoin;
  • Ocoin;
  • Zetacoin;
  • emercoin.

Taip pat SHA-256 algoritmas yra pergalingas kaip Litecoin kriptovaliutos subprograma, o pagrindinis kasybos algoritmas yra Scrypt.

Didėjant kriptovaliutos populiarumui, vis daugiau žmonių pradėjo ją priimti kaip perspektyvią finansinę priemonę. Prote, mažai kas įsitraukia, kokią vertę jie atstovauja mokslo ir technologijų pažangai. Norint suprasti šio reiškinio esmę, būtina suprasti įvairią kriptografinę informaciją, taip pat nežinomas ir slaptas SHA-256 kodo santrumpas. Apie tai ir „timetsya“ dabartiniame straipsnyje.

Kas yra kasyba?

Kasyba yra pagrindinis bet kokios rūšies skaitmeninės valiutos mechanizmo sandėlis. Dії polagaє principas grupuojant pagal kalnakasius, kad operacija būtų užbaigta viename bloke, kuris jau buvo neasmeniškai pakeistas, kad būtų įdiegtas raudonas maišos kodas, leidžiantis specialius pagalbininkus. Tarsi pastebima ta pati vertė, blokas yra mano ir pridedamas prie monetos grandinės. Tokia skaičiavimo veikla nesuteikia jokio ėsdinimo, nusikaltimo skatinant reikiamo bloko kartos lankstymą. Kita vertus, koristuvachi e-valiutos varpeliai ir švilpukai gali būti įskiepyti, kad jų maidančikas nepriims kontrolės ir centralizacijos.

Standartinė maišos funkcija priima bloką kaip įvestį dainavimo informacija, pamatęs išeinant tą neįsivaizduojamą prasmę. Jis suskaidomas taip, kad nėra optimalaus būdo žinoti reikiamą indikatorių, reikia kartoti ir kartoti paiešką, kol rasite tinkamą maišos kodą.

Vienas iš populiariausių protokolų yra SHA-256. Garsiausia pirmoji kriptovaliuta pasaulyje yra Bitcoin. Be to, saugumo pagerėjimas prilygsta 2 kartus paleidžiamam algoritmui ir jau vadinamas subvertuotu.

„Bitcoin“ maišos taikymo kriterijai reikalauja „0“ skaičiaus vienai burbuolei. Taip pat svarbu parodyti panašią reikšmę, kaip, pavyzdžiui, įvedant automobilio numerį arba stilingą numerį, kuris baigiasi pora 0. Suprask, maišos funkcijai jis labiau sulankstomas. Tam tikrą valandą teisinga vertė gali apimti maždaug 17 burbuolių nulių, todėl tik vienas iš 1,4, padaugintas iš 10, 20 žingsnių. Rungtynių vedimas, žinant panašų maišą yra daug tiksliau, žinant tą pačią maišą visame planetos nežinomos masės pasaulyje.

Agentūra sukūrė SHA-256 algoritmo pašto versiją Nacionalinė apsauga JAV 2002 m. pavasaris. Po kelių mėnesių Nacionalinis metrologijos universitetas paskelbė naują šifravimo protokolą FIPS PUB 180-2, priimtą federaliniu lygiu, kad būtų galima saugiai apdoroti duomenis. Vzimku 2004 roku vіn popovnivsya kita algoritmo versija.

Ateinančius 3 metus NSA išdavė SHA 2 kartos patentą pagal nemokamą licenciją. Tas pats sukėlė technologijų sąstingį civilinėse srityse.

Gaukite pagarbą! Baigti cicavia faktas: odinė koristuvach Viso pasaulio voras, pačiam to nežinant, valandai savo, internetas brangesnis už šį protokolą. Kai žiniatinklio išteklius apsaugo SSL saugos sertifikatas, jis automatiškai veikia pagal SHA-256 algoritmą.

Šis protokolas pagrįstas informacija, padalinta į dalis po 512 bitų (arba 64 baitus). Vіn rob її kriptografinis "zmіshuvannya", o tada vіd vіdє 256 bitų maišos kodas. Prieš sandėlį algoritmas patenka į vieną paprastą ratą, kuris kartojamas 64 kartus.

Be to, SHA-256 gali pasiekti blogų techninių parametrų:

  • Bloko dydžio indikatorius (baitai) – 64.
  • Apriboti leistiną plėtinio ilgį (baitais) – 33.
  • Privalomo pranešimo santraukos charakteristika (baitai) – 32.
  • Standartinis žodžio dydis (baitas) – 4.
  • Vidinės stoties ilgio parametras (baitai) yra 32.
  • Iteracijų skaičius per vieną ciklą yra mažesnis nei 64.
  • Protokolu pasiekiamas greitis (MiB/s) yra maždaug 140.

SHA-256 algoritmo darbas pagrįstas Merkle-Damgard sufleravimo metodu, galima tam tikru mastu burbuolės indeksą po pakeitimo suskirstyti į blokus, o ti savaip į 16 žodžių.

Duomenų gavimas, norint pereiti per kilpą, kuri yra 80 arba 64 iteracijos. Odinė stadija pasižymi maišos paleidimu iš saugojimo blokų. Keletą jų apdoroja funkcijos įrankiai. Tada pamačius teisingą maišos kodo nurodymą rezultate, pridedami transformacijos rezultatai. Kuriant cherd bloką, nustatomos priekinės dalies reikšmės. Norint juos perdaryti okremo vienu būdu, nepasiduodama.

Taip pat galite atspėti 6 bitų operacijas, pagrįstas tokiu funkciniu protokolu:

  • "ir" - bitinė operacija "I";
  • "shr" - perkelkite reikšmę reikiamu bitų skaičiumi į dešinę;
  • "puviniai" - komanda yra panaši pagal priekį, su tuo pačiu skirtumu, kuris sukelia ciklišką destrukciją;
  • "||" arba sujungimas – linijinės struktūros dalių, dažniausiai eilių, sujungimo operacija;
  • "xor" - komanda pasirinkti "ABO";
  • „+“ – įprasta sulankstymo operacija.

Kaip galite, atlikite tipinį bet kurio šifravimo algoritmo operacijų rinkinį.

Norint nustatyti algoritmo reikšmę, būtina grįžti prie kriptoanalizės. Tsya disciplina žinoti informacijos iššifravimo metodus, nereikalaujant specialaus rakto.

Pirmuosius SHA-256 tyrimus apie keistenybių buvimą klastotės pradėjo atpažinti 2003 m. Tuo metu protokole malonės nebuvo.

Prote, jau 2008 m. viduryje ekspertų grupei iš Indijos pavyko išsiaiškinti 22 SHA architektūros šeimos iteracijų skaičius. Po kelių mėnesių siūlymo buvo sukurtas sutrumpintos protokolo versijos susidūrimų sprendimo metodas, o tada 31 pakartojimai, kai maišos yra ne tarpinis SHA-256.

Per mažiau nei valandą, norint išanalizuoti gerklės funkciją, būtina patikrinti iki 2 skirtingų priepuolių tikslumą:

  1. Prototipo buvimas yra yogo maišos kodo burbuolės pranešimo iššifravimas. Opirnіst šio tipo vplyu garantuoja geriausią transformacijos rezultatų gynybą.
  2. Rebuvannya kolіzіy - panašūs išvesties duomenys su skirtingais įvesties parametrais. Kalbant apie atsparumą tokiai įvairovei, jis yra tiesioginiame pūdyme. Elektroninis parašasіz vekoristannyam faktinis protokolas.

Kitos kartos SHA algoritmo kūrėjai melavo, kad naujasis šifravimo mechanizmas veikia remiantis kitais principais. Taigi 2012 metų rudenį pasaulyje pasirodė trečiosios serijos „Keccak“ protokolas.

Praktiškai zastosuvannya ir technologijų sertifikavimas

JAV valstijų įstatymai leidžia naudoti SHA-256 ir kitus panašius maišos metodus tose pačiose valstijos informacijos apsaugos programose. Kita vertus, algoritmą blokuoti leidžia komercinės įmonės.

Svarbu! Todėl nieko stebėtino faktas, kad šis protokolas naudojamas pirmajai skaitmeninei valiutai. Naujų bitkoinų monetų išleidimas nustatomas pagal svarbą esamai SHA-256 architektūrai.

Kaip ji telpa į specializuotus vidobotku kriptovaliutos ūkinius pastatus? Odos nėrimas pagal šį algoritmą gali pasiekti paprastą išvaizdą – primityvią bitų operaciją ir 32 bitų lankstymą (nesvarbu, ar tai būtų kažkas, kas išmano schemų pagrindus, galite tai lengvai pamatyti, tarsi žiūrėtumėte į koridorių). Ir už tai efektyvus darbas asic-miners tereikia keliolikos blokų ir žingsnių iki algoritmo.

Priešingai Bitcoin, Litecoin, Dogcoin ir kitoms panašioms „monetoms“, naudojamas šifravimo protokolas Scrypt, kuris suteikia sulankstymo funkciją. Tsey algoritmas vykdant veiklą, reikia 1024 skirtingų maišos funkcijų reikšmių, o paskutinės išvestyje imame rezultatą. „Zavdyaki tsomu“ protokolui įgyvendinti reikės beprotiškai didelio spaudimo.

Visnovok

Galima sakyti, kad SHA-256 protokolas atrodo labai paprastas ir šiandien nėra specialių prietaisų (vadinamųjų minerių), kurie galėtų sėkmingai apeiti jogą. Nuo tada prireikė minėti ant procesoriaus arba pasirinkti ūkius iš vaizdo plokščių, ASIC priedai leidžia jų meistrams uždirbti daugiau pinigų. Tačiau kuris turi Zvorotny Bik. Renkantis kalnakasius, siekiant centralizuoti kriptovaliutą, taip pat būtina sukurti naujus maišos protokolus. Tapęs tokiu algoritmu, Scrypt yra kur kas pažangesnis mechanizmas, reikalaujantis didelio produktyvumo ir teoriškai leidžiantis pritaikyti specialias ypatingų pranašumų programas.

Iš paprasto koristuvach padėties nėra skirtumo tarp SHA-256 ir Scrypt protokolų. Skaitmeninę valiutą galite išgauti naudodami kompiuterį arba bet kurio protokolo ūkį.

Algoritmas SHA-256 šiandien skolinasi daugiau nei 40% visos rinkos, prote, laikysenos ir kt. Negaliu sulaikyti smarvės, kai smaugiau šlovintą įpėdinį. Taigi iš poros naujų reikia atspėti apie ypač „miner-proof“ Dagger protokolą, kuris pasirenkamas laimėti decentralizuotame Maidano efiriume. Galbūt aš pats perimsiu lyderio lazdelę maišos kambaryje ir SHA-256 erdvėje.

, "Saugios maišos standartas (SHS)", JAV. Prekybos departamentas, 2012 m. kovo mėn

Sąlygos:
FIPS federalinis informacijos apdorojimo standartas (federalinis informacijos apdorojimo standartas).
SHA saugus maišos algoritmas (Strong Hash Algorithm).
Žodis - unsigned pakeičiamas į 32 bitus (4 baitai) arba 64 bitus (8 baitai), kad sumažėtų taip pat, kaip ir SHA algoritmas.

SAUGUS HASH STANDARTAS (kriptografinių funkcijų SHA-1 ir SHA-2 šeima)

Šeima kriptografines funkcijas SHA padalijimas iš dviejų padauginimų: ne tarp algoritmas SHA-1(paskelbta 1995 m. rotsi – FIPS PUB 180-1) ir algoritmų serija pagal pavadinimą SHA-2(paskelbta 2002 m. – FIPS PUB 180-2, atnaujinta 2008 m. – FIPS PUB 180-3): SHA-224, SHA-256, SHA-384, SHA-512; Algoritmai buvo pridėti prie FIPS PUB 180-4 2012 m SHA-512/224і SHA-512/256. Mes žiūrime į FIPS PUB 180-4 standartą, kuris apima visą SHA-1 ir SHA-2 maišos funkcijų šeimą.

Šis standartas apibrėžia šiuos maišos algoritmus: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224і SHA-512/256, kuris turėtų būti skaičiuojamas pagal skaitmeninių duomenų išvaizdą (apžvalgą). Kaip įvesti maišos algoritmą norint pateikti mokestį, nesvarbu, ar tai būtų data, ar mažiau, mažesnis 264 bitai (skirta SHA-1, SHA-224і SHA-256) arba mažiau, mažesnis 2128 bitai (skirta SHA-384, SHA-512, SHA-512/224і SHA-512/256), tada bus pateiktas rezultatas, rangas santraukos arba maišos vertės pranešimas. Informacijos maišos reikšmės diapazonas yra nuo 160 iki 512 bitų (arba nuo 20 iki 64 baitų), kad būtų pasirinktame algoritme. Algoritmai SHA skamba pergalingai kartu su kitais kriptografiniais algoritmais, pavyzdžiui, su algoritmais Elektroninis parašas arba maišos valandai naudojant autentifikavimo patvirtinimo raktą (HMAC), arba neigiamų skaičių konjugavimui (bitui).

Maišos algoritmai, kurie yra įtraukti į šį standartą, vadinami saugiais tiems, kurie po nurodyto algoritmo negali būti toliau skaičiuojami: 1) peržiūrėkite įspėjimus pagal konkretų įspėjimų santrauką, kitu atveju 2) žinoti du skirtingus pranešimus, kurie gali būti ta pati pranešimo santrauka (žinokite palyginimą). Be-yakі zm_ni į povіdomlennі, s dzhe vysokoj ymovirnіstyu, gamina iki skirtingų maišos verčių. Įgaliojimo galia grindžiama skaitmeninių parašų konvertavimo sukūrimu, patvirtinimo autentifikavimu ir atvirkštinių skaičių kūrimu.

Odos algoritmas susideda iš dviejų etapų: Priekinė apdaila kad maišos skaičiavimas. Priekinė apdaila apima Papildoma informacija, sulaužant papildomą priminimą M- bitų blokai, і pradinių verčių nustatymas, kurie laimi skaičiuojant maišą. Maišos apskaičiavimas skaičiuojamas iteratyviai M- papildomos informacijos bitų blokas ir įsilaužėlių funkcijos, konstantos ir operacijos su žodžiais, kad būtų galima gauti maišos reikšmę. Robotinės procedūros rezultatas yra maišos є santraukos apskaičiavimas.

Algoritmai, skirti atskirti maišos duomenų blokus ir eilutes bei maišos reikšmę – div. 1 lentelė.

Algoritmas Rozmir podomlennya (bitais) Rozmir blokas (bitais) Rozmir žodžiai (bitais) Rozmarinas informacijos santraukai (bitais)
SHA-1 < 2 64 512 32 160
SHA-224 < 2 64 512 32 224
SHA-256 < 2 64 512 32 256
SHA-384 < 2 128 1024 64 384
SHA-512 < 2 128 1024 64 512
SHA-512/224 < 2 128 1024 64 224
SHA-512/256 < 2 128 1024 64 256
Funkcijos

SHA-1 netiesinių funkcijų seka f 0 , f 1 ,..., f 79. Odos funkcija f t, de 0 ≤ t< 79 , veikia su trimis 32 bitų pakeitimais: x, y, і z, todėl pasukamas vienas 32 bitų žodis. SHA-1 algoritme nugali įžeidžiantis nelinijinių funkcijų rinkinys f t (x, y, z):
00 ≤ t ≤ 19Ch(x, y, z)
20 ≤ t ≤ 39Lygumas (x, y, z)= x XOR y XOR z
40 ≤ t ≤ 59Maj(x, y, z)
60 ≤ t ≤ 79Lygumas (x, y, z)= x XOR y XOR z

Būlio algebra.
Sugrąžinti pagarbą, kokia, pavyzdžiui, funkcija Ch galite pasakyti kitaip:
z XOR (x IR (y XOR z))
Rezultatas nesikeičia. Kituose algoritmo variantuose tokias parinktis galima naudoti.

SHA-224 ir SHA-256 naudojant nelinijines funkcijas:

Ch(x, y, z)= (x IR y) XOR (NE x IR z)
Maj(x, y, z)= (x IR y) XOR (x IR z) XOR (y IR z)

Sigma0(x)= ROTR(x, 2) XOR ROTR(x, 13) XOR ROTR(x, 22)
Sigma1(x)= ROTR(x, 6) XOR ROTR(x, 11) XOR ROTR(x, 25)

Delta0 (x)= ROTR(x, 7) XOR ROTR(x, 18) XOR SHR(x, 3)
Delta1 (x)= ROTR(x, 17) XOR ROTR(x, 19) XOR SHR(x, 10)


n bitas:
ROTR(x, n) = (x»n) | (x "(32-n))
SHR - zsuv dešinė ranka n bitas:
SHR(x, n) = x » n

SHA-384, SHA-512, SHA-512/224, SHA-512/384 netiesinių funkcijų skaičius:

Ch(x, y, z)= (x IR y) XOR (NE x IR z)
Maj(x, y, z)= (x IR y) XOR (x IR z) XOR (y IR z)

Sigma0(x)= ROTR(x, 28) XOR ROTR(x, 34) XOR ROTR(x, 39)
Sigma1(x)= ROTR(x, 14) XOR ROTR(x, 18) XOR ROTR(x, 41)

Delta0 (x)= ROTR(x, 1) XOR ROTR(x, 8) XOR SHR(x, 7)
Delta1 (x)= ROTR(x, 19) XOR ROTR(x, 61) XOR SHR(x, 6)

Žodžių operacijos (64 bitų).
ROTR – ciklinė zsuv dešinė ranka n bitas:
ROTR(x, n) = (x»n) | (x "(64-n))
SHR - zsuv dešinė ranka n bitas:
SHR(x, n) = x » n

Constanti

Constanti K t
00 ≤ t ≤ 19 0x5a827999
20 ≤ t ≤ 39 0x6ed9eba1
40 ≤ t ≤ 59 0x8f1bbcdc
60 ≤ t ≤ 79 0xca62c1d6

(Kaip tik valgė tave, žvaigždės atsirado iš skaičių, tada tai turėtų būti dzherelo:
0x5A827999 = $\sqrt(2) / 4$ , 0x6ED9EBA1 = $\sqrt(3) / 4$ , 0x8F1BBCDC = $\sqrt(5) / 4$ , 0xCA62C1D6 = $\sqrt(10) / 4 232).

64 konstantos (32 bitų žodžiai): K 0 , K 1 ... K 63. (Priedams: qi konstantos su pirmaisiais 32 pirmųjų 64 pirminių skaičių kubo šaknų nupjautų dalių bitais).

K = [
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
]

80 konstantų (64 bitų žodžiai): K 0 , K 1 ... K 79. (Priedams: qi konstantos su 64 pirmųjų 80 pirminių skaičių kubo šaknų trupmenomis).

K = [
0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118,
0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2,
0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694,
0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5,
0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4,
0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70,
0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df,
0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30,
0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8,
0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8,
0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3,
0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b,
0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b,
0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
]

Priekinė apdaila
1. Papildoma informacija

Meta zrobiti podomlennya dalijasi iš 512 arba 1024 bitų, deponuokite taip pat, kaip SHA algoritmą. Papildymą galima patikrinti prieš maišos skaičiavimo procedūrą arba maišos skaičiavimo procedūrą, prieš baigiant bloką (iv), kuris bus pakeistas.

M dorivnyuє l "vienas" k- taigi, rozmіr otrimannogo podomlennya buv 64-oji eilė yra mažesnė už 512 kartotinį ( l+1+k = 448 mod 512). Dali, prie galutinio rezultato pridedamas 64 bitų pranešimas l išorės pagalba M "abc" "vienas", tada 448 – (24+1) = 423 bitai «0» , ir, pavyzdžiui, 64 bitų pasaulio vaizdavimas 24 = 00 ... 011000. Rezultatas bus 512 bitų formos:

Priimtina, kad dovžina prisimenama M dorivnyuє lšiek tiek. Priminimas iki galo "vienas", o tada nulis – ties skaičiumi k- taigi, norint išplėsti pašalintų raidžių skaičių 128 eilutėmis mažiau nei 896 kartotiniu ( l+1+k = 896 mod 1024). Dali, prie galutinio rezultato pridedamas 128 bitų pranešimas l išorės pagalba M. Pavyzdžiui, (ASCII tekstas) turime priminimą "abc" dozhinoy 8 * 3 \u003d 24 bitai. Dodaemo į podomlennya "vienas", tada 896 – (24+1) = 871 bitas «0» , ir, pavyzdžiui, 128 bitų pasaulio vaizdavimas 24 = 00 ... 011000. Rezultatas bus 1024 bitų formos:

2. Papildomo priminimo nutraukimas M- bitų blokai

N M- bitų blokai.

Papildoma informacija suskirstyta į Nr.512- bitų blokai: M(1), M(2) ... M(N). Nes 512 bitų gali būti konvertuojami į 16 (šešiolika) 32 bitų žodžių, tada pirmieji 32 bitai i M 0 (i), ateina 32 bitai M 1 (i), ir eikime prie M 15(i).

Papildoma informacija suskirstyta į N 1024- bitų blokai: M(1), M(2) ... M(N). Nes 512 bitų gali būti konvertuojami į 16 (šešiolika) 64 bitų žodžių, tada pirmieji 64 bitai i blokas M 0 (i), ateina 64 bitai M 1 (i), ir eikime prie M 15(i).

3. Pradinių reikšmių nustatymas

Prieš pradedant maišos apskaičiavimo procedūrą, algoritmas nustato pradines reikšmes H. Rozmir ta kіlkіst slіv H depozitas pagal pasirinktą algoritmą.

Chotiri 32 bitų žodžiai.
H0 = 0x67452301
H1 = 0xefcdab89
H2=0x98badcfe
H3 = 0x10325476
H4 = 0xc3d2e1f0

Visiems 32 bitų slіv.

0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4)

Visiems 32 bitų slіv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19)

(Priedams: qi reikšmės su pirminiais 32 pirminių skaičių kvadratinės šaknies trupmeninių dalių bitais - eiliniai skaičiai: pirmieji 8).

Visiems 64 bitų slіv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17,
0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a8768581511,
0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4)

(Priedams: qi reikšmės su pirmųjų skaičių kvadratinės šaknies trupmeninių dalių pirmaisiais 64 bitais - eiliniai skaičiai: nuo 9 iki 16).

Visiems 64 bitų slіv.
H0, H1, H2, H3, H4, H5, H6, H7 = (


(Priedams: qi reikšmės su pirminiais 64 pirminių skaičių kvadratinės šaknies trupmeninių dalių bitais - eiliniai skaičiai: pirmieji 8).



H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179)











Visiems 64 bitų slіv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x8C3D37C819544DA2, 0x73E1996689DCD4D6, 0x1DFAB7AE32FF9C82,
0x679DD514582F9FCF, 0x0F6D2B697BD44DA8, 0x77E36F7304C48942,
0x3F9D85A86A1D36C8, 0x1112E6AD91D692A1)

„SHA-512/t“ yra įprastas t bitų maišos funkcijos, pagrįstos SHA-512, pavadinimas, kurio rezultatas sutrumpinamas iki t bito. T-bit maišos funkcijos skin versijai reikės skirtingų inicijavimo reikšmių. Kam jis įvestas speciali procedūra SHA-512/t burbuolės reikšmės priskyrimas konkrečiam variantui t.

SHA-512/t burbuolės vertės išvedimo procedūra.
1. SHA-512 algoritmo burbuolės reikšmės H paėmimas.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179)

2. Robimo atlikite tokį skaičiavimą:
H0' = H0 XOR 0xA5A5A5A5A5A5A5A5
H1' = H1 XOR 0xA5A5A5A5A5A5A5A5
H2' = H2 XOR 0xA5A5A5A5A5A5A5A5
H3' = H3 XOR 0xA5A5A5A5A5A5A5A5
H4' = H4 XOR 0xA5A5A5A5A5A5A5A5
H5' = H5 XOR 0xA5A5A5A5A5A5A5A5
H6' = H6 XOR 0xA5A5A5A5A5A5A5A5
H7' = H7 XOR 0xA5A5A5A5A5A5A5A5

3. Pasirenkamas maišos tipas eilutės SHA-512 ("SHA-512/t") (pavyzdžiui, t gali būti "224" arba "256") su cob reikšmėmis H'. Maišos reikšmė i bus SHA-512/t algoritmo cob vertė:
H, kai SHA-512/224 = SHA512 (H', "SHA-512/224")
H, kai SHA-512/256 = SHA512 (H', "SHA-512/256")

Visiems 64 bitų slіv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x22312194FC2BF72C, 0x9F555FA3C84C64C2, 0x2393B86B6F53B151,
0x963877195940EABD, 0x96283EE2A88EFFE3, 0xBE5E1E2553863992,
0x2B0199FC2C85B8AA, 0x0EB72DDC81C52CA2)

Maišos skaičiavimas

Algoritme "+" vіdbuvaetsya 2 moduliui 32 .

Jei i = 1 iki N:
{
1. i
M 0 (i)įjungta M 15(i))
80 sliv rozmirom 32 rangai (s W0įjungta W 79):
W t = M t kai t = 0..15
W t = ROTL(W t-3 XOR W t-8 XOR W t-14 XOR W t-16, 1) kai t = 16..79
(Cicavo, kaip dėl SHA specifikacijos burbuolės varianto (SHA-0 algoritmas) bu
ciklinis skambutis į kairę ROTL(x, 1))

2. Iš pradžių pakeiskite a, b, c, d, e.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)

3. Įspaudimo funkcijos galvos kilpa
Jei t = 0–79
TEMP= ROTL(a, 5) + f t (b, c, d) + e + W t + K t
e=d
d=c
c= ROTL(b, 30)
b = a
a = TEMP

4.
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
}

Gauta maišos reikšmė yra 160 bitų santrauka:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N)(5 eilutės * 32 bitai = 160 bitų)

Žodžių operacijos (32 bitų).
ROTL – ciklinis skambutis į kairę n bitas:
ROTL(x, n) = (x "n) | (x" (32-n))

Algoritme "+" vіdbuvaetsya 2 moduliui 32 .

Jei i = 1 iki N:
{
1. i-asis palaikymo blokas indukuoto algoritmo pagalbai
transformuoti iš 16 žodžių į 32 kategorijų pasaulį (nuo M 0 (i)įjungta M 15(i))
64 žodžiai turi 32 eiles (z W0įjungta W 63):
W t = M t kai t = 0..15
W t \u003d W t-16 + Delta0(W t-15) + W i-7 + Delta1(W t-2) kai t = 16..63

2.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)
f=H5(i-1)
g=H6(i-1)
h=H7(i-1)

3. Įspaudimo funkcijos galvos kilpa
Jei t = 0–63
TEMP1=h+ Sigma1(e) + Ch(e, f, g) + Wt + Kt
TEMP2 = Sigma0 a)+ Mjr(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = a
a = TEMP1 + TEMP2

4. Svarbi tarpinė maišos reikšmė
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
H5(i) = (H5(i-1) + f)
H6(i) = (H6(i-1) + g)
H7(i) = (H7(i-1) + h)
}

Gauta maišos reikšmė yra 256 bitų santrauka:
(8 eilutės * 32 bitai = 256 bitai)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Algoritmas vėl veiks su SHA-256 algoritmu. Neabejotinai reikšmėse, kurios inicijuojamos, H (div. didesnis) ir kaip gaunama maiša. Nes Mes paimsime 256 bitų pranešimo santrauką, paimsime tik pirmuosius 224 bitus, kad gautume galutinę maišos reikšmę:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N)(7 eilutės * 32 bitai = 224 bitai)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Algoritmas panašus į SHA-256, tik visi žodžiai keičiasi 64 bitų.
Algoritme "+" priskirtas 2 moduliui 64 .

Jei i = 1 iki N:
{
1. i-asis palaikymo blokas indukuoto algoritmo pagalbai
transformuoti iš 16 žodžių į 64 kategorijų pasaulį (nuo M 0 (i)įjungta M 15(i))
80 sliv rozmirom 64 rangai (s W0įjungta W 79):
W t = M t kai t = 0..15
W t \u003d W t-16 + Delta0(W t-15) + W i-7 + Delta1(W t-2) kai t = 16..79

2. Iš pradžių pakeiskite a, b, c, d, e, f, g, h.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)
f=H5(i-1)
g=H6(i-1)
h=H7(i-1)

3. Įspaudimo funkcijos galvos kilpa
Jei t = 0–79
TEMP1=h+ Sigma1(e) + Ch(e, f, g) + Wt + Kt
TEMP2 = Sigma0 a)+ Mjr(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = a
a = TEMP1 + TEMP2

4. Svarbi tarpinė maišos reikšmė
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
H5(i) = (H5(i-1) + f)
H6(i) = (H6(i-1) + g)
H7(i) = (H7(i-1) + h)
}

Gauta maišos reikšmė yra 512 bitų pranešimo santrauka:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N) || H7(N)(8 eilutės * 64 bitai = 512 bitų)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Algoritmas vėl veiks su SHA-512 algoritmu. Neabejotinai reikšmėse, kurios inicijuojamos, H (div. didesnis) ir kaip gaunama maiša. Nes paimsime 512 bitų pranešimo santrauką, paimsime tik pirmuosius 384 bitus, kad gautume galutinę maišos reikšmę:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N)(6 eilutės * 64 bitai = 384 bitai)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Algoritmas vėl veiks su SHA-512 algoritmu. Neabejotinai reikšmėse, kurios inicijuojamos, H (div. didesnis) ir kaip gaunama maiša. Nes mums reikia 512 bitų santraukos, imame tik pirmuosius 224 bitus, kad gautume galutinę maišos reikšmę:

H0(N) || H1(N) || H2(N) || pirmieji 32 bitai H3 (N)(3 žodžiai * 64 bitai + 32 bitai = 224 bitai)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Algoritmas vėl veiks su SHA-512 algoritmu. Neabejotinai reikšmėse, kurios inicijuojamos, H (div. didesnis) ir kaip gaunama maiša. Nes paimsime 512 bitų pranešimo santrauką, paimsime tik pirmuosius 256 bitus, kad gautume galutinę maišos reikšmę:

H0(N) || H1(N) || H2(N) || H3(N)(4 žodžiai * 64 bitai = 256 bitai)
Pagarba: odos žodžio „big-endian“ baitų tvarka

Kriptografiniai primityvai
Algoritmai su atviru raktu RSA DSA
Srautiniai šifrai RC4
Maišos funkcijos

SHA-256 yra vienpusė funkcija, skirta konvertuoti skaitmeninį bitkoiną į fiksuoto ilgio (256 bitai, 32 baitai) iš įvesties duomenų iki 2,31 eksabaitų (2⁶⁴ bitų). Saugaus maišos algoritmo 2 versija), kurį NSA paskelbė 2002 m.

Šeimos maišos funkcijos SHA-2 remiantis Merkle-Damgard struktūra.

Savaitinis pranešimas po papildymo yra padalintas į blokus, odinis blokas 16 eilučių. Algoritmas perduoda odos atnaujinimo bloką per 64 iteracijų ciklą. Odos iteracijoje transformuojami 2 žodžiai, transformacijos funkcija nustatoma į kitus žodžius. Skino bloko apdorojimo rezultatai sumuojami, suma yra maišos funkcijos reikšmės. Oscilki іnіtsіalіzаtsіya іnіtsіalіzії іn іnіtsіalіzії іn іnіѕtіїє іѕ wіll blyаєєєєєє є єєєє "є є є є ії ії ії ії іnіtsіalіzіtsіya vnutrishny Stana viroblyaєєtsya sukelti obroblyat prednego blokas, neįmanoma apdoroti blokus lygiagrečiai. Grafiškai parodyta viena duomenų bloko apdorojimo iteracija:

Šiuo metu yra kolių konstravimo metodų iki 31 iteracijos. Per algoritminį panašumą SHA-2 h SHA-1 ir esant likusiems galimiems neatitikimams, buvo nuspręsta, kad SHA-3 turėtų būti pagrįstas kitu algoritmu. 2012 m. liepos 2 d. NIST patvirtino Keccak SHA-3 algoritmą.

Pseudokodo rozrahunka vіdbitka vvglyadі algoritmas:

Paaiškinimas:
Visi pakeitimai yra nepasirašyti, gali išsiplėsti 32 bitais ir yra sumuojami po 232 modulio skaičiuojant
žinutę- vyhidne dviykove podomlennya
m- Pakeisti pranešimai Pakeitimų inicijavimas
(pirmieji 32 bitai šautuvų dalelės kvadratinė šaknis iš pirmųjų aštuonių pirminių skaičių [tipas nuo 2 iki 19]):
h0:=0x6A09E667
h1:=0xBB67AE85
h2:=0x3C6EF372
h3:= 0xA54FF53A
h4:=0x510E527F
h5:=0x9B05688C
h6:=0x1F83D9AB
h7:=0x5BE0CD19 Nuolatinis stalas
(pirmieji 32 bitai šautuvų dalelės kubo šaknis iš pirmųjų 64 pirminių skaičių [tipas nuo 2 iki 311]):
k :=
0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 Priekinė apdaila:
m:= žinutė ǁ [ vienas ritmas]
m:= m ǁ , de k- mažiausiai man nežinomas skaičius, toks
(L + 1 + K) mod 512 = 448
m:= mǁ Dovžina(pranešimas) – 64 bitų skaičiaus bitų išvesties pranešimo ilgis baitų tvarka nuo didelio iki mažo Šiuos pranešimus apdoroja šios 512 bitų dalys:
padalinkite pranešimus į shmatki 512 bitų
dėl skin shmatti shmatok 16 zavdovka 32 bitų eilučių (baitų tvarka nuo vyresniojo iki jauno žodžio viduryje): w Sukurti papildomus 48 žodžius:
dėl i peržiūrėti 16 prieš 63
s0:= (w rotr 7) xor(w rotr 18) xor(w Shr 3)
s1:= (w rotr 17) xor(w rotr 19) xor(w Shr 10)
w[i] := w + s0 + w + s1
Papildomų pakeitimų inicijavimas:
a:=h0
b:= h1
c:=h2
d:= h3
e:= h4
f:= h5
g:= h6
h:= h7 Pagrindinė kilpa:
dėl i peržiūrėti 0 prieš 63
Σ0:= (a rotr 2) xor(a rotr 13) xor(a rotr 22)
Ma:= (a ir b) xor(a ir c) xor(b ir c)
t2:= Σ0 + Ma
Σ1:= (pvz rotr 6) xor(e rotr 11) xor(e rotr 25)
Ch:= (pvz ir f) xor ((ne e) ir g)
t1: = h + Σ1 + Ch + k[i] + w[i] h: = g
g:= f
f:= e
e:= d + t1
d:=c
c:=b
b:=a
a:= t1 + t2 Pridėkite paskutinę reikšmę prie anksčiau apskaičiuoto rezultato:
h0:= h0 + a
h1:= h1 + b
h2:= h2 + c
h3:= h3 + d
h4:= h4 + e
h5:= h5 + f
h6:= h6 + g
h7:= h7 + h Išimkite maišos verčių sumą:
diegti = maiša = h0 ǁ h1 ǁ h2 ǁ h3 ǁ h4 ǁ h5 ǁ h6 ǁ h7

Vikoristovuetsya algoritmas:

  • bitkoinų- kriptovaliutos emisija ieškant garsų su tomis pačiomis vertėmis
  • DNSSEC- Suvirškinti DNSRAKTAS
  • DSA- laimėti už elektroninio skaitmeninio parašo sukūrimą
  • IPSec- protokoluose ESPі IKE
  • OpenLDAP- slaptažodžių maišos
  • PGP- akį už elektroninio skaitmeninio parašo sukūrimą
  • S/MIME- peržiūrėti santrauką
  • SHACAL-2- bloko šifravimo algoritmas
  • X.509- laimėti elektroninio skaitmeninio parašo sertifikato sukūrimą
Gedimai