Sha 256 algoritmi oddiy so'zlar bilan. Mining uchun kripto-algoritmlarni tushuntiring. Ko'proq g'olib

Oleksandr Markov

SHA 256 qisqartmasi Secure Hashing Algoritm - NSA faksimillari tomonidan yaratilgan xesh so'rovi mexanizmini anglatadi. Algoritmning asosiy vazifasi tur ma'lumotlarini o'zgarmas qiymatga aylantirishdir, bu ma'lumotlarni identifikatsiyalash usullarini farqlash mumkin bo'lishi kerak.

Tashqi ko'rinish tarixi

Bu boshqa avlodning algoritmi bo'lib, uning vorisi - SHA-1 asosida yaratilgan bo'lib, u o'z-o'zidan 1995 yilda kengaytirilgan va fuqarolik maqsadlarida qo'llanilgan. Yangilangan versiya Nin_ mashhur algoritmi 2002 yilda Milliy xavfsizlik agentligi mutaxassislari tomonidan yaratilgan.

Uch yil o'tgach, patent paydo bo'ldi, bu menga fuqarolik maqsadlarida algoritmni yutish imkonini beradi. Ommabop mexanizmning uchinchi versiyasi 2012 yilda paydo bo'ldi va uni ishlab chiqish bilan Milliy standartlar agentliklarining mutaxassislari shug'ullanishdi. Aytgancha, SHA-3 o'zidan oldingilaridan ustun keladi.

O'zgartirilgan ma'lumotlarni dekodlashning iloji yo'q, xesh summasining bo'laklarini klassik talqin qilish jarayonida shifrlash jarayoni sifatida ko'rib bo'lmaydi. Bir tomonlama shifrlash algoritmi cheksiz miqdordagi axborotni qayta ishlaydi.

Varto buni mutlaqo hamma narsani belgilaydi asosiy versiyalari algoritm Secure Hashing algoritmi Merkle-Damgard tamoyiliga muvofiq yaratilgan: axborot teng toifalarga bo'lingan. Teri guruhi bir tomonlama ushlashga bo'ysunadi, undan keyin terining terisi sezilarli darajada o'zgaradi.

Bunday shifrlash usuli shaxsiy bo'lishi mumkin:

  • ma'lumotlarni siqish tezda amalga oshiriladi;
  • transformatsiya jarayonini kalitlarsiz amalga oshirish mumkin emas;
  • imovirníst ko'rinishi kolízyy zveda nanívets.

Texnik xususiyatlari

Ma'lumotlar uchun tayinlash protokoli, qismlarga bo'linish, umumiy teri - 64 bayt. Algoritm konsolidatsiyani ta'minlaydi, shundan so'ng 256 bitli kod e'lon qilinadi. Shifrlash texnologiyasi ko'rinishidan noqulay ko'rinadigan aylanaga asoslangan bo'lib, uning aylanishi 64 marta.

  • 64 bayt blok hajmi.
  • Shifrlanadigan kodning maksimal uzunligi 33 baytni tashkil qiladi.
  • Ogohlantirish hazm qilish parametrlari - 32 bayt.
  • Zamovchuvannyam uchun Rozmir - 4 bayt.
  • Bitta tsiklning chegaralarida takrorlash soni 64 ta.
  • Algoritmning tezligi 140 Mb/s.

Yuqorida aytib o'tilganidek, SHA-256 protokoli Merkle-Damgard kontseptsiyasiga asoslanadi, so'ngra birinchi navbatda bloklarga, keyin esa qo'shni so'zlarga bo'linadi.

Tasodifiy takroriy diapazondan o'tish uchun ma'lumot to'plash - 64 yoki 80. Teri aylanishi so'zlarning o'zgarishi bilan birga keladi. Subsum xesh kodi kob qiymatlarining yig'indisidan keyin hosil bo'ladi.

SHA-256 algoritmi bilan kriptovalyuta

Keling, qazib olish SHA-256 algoritmi tamoyillariga asoslangan raqamli valyutalarni ko'rib chiqaylik:

  • Bitcoin - bu qo'shimcha joriy etishni talab qilmaydigan valyuta, avvalgidek, u eng mashhur kriptoaktiv hisoblanadi.
  • Peercoin noyobdir, chunki kod Bitcoin asosida yaratilgan, mexanizm esa chorani himoya qilish uchun g'alaba qozonadi va PoW tangalarni tarqatish uchun.
  • Namecoin - texnologiya kod bilan Men xavfsizlikni, maxfiylikni, markazsizlashtirishni asta-sekin yaxshilayman.
  • Unobtanium - inflyatsiyadan oldin minimal chayqalish bilan tavsiflanadi. Unobtanium tangalarining vidoboti uchun taxminan 300 tanga talab qilinadi.
  • Deutsche eMark - bu turli xil aktivlarni, masalan, penniesni o'tkazish uchun raqamli o'lchovdir. Ayirboshlash vositachilarsiz amalga oshiriladi.
  • BetaCoin xalqaro to'lov tizimi bo'lib, u Bitcoin tizimi bilan bir xil printsip asosida ishlaydi.
  • Joulecoin - Bitkoin asosidagi bitimlarning eng samarali tasdiqlanishini ta'minlaydi.
  • IXCoin - bu peer-to-peer tamoyiliga asoslangan kodga asoslangan poydevorga ega yana bir loyiha.
  • – Noyob kontentni nashr etish uchun blokcheyn-platforma, yak uzumzorlari.

Varto shuningdek, SHA-256 algoritmi Litecoin tizimida g'alaba qozonishini anglatadi, lekin pastki dasturda emas. Qazib olish uchun Scrypt protokoli o'rnatilgan.

SHA-256 algoritmida kriptovalyutani qazib olish

Ba'zi sabablarga ko'ra, ushbu protokol uchun tizimlari ishlatiladigan tangalarni olish uchun uchta usulda amalga oshirilishi mumkin:

  • ASIC.

O'rta zaminsiz qazib olishning katlanuvchanligi kriptovalyutani topishning bir yo'li mavjudligiga bog'liq. Biroq, har qanday holatda, ASIC-ilovaning o'zi eng katta samaradorlik bilan ajralib turadi, uning boshi juda yuqori xilma-xildir.

O'rtacha ASIC minerining narxi taxminan 100 ming rublni tashkil qiladi (Asic Miner AVALON 821), lekin narxi besh million rublga etishi mumkin bo'lgan qimmatroq modellarni ham sotib olish mumkin (Asic Miner BITFURY B8 16NM 50 TH/S) .

Protsessorlarda kriptovalyutaning vidobootiga kelsak, bunday usul eng kam samarali hisoblanadi. Ayniqsa, raqamli valyuta Bitcoin haqida gapirganda.

Eng adekvat yechim video kartalardan. Dumba fermining o'rtacha varianti 1000-2000 dollar oralig'ida. SHA-256 algoritmi asosida kriptovalyuta video stend uchun video kartani qanday tanlash mumkin?

Agar siz Nvidia haqida gapirayotgan bo'lsangiz, unda eng yaxshi yechimlar video kartaga aylanadi (1400 MH/s). Shubhasiz, AMD-da uzluksiz raqobatchi yo'q, shuning uchun Vega seriyasining barcha kartalari qazib olish uchun ishlatiladi. Radeon RX Vega video adapteri 1200 MH/S tezlik bilan qazib olishni ta'minlaydi. Bunday egalik huquqiga ega bo'lish keyingi g'alaba qozonishdir.

Agar siz arzonroq variantni qidirsangiz, bu holda siz Radeon 7970 ni olishingiz mumkin, shuning uchun siz 800 MH / s gacha ko'rishingiz mumkin. Shuni unutmangki, fermani ishga tushirish uchun video kartaga ko'proq uskunalar kerak bo'ladi, masalan, sovutish radiatorlari, yashash moslamasi, operativ xotira va boshqalar.

Visnovok

Bu konchilar SHA-256 algoritmi haqida bilishi kerak bo'lgan hamma narsa. Shubhasiz, ko'plab zamonaviy kripto-valyutalar Scrypt protokoliga asoslanadi va eng mashhur tanga (BTC) qazib olish, avvalgidek, ushbu tamoyilga amal qiladi.

SHA - 256 nima uchun?

SHA 256 - Secure Hashing Algoritm uchun stenografiya - mashhur emas kriptografik xesh algoritmi, bo'linish Milliy xavfsizlik agentligi - AQSh Milliy xavfsizlik agentligi. SHA-256 vazifasi belgilangan qiymatga ega bo'lgan ma'lumotlar to'plamini yaratish zarurligiga asoslanadi. identifikator tsix danikh.

Otrimane qiymatlari rasmiy ma'lumotlarning dublikatlari bilan taqqoslanadi, chunki olib tashlash mumkin emas. Algoritmni saqlashning asosiy ko'lami axborotni himoya qilish, disfunktsiya va otrimala bilan bog'liq bo'lgan turli xil qo'shimchalar yoki xizmatlarda ishlashdir. kengroq. Bundan tashqari, kriptovalyutani qazib olish texnologiyasi sifatida g'alaba qozonadi.

Ushbu algoritm SHA-2 shifrlash algoritmlari guruhiga kiradi, ular SHA-1 algoritmi asosida ishlab chiqilgan bo'lib, birinchi marta 1995 yilda fuqarolik maqsadlarida yaratilgan. SHA-2 ning o'zi 2002 yil bahorida AQSh Milliy xavfsizlik agentligi tomonidan parchalangan. Uch yil davomida AQSh NSA fuqarolik loyihalarida SHA texnologiyasidan foydalanish uchun patent berdi.

2012 yilda Milliy standartlar va texnologiyalar institutida algoritmga yangilanish kiritildi: SHA - 3. Yil davomida yangi algoritmni soddalashtirilgan asosiy SHA - 2 algoritmi sifatida ko'rish mumkin, ammo u allaqachon eskirgan, ammo SHA - 1 hali ham g'alaba qozonmoqda.

Xesh - klassik rozumynni texnologiyasi bilan shifrlanmagan ma'lumotlar miqdori, bu qaytish kitobidan ma'lumotlarni shifrlashning mumkin emasligi. Istalgan miqdordagi ma'lumotlar uchun bir tomonlama shifrlash. Barcha SHA algoritmlari Merkle-Damgard usuliga asoslangan: ma'lumotlar teng guruhlarga bo'linadi, ularning terisi bir tomonlama siqish funktsiyasidan o'tishi kerak. Qaysi dozhina ortidan ma'lumotlar o'zgarib bormoqda.

Ushbu usul ikkita muhim afzalliklarga ega:

  • tezkor shifrlashni kalitlarsiz ochish deyarli mumkin emas;
  • kolizmlarning paydo bo'lishining minimal xavfi (bir xil tasvirlar).

Ko'proq g'olib

Bugungi teri xakeri Merezhi, chi, hacker SHA-256: SSL xavfsizlik sertifikati, veb-saytni, shu jumladan SHA-256 algoritmini o'g'irlashning bir turi. Bu sayt bilan himoyalangan z'ednannya o'rnatish va autentifikatsiya qilish uchun zarur.

Plus SHA - 256

SHA-256-o'z-o'zidan kengaytmalar boshqalarning o'rtasini qazib olish algoritmi. Vín o'zini yovuzlik kabi kuchli (kamdan-kam uchraydigan nosozliklar uchun) va foydali qazib olish uchun ham, boshqa maqsadlar uchun ham samarali algoritm ekanligini isbotladi.

Minus SHA - 256

Golovny nedolikom SHA - 256 ê yoga nazorat ostida konchilarga: eng katta hisoblash bosimlari ro'yxati kripto-valyutaning ko'p qismini olib tashlaydi, shu jumladan bitta asosiy kriptovalyutalar tamoyillari markazsizlashtirish.

Shundan so'ng, buyuk investorlar sifatida, ular bitcoinni sanoat qazib olish uchun hisoblash bosimiga pennies sarmoya kirita boshladilar, bagator qazib olishning katlanuvchanligi oshdi va vinatkoviy hisoblash keskinligining boshlanishi kuchaya boshladi. Scrypt kabi kriptovalyutalarni qazib olishda zamonaviy va "qamoqqa olingan" boshqa protokollarda bir nechta o'zgarishlar mavjud. Bugungi kunda SHA-256 kripto-valyuta bozorining katta qismini egallaganlardan qat'i nazar, biz ko'proq o'g'irlangan va sirlangan protokollar yukini qo'shib, o'z ta'sirimizni bo'shatamiz.

Bir soatdan keyin SHA-1 algoritmlari to'qnashuvlarni bemalol oqlash orqali kerakli darajadagi ishonchlilikni berishni to'xtatdi. SHA-256, SHA-512 kabi, etishmovchilik bo'lsa xavfsizroq, ammo aybning o'zgarmasligi hali ham mavjud.

Cryptocurrency Wiki

SHA bo'yicha qazib olish - 256

SHA - 256 da qazib olish, har qanday boshqa algoritmda bo'lgani kabi - butun jarayon katlanabilen ko'rinadi. kriptografik vazifalar, dastur oldingi bloklari ma'lumotlari asosida qazib olish uchun ishlab chiqaradi.

Turli xil SHA-256 funktsiyalari bilan qazib olishning uchta usuli mavjud:

  • CPU (markaziy protsessor);
  • GPU (grafik protsessor);
  • mutaxassisliklar Protsessor: ASIC.

qazib olish uchun, hash allaqachon mavjud bloklari identifikatori sifatida g'alabalar yig'indisi va oldingi bo'lganlar asosida yangilarini yaratish hisoblanadi. Kon jarayoni interfeysda "qabul qilingan f33ae3bc9 ..." da ko'rsatiladi. De f33ae3bc9 - tse hash - yig'indi, ma'lumotlarning bir qismi, tan olingan shifrni ochish uchun. Asosiy blok ko'p sonli shunga o'xshash xeshlardan iborat - so'm.

Tobto, SHA algoritmi bilan qazib olish - 256 ê benuqson yangi blok yaratish uchun to'g'ri xesh qiymatini tanlash - yig'indi, raqamlarni sanab o'tish. Hisoblash bosimlaringiz qanchalik ko'p bo'lsa, to'g'ri blokni topish imkoniyati shunchalik ko'p bo'ladi: bosimlarda yotish uchun turli xil xesh summalarini saralash tezligi.

Bitcoin SHA - 256 algoritmida taklif qilganlarga qo'ng'iroq qilish, uchun raqobatbardosh katta uyqusizlik zonasida yangi ehtiyojlarni qazib olish. Shuning uchun, bitko'pni qazib olish uchun "ASIC" larni ishlab chiqarish uzoq vaqtdan beri takomillashtirildi - dasturga xos integral mikrosxemalar, ya'ni. e) maxsus maqsadli integral sxema. ASIC’lar bitkoinlar va boshqa kriptovalyutalarni SHA-256 algoritmida yanada boyroq, samaraliroq va arzonroq qazib olish imkonini beradi.

Kriptovalyutalar SHA - 256 algoritmini qanday buzishadi

SHA - 256 kriptovalyutalar uchun klassik algoritmdir: asosiy kriptovalyuta Bitcoin yangidan ilhomlangan. Ko'rinishidan, xuddi shu algoritm bitcoin vilkalari uchun g'alaba qozonadi: Bitcoin Cash, Gold, Diamond uchun.

Krim ularni, SHA - 256 ham g'alaba qozondi:

  • Steemit;
  • DigiByte;
  • peercoin;
  • namecoin;
  • tekkoin;
  • Okoin;
  • Zetakoin;
  • emercoin.

Shuningdek, SHA-256 algoritmi Litecoin kriptovalyutasidagi kichik dastur sifatida g'alaba qozonadi va qazib olishning asosiy algoritmi Scrypt hisoblanadi.

Kriptovalyutaning tobora ommalashib borishi bilan ko'proq odamlar uni istiqbolli moliyaviy vosita sifatida qabul qila boshladilar. Prote, kam odam ishtirok etadi, ular ilmiy-texnika taraqqiyoti uchun qanday qiymatni ifodalaydi. Ushbu hodisaning tubiga kirish uchun SHA-256 kodini tushunish uchun turli xil kriptografik ma'lumotlarni, shuningdek, noma'lum va maxfiy qisqartmalarni o'rganish kerak. Bu haqida va joriy maqolada timetsya.

Kon nima?

Mining har qanday raqamli valyuta mexanizmi uchun asosiy ombor hisoblanadi. konchilar tomonidan guruhlashda díí̈ polagaê tamoyili allaqachon maxsus yordamchilari beradi qizil hash kodni o'rnatish uchun shaxssiz o'zgartirilgan bir blokda operatsiyani bajarish uchun. Xuddi shu qiymat kuzatilgandek, blok meniki va tanga blokcheyniga qo'shiladi. Bunday hisoblash faoliyati har qanday korrozivlik, zarur blokning avlodni katlamasini targ'ib qilish jinoyatini bermaydi. Boshqa tomondan, koristuvachi elektron valyutaning qo'ng'iroqlari va hushtaklari tomizilishi mumkin, shunda ularning maydanchiklari nazorat va markazlashuvni o'z zimmalariga olmaydilar.

Standart xesh funktsiyasi blokni kirish sifatida qabul qiladi qo'shiq haqida ma'lumot, chiqish yo'lida ko'rish, bu tasavvur qilib bo'lmaydigan ma'no. U shunday bo'linganki, kerakli ko'rsatkichni bilishning optimal usuli yo'q, siz to'g'ri xesh kodini topmaguningizcha qidiruvni takrorlashingiz va takrorlashingiz kerak.

Eng mashhur protokollardan biri bu SHA-256. Dunyodagi eng mashhur birinchi kriptovalyuta Bitcoin hisoblanadi. Bundan tashqari, xavfsizlikni yaxshilash algoritmni 2 marta ishga tushirishga teng va u allaqachon subverted deb ataladi.

Bitkoinda xeshni qo'llash mezonlari boshiga "0" sonini talab qiladi. Shunga o'xshash qiymatni ko'rsatish ham muhim, masalan, avtomobil raqamini kiritish yoki bir juft 0 bilan tugaydigan zamonaviy. Ma'lum bir soatda to'g'ri qiymat taxminan 17 ta nolni o'z ichiga olishi mumkin, shuning uchun 20 bosqichda 1,4 dan faqat bittasi 10 ga ko'paytiriladi. O'yinni o'tkazish, shunga o'xshash xeshni bilish, sayyoradagi noma'lum massaning butun dunyosi o'rtasida bir xil hashni bilish ancha aniqroqdir.

Agentlik tomonidan SHA-256 algoritmining pochta versiyasi yaratilgan milliy xavfsizlik AQSh bahori 2002 yil. Bir necha oy o'tgach, Milliy Metrologiya Universiteti ma'lumotlarni xavfsiz qayta ishlash uchun federal darajada qabul qilingan FIPS PUB 180-2 da yangi shifrlash protokolini nashr etdi. Vzimku 2004 roku vín popovnivsya algoritmning yana bir versiyasi.

Keyingi 3 yil davomida NSA SHA 2-avlod uchun patentsiz litsenziya ostida patent berdi. Xuddi shu narsa fuqarolik sohalarida texnologiyaning turg'unligini keltirib chiqardi.

Hurmatga ega bo'ling! Tugatish cicavia haqiqati: teri koristuvach Butun dunyodagi o'rgimchak, buni o'zim bilmagan holda, o'zingizning bir soatingiz uchun Internet bu protokoldan qimmatroq. Agar veb-resurs SSL xavfsizlik sertifikati bilan himoyalangan bo'lsa, u avtomatik ravishda SHA-256 algoritmiga qarshi ishlaydi.

Ushbu protokol har biri 512 bit (yoki 64 bayt) bo'lgan qismlarga bo'lingan ma'lumotlarga asoslanadi. Vín rob vv kriptografik "zmíshuvannya", so'ngra víd vídê 256-bitli xesh-kod. Ombor oldidan algoritm 64 marta takrorlanadigan bitta oddiy turga kiradi.

Bundan tashqari, SHA-256 yomon texnik parametrlarga erishishi mumkin:

  • Blok hajmi ko'rsatkichi (bayt) - 64.
  • Ruxsat etilgan kengaytma uzunligini cheklash (bayt) - 33.
  • Xabarnomaning majburiy dayjestining xarakteristikasi (baytlar) – 32.
  • Standart so'z hajmi (bayt) - 4.
  • Ichki stantsiya uzunligining parametri (bayt) 32 ga teng.
  • Bir sikldagi takrorlashlar soni 64 dan kam.
  • Protokol orqali erishiladigan tezlik (MiB/s) taxminan 140 ni tashkil qiladi.

SHA-256 algoritmining ishi Merkle-Damgardni rag'batlantirish usuliga asoslangan bo'lib, u o'zgarishdan keyin kob indeksini ma'lum darajada bloklarga bo'lish mumkin, va ti, o'ziga xos tarzda, 16 so'z.

80 yoki 64 iteratsiya bo'lgan tsikldan o'tish uchun ma'lumotlarni olish. Teri bosqichi saqlash bloklaridan xashingni ishga tushirish bilan tavsiflanadi. Ulardan bir nechtasi funktsiya vositalari tomonidan qayta ishlanadi. Keyin natijada xesh-kodning to'g'ri ko'rsatilishini ko'rib, transformatsiya natijalari qo'shiladi. Cherd blokini yaratish uchun old tomonning qiymatlari o'rnatiladi. Ularni bir yo'l bilan okremo qilish uchun taslim bo'lmaydi.

Shuningdek, bunday funktsional protokol asosida 6 bitli operatsiyalarni taxmin qilish mumkin:

  • "va" - bitli operatsiya "I";
  • "shr" - qiymatni kerakli bitlar soniga o'ngga siljitish;
  • "chiriydi" - jamoa oldingi nuqtai nazardan o'xshash, bir xil farq bilan, tsiklik halokatga olib keladi;
  • "||" yoki birlashtirish - chiziqli strukturaning qismlarini, asosan, qatorlarni birlashtirish operatsiyasi;
  • "xor" - "ABO" ni tanlash buyrug'i;
  • "+" - odatiy katlama operatsiyasi.

Qanday qilib har qanday shifrlash algoritmi uchun odatiy operatsiyalar to'plamini bajarishingiz mumkin.

Algoritmning qiymatini aniqlash uchun kriptoanalizga qaytish kerak. Tsya intizomi maxsus kalitga ehtiyoj sezmasdan ma'lumotlarni shifrlash usullarini bilish.

SHA-256 ning g'ayrioddiy holatlar mavjudligi bo'yicha birinchi tadqiqotlari 2003 yilda soxtalar tomonidan tan olindi. O‘shanda protokolda afv yo‘q edi.

Prote, 2008 yil o'rtalarida Hindistonlik bir guruh mutaxassislar SHA arxitektura oilasining 22 iteratsiyasi uchun raqamlarni aniqlashga muvaffaq bo'lishdi. Bir necha oylik taklifdan so'ng, protokolning kesilgan versiyasi uchun to'qnashuvlarni hal qilish usuli, so'ngra oraliq bo'lmagan SHA-256-ning o'zi 31-iteratsiya uchun.

Bir soat ichida tomoq funktsiyasini tahlil qilish uchun 2 tagacha turli xil hujumlarning aniqligini tekshirish kerak:

  1. Prototipning mavjudligi yogo xesh-kodi bo'yicha kob xabarining shifrini ochishdir. Ushbu turdagi vplyu o'zgartirish natijalarini eng yaxshi himoya qilishni kafolatlaydi.
  2. Rebuvannya kolízyy - turli xil kirish parametrlari bilan o'xshash chiqish ma'lumotlari. Bunday turli xil hujumlarga qarshilik nuqtai nazaridan u to'g'ridan-to'g'ri kuzda. elektron imzoíz vekoristannyam haqiqiy protokol.

SHA algoritmining yana bir avlodini yaratuvchilar yangi shifrlash mexanizmi boshqa tamoyillar asosida ishlab turibdi, deb yolg'on gapirishdi. Shunday qilib, 2012 yilning kuzida dunyoda uchinchi seriyali Keccak protokoli paydo bo'ldi.

Amalda zastosuvannya va texnologiyani sertifikatlash

Qo'shma Shtatlar qonunlari SHA-256 va boshqa shunga o'xshash xeshlash usullaridan ma'lumotni himoya qilish bo'yicha bir xil davlat dasturlarida foydalanishga ruxsat beradi. Boshqa tomondan, tijorat kompaniyalari tomonidan algoritmni blokirovka qilishga ruxsat beriladi.

Muhim! Shuning uchun, bu protokol birinchi raqamli valyuta uchun ishlatiladi, deb aslida ajablanarli narsa yo'q. Yangi bitkoin tangalarni chiqarish joriy SHA-256 arxitekturasi uchun ahamiyatlilik tartibiga ko'ra belgilanadi.

Qanday qilib u vidobotku kriptovalyuta uchun ixtisoslashtirilgan tashqi binolarga mos keladi? Ushbu algoritm uchun charm to'quv oddiy ko'rinishga erishishi mumkin - ibtidoiy bit operatsiyasi va 32-bitli katlama (bu sxema asoslarini biladigan odam bo'lsin, uni koridorga qarab osongina ko'rishingiz mumkin). Va buning uchun samarali ish asic-konchilar algoritm uchun faqat o'nlab bloklari va qadamlar kerak.

Bitcoin, Litecoin, Dogcoin va boshqa shunga o'xshash "tangalar" dan farqli o'laroq, katlama funksiyasini ta'minlovchi Scrypt shifrlash protokoli qo'llaniladi. Tsey algoritmi Faoliyat jarayonida u xesh-funktsiyalarning 1024 xil qiymatini oladi va oxirgisining chiqishi bo'yicha biz natijani olamiz. Protokolni amalga oshirish uchun Zavdyaki tsomu juda katta miqdordagi bosimni talab qiladi.

Visnovok

Aytish mumkinki, SHA-256 protokoli juda oson ko'rinadi va bugungi kunda yoga muvaffaqiyatli chetlab o'tadigan maxsus qurilmalar (konchilar deb ataladigan) yo'q. O'shandan beri protsessorda qazib olish yoki video kartalardan fermer xo'jaliklarini tanlash kerak bo'ldi, ASIC-ilovalar o'z xo'jayinlariga ko'proq pul ishlash imkonini beradi. Biroq, qaysi biri bor Zvorotny Bik. Kriptovalyutani markazlashtirish uchun konchilarni tanlash, shuningdek, yangi xeshlash protokollarini ishlab chiqish kerak. Bunday algoritmga aylangan Scrypt ancha rivojlangan mexanizm bo'lib, sezilarli unumdorlikni talab qiladi va nazariy jihatdan maxsus afzalliklarni maxsus qo'llash imkonini beradi.

Oddiy koristuvach pozitsiyasidan SHA-256 va Scrypt protokollari o'rtasida farq yo'q. Raqamli valyutani kompyuteringiz yoki istalgan protokollar fermasi yordamida qazib olishingiz mumkin.

Algoritmi SHA-256 bugungi kunda umumiy bozorning 40% dan ortig'ini, prote, posture va boshqalarni oladi. Ulug‘vor vorisni bo‘g‘uvchi hidni to‘xtata olmayman. Shunday qilib, bir nechta yangilaridan, markazlashtirilmagan Maydan Efiriumda g'alaba qozonish uchun tanlangan, ayniqsa, "konchilarga qarshi" Dagger protokoli haqida taxmin qilish kerak. Ehtimol, men o'zim xeshing xonasida va SHA-256 maydonida etakchining tayoqchasini olaman.

, "Secure Hash Standard (SHS)", AQSh. Savdo vazirligi, 2012 yil mart

Shartlar:
FIPS Federal axborotni qayta ishlash standarti (Federal ma'lumotlarni qayta ishlash standarti).
SHA Secure Hash Algoritm (Kuchli Hash Algoritmi).
Unsigned so'zi SHA algoritmi bilan bir xil tarzda tushish uchun 32 bit (4 bayt) yoki 64 bit (8 bayt) ga o'zgartiriladi.

XAVFSIZLIK HASH STANDARTI (SHA-1 va SHA-2 kriptografik funktsiyalari oilasi)

Oila kriptografik funktsiyalar SHA ikkita pastki ko'paytmaga bo'linadi: algoritm o'rtasida yo'q SHA-1(1995 yilda nashr etilgan - FIPS PUB 180-1) va sarlavha ostida bir qator algoritmlar SHA-2(nashr qilingan 2002 - FIPS PUB 180-2, yangilangan 2008 - FIPS PUB 180-3): SHA-224, SHA-256, SHA-384, SHA-512; Algoritmlar FIPS PUB 180-4 ga 2012-yilda qo‘shilgan SHA-512/224і SHA-512/256. Biz SHA-1 va SHA-2 xesh funksiyalarining butun oilasini qamrab oluvchi FIPS PUB 180-4 standartiga qaraymiz.

Ushbu standart quyidagi xesh algoritmlarini belgilaydi: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224і SHA-512/256, bu raqamli ma'lumotlarning ko'rinishi (ko'rib chiqish) asosida hisoblanishi kerak. Soliq to'lash uchun xesh-algoritmni qanday kiritish kerak, u sana bo'ladimi, ale kamroq, 264 bit (uchun) SHA-1, SHA-224і SHA-256) yoki undan kam, pastroq 2128 bit (uchun SHA-384, SHA-512, SHA-512/224і SHA-512/256), keyin natija beriladi, daraja digest yoki xesh qiymati haqida bildirishnoma. Ma'lumotlarning xesh qiymatining diapazoni tanlangan algoritmda yotish uchun 160 dan 512 bitgacha (yoki 20 dan 64 baytgacha) oraliqda joylashgan. SHA algoritmlari boshqa kriptografik algoritmlar, masalan, algoritmlar bilan birgalikda g'alaba qozonadi. raqamli imzo autentifikatsiyani tasdiqlash kaliti (HMAC) bilan xeshlash soati uchun yoki manfiy raqamlarni konjugatsiya qilish uchun (bit).

Ushbu standartga kiritilgan xesh algoritmlari ma'lum bir algoritmdan keyin qo'shimcha hisoblab bo'lmaydiganlar uchun xavfsiz deb ataladi: 1) ma'lum bir ogohlantirish dayjesti uchun ogohlantirishlarni qayta ko'rib chiqing, aks holda 2) ikki xil bildirishnomani biling, bu xabarnomaning bir xil dayjesti boʻlishi mumkin (har birlashtirishni biling). Be-yakí zm_ni yilda povydomlenny, s Dzhe vysokoj ymovirnystyu, turli hash qiymatlari qadar ishlab chiqarish. Vakolat kuchi elektron raqamli imzo konvertatsiyasini yaratish, tasdiqlashning autentifikatsiyasi va teskari raqamlarni yaratishga asoslanadi.

Teri algoritmi ikki bosqichdan iborat: Old trim bu xeshni hisoblash. Old trim o'z ichiga oladi Qo'shimcha ma'lumot, qo'shimcha eslatmani buzish M- bit bloklari, і boshlang'ich qiymatlarni o'rnatish, hashni hisoblashda g'olib bo'lganlar. Xeshni hisoblash iterativ tarzda hisoblanadi M-qo'shimcha ma'lumotlarning bit bloki va xash qiymatini olish uchun so'zlar ustidagi xakerlik funktsiyalari, konstantalar va operatsiyalar. Robotik protsedura natijasi hash ê digest digestini hisoblashdir.

Bloklar va satrlarni xeshlangan ma'lumotlar va xesh qiymatini farqlash uchun algoritmlar - div. jadval 1.

Algoritm Rozmir podomlennya (bitlarda) Rozmir bloki (bitlarda) Rozmir so'zlari (bitlarda) Ma'lumotni hazm qilish uchun rozmarin (bitlarda)
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
Funksiyalar

Chiziqli bo'lmagan funktsiyalarning SHA-1 ketma-ketligi f 0 , f 1 ,..., f 79. Teri funktsiyasi f t, de 0 ≤ t< 79 , uchta 32-bitli o'zgarishlarda ishlaydi: x, y, і z, natijada bitta 32 bitli so'z aylantiriladi. SHA-1 algoritmida chiziqli bo'lmagan funktsiyalarning haqoratli to'plami g'alaba qozonadi. f t (x, y, z):
00 ≤ t ≤ 19Ch(x, y, z)
20 ≤ t ≤ 39Paritet (x, y, z)= x XOR y XOR z
40 ≤ t ≤ 59Maj(x, y, z)
60 ≤ t ≤ 79Paritet (x, y, z)= x XOR y XOR z

Mantiqiy algebra.
Hurmatni tiklash uchun, masalan, nima vazifasi Ch buni boshqa yo'l bilan ham qo'yishingiz mumkin:
z XOR (x VA (y XOR z))
Natija o'zgarmaydi. Algoritmning boshqa ilovalarida bunday variantlardan foydalanish mumkin.

SHA-224 va SHA-256 chiziqli bo'lmagan funktsiyalardan foydalangan holda:

Ch(x, y, z)= (x VA y) XOR (X VA z EMAS)
Maj(x, y, z)= (x VA y) XOR (x VA z) XOR (y VA 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 bit:
ROTR(x, n) = (x»n) | (x "(32-n))
SHR - zsuv o'ng qo'l n bit:
SHR(x, n) = x » n

SHA-384, SHA-512, SHA-512/224, SHA-512/384 chiziqli bo'lmagan funktsiyalar soni:

Ch(x, y, z)= (x VA y) XOR (X VA z EMAS)
Maj(x, y, z)= (x VA y) XOR (x VA z) XOR (y VA 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)

So'zlar ustida operatsiyalar (64-bit).
ROTR - tsiklik zsuv o'ng qo'l n bit:
ROTR(x, n) = (x»n) | (x "(64-n))
SHR - zsuv o'ng qo'l n bit:
SHR(x, n) = x » n

Konstanti

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

(Ovqat sizni urgandek, yulduzlar raqamlardan paydo bo'ldi, keyin u dzherelo bo'lishi kerak:
0x5A827999 = $\sqrt(2) / 4$ , 0x6ED9EBA1 = $\sqrt(3) / 4$ , 0x8F1BBCDC = $\sqrt(5) / 4$ , 0xCA62C1D6 = $\sqrt(10) p4 tomonidan koʻpaytirildi 232).

64 doimiy (32 bitli so'zlar): K 0 , K 1 ... K 63. (Qoʻshimchalar uchun: birinchi 64 ta tub sonning kub ildizlarining oʻq qismlarining dastlabki 32 biti bilan qi konstantalari).

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 doimiy (64 bitli so'zlar): K 0 , K 1 ... K 79. (Qo'shimchalar uchun: birinchi 80 tub sonning kub ildizlarining birinchi 64 bitli o'yilgan fraktsiyalari bilan qi konstantalari).

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,
0xca273ecea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b,
0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
]

Old trim
1. Qo'shimcha ma'lumotlar

512 yoki 1024 bitga bo'linadigan Meta zrobiti podomlennya, SHA algoritmi bilan bir xil tarzda omonat. Qo'shimcha o'zgartiriladigan blok(lar) tugagunga qadar xashni hisoblash protsedurasidan oldin yoki xeshni hisoblash protsedurasi davomida tekshirilishi mumkin.

M dorivnyuê l "bir" k- demak, rozmyr otrimannogo podomlennya buv 64-tartib 512 ga karralidan kam ( l+1+k = 448 mod 512). Dali, 64-bitli bildirishnoma yakuniy natijaga qo'shiladi l tashqi yordam M "abc" "bir", keyin 448 - (24+1) = 423 bit «0» , va masalan, dunyoning 64-bitli tasviri 24 = 00 ... 011000. Natijada shaklning 512-bitli tasviri olinadi:

Dovjinaning esga olinishi qabul qilinadi M dorivnyuê l bit. Oxirigacha eslatma "bir", keyin esa nol - raqamda k- Shunday qilib, olib tashlangan harflar sonini 896 ning ko'paytmasidan 128 qatorga kamaytirish uchun ( l+1+k = 896 mod 1024). Dali, yakuniy natijaga 128 bitli bildirishnoma qo'shiladi l tashqi yordam M. Masalan, (ASCII matni) bizda eslatma bor "abc" dojinoy 8 * 3 \u003d 24 bit. Podomlennya uchun Dodaemo "bir", keyin 896 - (24+1) = 871 bit «0» , va masalan, dunyoning 128-bitli tasviri 24 = 00 ... 011000. Natijada shaklning 1024-bitli tasviri olinadi:

2. Qo'shimcha eslatmani buzish yoqilgan M- bit bloklari

N M- bit bloklari.

Qo'shimcha ma'lumotlar quyidagilarga bo'linadi № 512- bit bloklari: M(1), M(2) ... M(N). Chunki 512 bitni 16 (o'n olti) 32 bitli so'zlarga, keyin esa birinchi 32 bitga aylantirish mumkin. i M 0 (i), 32 bit keladi M 1 (i), va shuning uchun keling M 15(i).

Qo'shimcha ma'lumotlar quyidagilarga bo'linadi N 1024- bit bloklari: M(1), M(2) ... M(N). Chunki 512 bitni 16 (o'n olti) 64 bitli so'zlarga, keyin esa birinchi 64 bitga aylantirish mumkin. i th blok M 0 (i), 64 bit keladi M 1 (i), va shuning uchun keling M 15(i).

3. Dastlabki qiymatlarni belgilash

Xeshni hisoblash tartibidan oldin algoritm dastlabki qiymatlarni o'rnatadi H. Rozmir ta kílkíst slyv H tanlangan algoritm bo'yicha depozit.

Chotiri 32 bitli so'zlar.
H0 = 0x67452301
H1 = 0xefcdab89
H2=0x98badcfe
H3 = 0x10325476
H4 = 0xc3d2e1f0

32-bitli slyv.

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

32-bitli slyv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19)

(Qo'shimchalar uchun: tub sonlar kvadrat ildizining kasr qismlarining dastlabki 32 biti bilan qi qiymatlari - tartib raqamlar: birinchi 8).

64-bitli slyv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17,
0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a8768581511,
0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4)

(Qo'shimchalar uchun: tub sonlar kvadrat ildizining kasr qismlarining dastlabki 64 biti bilan qi qiymatlari - tartib raqamlar: 9 dan 16 gacha).

64-bitli slyv.
H0, H1, H2, H3, H4, H5, H6, H7 = (


(Qo'shimchalar uchun: tub sonlar kvadrat ildizining kasr qismlarining dastlabki 64 biti bilan qi qiymatlari - tartib raqamlar: birinchi 8).



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











64-bitli slyv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x8C3D37C819544DA2, 0x73E1996689DCD4D6, 0x1DFAB7AE32FF9C82,
0x679DD514582F9FCF, 0x0F6D2B697BD44DA8, 0x77E36F7304C48942,
0x3F9D85A86A1D36C8, 0x1112E6AD91D692A1)

"SHA-512/t" - bu SHA-512 asosidagi t-bitli xesh funksiyasining umumiy nomi bo'lib, uning natijasi t-bitga qisqartiriladi. T-bit hash funksiyasining teri versiyasi turli ishga tushirish qiymatlarini talab qiladi. Kim uchun kiritilgan maxsus tartib SHA-512/t kob qiymatini ma'lum bir variantga belgilash t.

SHA-512/t boshoq qiymatini olish tartibi.
1. SHA-512 algoritmiga kob qiymatini H olish.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179)

2. Robimo quyidagi hisob:
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. SHA-512("SHA-512/t") qatorining ixtiyoriy xesh turi (masalan, t "224" yoki "256" bo'lishi mumkin) kob qiymatlari H' bilan. Xesh qiymati i SHA-512/t algoritmi uchun kob qiymati bo'ladi:
SHA-512/224 uchun H = SHA512(H', "SHA-512/224")
SHA-512/256 uchun H = SHA512(H', "SHA-512/256")

64-bitli slyv.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x22312194FC2BF72C, 0x9F555FA3C84C64C2, 0x2393B86B6F53B151,
0x963877195940EABD, 0x96283EE2A88EFFE3, 0xBE5E1E2553863992,
0x2B0199FC2C85B8AA, 0x0EB72DDC81C52CA2)

Xeshni hisoblash

Algoritmda "+" 2-modul uchun vydbuvaetsya 32 .

i = 1 dan N gacha:
{
1. i
M 0 (i) yoqilgan M 15(i))
80 sliv rozmirom 32 daraja (s W0 yoqilgan V 79):
W t = M t t = 0..15 uchun
W t = ROTL(Vt t-3 XOR Vt t-8 XOR Vt t-14 XOR Vt t-16 , 1) t = 16..79 uchun
(Cicavo, SHA spetsifikatsiyasining (SHA-0 algoritmi) kob varianti haqida nima deyish mumkin?
chapga tsiklik qo'ng'iroq ROTL(x, 1))

2. Dastlab a, b, c, d, e ni o'zgartiring.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)

3. Bo'rttirma funktsiyasining bosh halqasi
t = 0 dan 79 gacha
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)
}

Olingan xesh qiymati 160 bitli dayjest hisoblanadi:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N)(5 qator * 32 bit = 160 bit)

So'zlar ustida operatsiyalar (32-bit).
ROTL - chapga tsiklik qo'ng'iroq n bit:
ROTL(x, n) = (x "n) | (x" (32-n))

Algoritmda "+" 2-modul uchun vydbuvaetsya 32 .

i = 1 dan N gacha:
{
1. i-induktsiyalangan algoritm yordami uchun qo'llab-quvvatlash bloki
16 so'zdan 32 toifali dunyoga aylantiring (dan M 0 (i) yoqilgan M 15(i))
64 so'z 32 darajaga ega (z W0 yoqilgan V 63):
W t = M t t = 0..15 uchun
W t \u003d Vt t-16 + Delta0(W t-15) + W i-7 + Delta 1(Vt t-2) t = 16..63 uchun

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. Bo'rttirma funktsiyasining bosh halqasi
t = 0 dan 63 gacha
TEMP1=h+ Sigma1(e) + Ch(e, f, g) + Vt + Kt
TEMP2= Sigma0(a) + mayor(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = a
a = TEMP1 + TEMP2

4. Muhim oraliq xesh qiymati
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)
}

Olingan xesh qiymati 256 bitli dayjestdir:
(8 qator * 32 bit = 256 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Algoritm yana SHA-256 algoritmi bilan ishlaydi. Albatta ishga tushiradigan qiymatlarda H (div. yuqori) va natijada olingan xesh qanday olinadi. Chunki Biz xabarning 256 bitli dayjestini olamiz, yakuniy xesh qiymatini olish uchun faqat dastlabki 224 bitni olamiz:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N)(7 qator * 32 bit = 224 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Algoritm SHA-256 ga o'xshaydi, faqat so'zlar 64 bitli bo'lgan barcha o'zgarishlar.
Algoritmda "+" 2-modul uchun tayinlangan 64 .

i = 1 dan N gacha:
{
1. i-induktsiyalangan algoritm yordami uchun qo'llab-quvvatlash bloki
16 ta so'zdan 64 toifadagi dunyoga aylantiring (dan M 0 (i) yoqilgan M 15(i))
80 sliv rozmirom 64 daraja (s W0 yoqilgan V 79):
W t = M t t = 0..15 uchun
W t \u003d Vt t-16 + Delta0(W t-15) + W i-7 + Delta 1(Vt t-2) t = 16..79 uchun

2. Dastlab a, b, c, d, e, f, g, h o'zgartiring.
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. Bo'rttirma funktsiyasining bosh halqasi
t = 0 dan 79 gacha
TEMP1=h+ Sigma1(e) + Ch(e, f, g) + Vt + Kt
TEMP2= Sigma0(a) + mayor(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = a
a = TEMP1 + TEMP2

4. Muhim oraliq xesh qiymati
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)
}

Olingan xesh qiymati 512-bitli xabar dayjestidir:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N) || H7(N)(8 qator * 64 bit = 512 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Algoritm yana SHA-512 algoritmi bilan ishlaydi. Albatta ishga tushiradigan qiymatlarda H (div. yuqori) va natijada olingan xesh qanday olinadi. Chunki biz xabarning 512 bitli dayjestini olamiz, yakuniy xesh qiymatini olish uchun faqat birinchi 384 bitni olamiz:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N)(6 qator * 64 bit = 384 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Algoritm yana SHA-512 algoritmi bilan ishlaydi. Albatta ishga tushiradigan qiymatlarda H (div. yuqori) va natijada olingan xesh qanday olinadi. Chunki bizga 512 bitli dayjest kerak, biz yakuniy xesh qiymatini olish uchun faqat birinchi 224 bitni olamiz:

H0(N) || H1(N) || H2(N) || birinchi 32 bit H3 (N)(3 so'z * 64 bit + 32 bit = 224 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Algoritm yana SHA-512 algoritmi bilan ishlaydi. Albatta ishga tushiradigan qiymatlarda H (div. yuqori) va natijada olingan xesh qanday olinadi. Chunki biz xabarning 512 bitli dayjestini olamiz, yakuniy xesh qiymatini olish uchun biz faqat birinchi 256 bitni olamiz:

H0(N) || H1(N) || H2(N) || H3(N)(4 so'z * 64 bit = 256 bit)
Hurmat: teri so'zining bayt tartibi "big-endian"

Kriptografik primitivlar
Ochiq kalit bilan algoritmlar RSA DSA
Oqim shifrlari RC4
Xesh funksiyalari

SHA-256 raqamli bitkoinni kirish ma'lumotlaridan 2,31 ekzabaytgacha (2⁶⁴ bit) qattiq uzunlikka (256 bit, 32 bayt) aylantirish uchun bir tomonlama funktsiyadir. Xavfsiz xash algoritmining 2-versiyasi) NSA tomonidan 2002 yilda nashr etilgan.

Oilaviy xesh funksiyalari SHA-2 Merkle-Damgard tuzilishiga asoslangan.

Qo'shilgandan keyin haftalik xabarnoma bloklarga bo'linadi, 16 qator uchun charm blok. Algoritm terini yangilash blokini 64 ta takroriy tsikl orqali o'tkazadi. Teri iteratsiyasida 2 so'z o'zgartiriladi, transformatsiya funktsiyasi boshqa so'zlarga o'rnatiladi. Teri blokini qayta ishlash natijalari qo'shiladi, yig'indisi xesh funktsiyasi qiymatlari hisoblanadi. Osskylki nitsializacíya Men tashqi blokning aylanasi natijasiga aylanaman, messenjer bloklarni parallel ravishda masxara qilmoqda. Ma'lumotlar blokini qayta ishlashning bir iteratsiyasini grafik ko'rsatish:

Hozirgi vaqtda 31 iteratsiyagacha bo'lgan kollilarni qurish usullari mavjud. Algoritmik o'xshashlik orqali SHA-2 h SHA-1 va qolgan potentsial nomuvofiqliklarda mavjudligi, SHA-3 boshqa algoritmga asoslangan bo'lishi kerak deb qaror qilindi. 2012 yil 2 iyulda NIST Keccak SHA-3 algoritmini tasdiqladi.

Rozrahunka vídbitka vvglyady psevdokod uchun algoritm:

Tushuntirish:
Barcha o'zgarishlar imzosiz, 32 bitni kengaytirishi mumkin va hisoblashda 232-moduldan keyin umumlashtiriladi.
xabar- vyhidne dviykove podomlennya
m- O'zgartirilgan bildirishnomalar O'zgarishlarni boshlash
(birinchi 32 bit miltiq zarralari birinchi sakkiz tub sonning kvadrat ildizi [2 dan 19 gacha]):
h0:=0x6A09E667
h1:=0xBB67AE85
h2:=0x3C6EF372
h3:= 0xA54FF53A
h4:=0x510E527F
h5:=0x9B05688C
h6:=0x1F83D9AB
h7:=0x5BE0CD19 Doimiy jadval
(birinchi 32 bit miltiq zarralari birinchi 64 tub sonning kub ildizi [2 dan 311 gacha]):
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 Old bezak:
m:= xabar ǁ [ yagona zarba]
m:= m ǁ , de k- men uchun eng kam noma'lum raqam, shunga o'xshash
(L + 1 + K) mod 512 = 448
m:= mǁ Dovjina(xabar) - yuqoridan pastgacha bayt tartibida 64 bitli son uchun bitlar uchun chiqish xabarining uzunligi Quyidagi bildirishnomalar 512 bitning quyidagi qismlari tomonidan qayta ishlanadi:
bildirishnomalarni shmatki 512 bitga bo'ling
uchun teri shmatti shmatok 16 satr bosh kiyim 32 bit (so'z o'rtasida kattadan kichikgacha bayt tartibida): w Qo'shimcha 48 ta so'z yarating:
uchun i ko'rinish 16 oldin 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
Qo'shimcha o'zgarishlarni boshlash:
a:=h0
b:= h1
c:=h2
d:= h3
e:= h4
f:= h5
g:= h6
h:= h7 Asosiy tsikl:
uchun i ko'rinish 0 oldin 63
S0:= (a rotr 2) xor(a rotr 13) xor(a rotr 22)
Ma:= (a va b) xor(a va c) xor(b va c)
t2:= S0 + Ma
S1:= (e rotr 6) xor(e rotr 11) xor(e rotr 25)
Ch:= (e va f) xor ((emas e) va g)
t1: = h + S1 + Ch + k[i] + w[i] h: = g
g:= f
f:= e
e:= d + t1
d:=c
c:=b
b:=a
a:= t1 + t2 Oldindan hisoblangan natijaga oxirgi qiymatni qo'shing:
h0:= h0 + a
h1:= h1 + b
h2:= h2 + c
h3:= h3 + d
h4:= h4 + e
h5:= h5 + f
h6:= h6 + g
h7:= h7 + h Xesh qiymatlari yig'indisini olib tashlang:
digest = hash = h0 ǁ h1 ǁ h2 ǁ h3 ǁ h4 ǁ h5 ǁ h6 ǁ h7

Vikoristovuetsya algoritmi:

  • bitkoin- bir xil qiymatli ramkalar bilan tovushlarni qidirish orqali kripto-valyuta emissiyasi
  • DNSSEC- Digest DNSKEY
  • DSA- elektron raqamli imzo yaratganlik uchun yutuq
  • IPSec- protokollarda ESPі IKE
  • OpenLDAP- parol xeshlari
  • PGP- elektron raqamli imzo yaratish uchun ko'z qisish
  • S/MIME- dayjestni ko'rib chiqish
  • SHACAL-2- blokli shifrlash algoritmi
  • X.509- elektron raqamli imzo sertifikatini yaratish uchun yutuq
Buzilishlar