Skaitmeniniai parašai ir maišos

Skaitmeniniai parašai ir kriptografinės maišos funkcijos apima slaptą padažą, dėl kurio kriptovaliuta veikia. Jie, taip sakant, įdėjo kriptografiją į valiutą. Jūsų skaitmeninis parašas įrodo, kad turite privatų raktą, kuris pretenduoja į operacijoje aprašyto turto nuosavybės teisę. Maišos funkcija apibrėžia ir užtikrina sandorį.

Kriptografija – ar norite sužinoti paslaptį?

Skaitmeniniai parašai ir maišos funkcijos veikia kriptografijoje, tad kas yra kriptografija? Kriptografija apibrėžia pranešimų kodavimo ir dekodavimo meną ir mokslą, kad būtų palaikomas privatumas tarp komunikatorių.

Kriptografijos salotų dienos

Skirtingais laikotarpiais bėgant metams vyrauja skirtingos kriptografijos formos. Julijaus Cezario laikais pakako paprasčiausio abėcėlės sukimo. Taigi kriptografai tai vadina „cezario šifru“. Vietoj žodžio „katė“ užšifruotas pranešimas gali tiesiog pasukti visas raides vienu žingsniu į kairę, todėl „katė“ išverčiama į „dbu“. Filme 2001: kosminė odisėja, tokiu pat būdu pasukite raides „HAL“ ir ką gausite?

Laikui bėgant, kriptografijos sistemos sugenda, kai kriptanalitikai išsprendžia kiekvieną pateiktą sistemą.

Viešojo rakto kriptografija

skaitmeninių parašų atvaizdas

Šiuo metu vyrauja asimetrinė kriptografija, dar vadinama viešojo rakto / privataus rakto šifravimu arba tiesiog viešojo rakto kriptografija. Viešieji ir privatieji raktai yra tiesiog skaičiai.

Asimetrinis terminas išskiria jį iš simetriškos kriptografijos. Simetriškoje kriptografijoje tas pats raktas ir užšifruoja, ir iššifruoja pranešimą. Vadinasi, raktas turi likti paslėptas. Tai sukuria pagrindinę paskirstymo problemą – kaip saugiai perduoti raktą gavėjui ir užšifruotą pranešimą?

Viešojo rakto kriptografija išsprendžia šią problemą paskelbdama viešąjį raktą, kurį kiekvienas gali naudoti šifruodamas pranešimą, o vartotojas pasilieka sau privatų raktą, kuris bus naudojamas iššifruoti pranešimą. Tai veikia per vienpusių matematinių funkcijų magiją. Vienkryptės funkcijos apskaičiuojamos paprastai ir lengvai, tačiau priešinasi atvirkštinei inžinerijai.

Viešojo rakto kriptografijos pavyzdys

Iliustruoti labai paprastu pavyzdžiu, padauginkite du pirminius skaičius: pirminis1 * pirminis2 = rezultatas. Turėdami pakankamai didelius skaičius, kiekvienas gali pažvelgti į rezultatą, tačiau nustatyti, kurie du pirminiai skaičiai buvo naudojami norint pasiekti tą rezultatą, kelia didelių sunkumų. Rezultatas reiškia viešąjį raktą, o prime1 ir prime2 – privatųjį raktą.

Asimetriška kriptografija nutrūksta, kai įsilaužėliai naudoja prieš ją pakankamą skaičiavimo galią. Tačiau įsilaužėliams reikalingi superkompiuteriai, kad tai pasiektų per pagrįstą laiką. Šifravimą reikės tobulinti, kai kvantiniai kompiuteriai taps įprasta.

Skaitmeniniai parašai

Sukurtas privačiu raktu, skaitmeninis parašas atspindi privatųjį raktą ir taip parodo vartotoją, kuris yra pasirašęs nurodytą operaciją.

Galite galvoti apie skaitmeninį parašą kaip apie šifruoto pranešimo variantą. Kaip viešojo rakto kriptografija sukuria užkoduotą pranešimą, privatus raktas sukuria ir skaitmeninį parašą. Naudodami viešąjį raktą galite greitai patikrinti, ar skaitmeninis parašas buvo sukurtas privačiu raktu. Pagalvokite apie tai kaip apie dėlionę. Galvosūkį gali būti labai sunku užpildyti, tačiau jį tinkamai užpildžius, jūs jį patvirtinate iš pirmo žvilgsnio.

Vaišės Hash namuose

Kriptografinis maišos rezultatas yra matematinė funkcija, pagal kurią savavališko dydžio duomenys susiejami su fiksuoto dydžio bitų eilute, vadinama maišos reikšme arba tiesiog maišu. Pateikti įvesties duomenys visada sukelia tą patį maišos variantą. Taigi, jei pranešimas neatitinka su juo susijusios maišos vertės, žinote, kad pranešimas buvo sugadintas. Du skirtingi pranešimai niekada neturėtų sukurti tos pačios maišos vertės. Jei jie tai padarys, tai yra susidūrimas, o maišos funkcija, sukūrusi tą vertę, yra mirtinai ydinga.

Paprastas maišos pavyzdys

Tarkime, kad mes norime kaip įvesties duomenis maišyti paprastą eilutę „ABCDE“.

Sukurkime paprastą maišos algoritmą. Pirmiausia raides paverčiame skaičiais: A = 1, B = 2, C = 3, D = 4, E = 5. Mūsų gaunama maišos vertė turi būti vienas skaitmuo. Elementarusis metodas paprasčiausiai sujungia visus skaitmenis: 1 + 2 + 3 + 4 + 5 = 15. Tai duoda dviženklį skaičių, todėl mūsų algoritmas rekursiškai tęsia kiekvieno šio skaičiaus pridėjimą: 1 + 5 = 6. Tai reiškia 6 mūsų maišos vertė ir 6 reiškia „ABCDE“ kaip jo maišos reikšmę.

Jei „ABCDE“ gaunate kaip pranešimą, kurį kaip maišos žymi 6, pasitikite, kad pranešimas teisingas. Bet jei gavote pranešimą „ABCXE“, kurį žymi 6 maiša, neatitikimas yra aiškus dėl pranešimo klastojimo.

Mūsų paprastas maišos algoritmas, žinoma, neveikia daugeliu lygių. Pirmiausia, eilutė „EDCBA“ arba bet koks jų derinys sukuria tą patį maišos variantą kaip „ABCDE“, taip sukurdamas susidūrimus. Kompleksinė matematika įveikia šias problemas. Maišymo algoritmas, dažniausiai naudojamas kriptovaliutoje, eina pavadinimu SHA-256 (akronimas reiškia „Secure Hash Algorithm“). SHA-256 algoritme fiksuotas maišos vertės dydis yra 256 bitai.

Skaitmeniniai parašai ir maiša kriptovaliuta

Gerai, taigi kaip mes iš tikrųjų naudojame skaitmeninius parašus ir maišos kriptovaliutomis?

Pažvelkime į „Bitcoin“ operaciją, kad pamatytume, kokia technologija veikia.

„Bitcoin“ operacija skirstoma į dvi dalis: 1) įvesties skyrių ir 2) išvesties skyrių.

Įvesties skyriuje yra viešasis siuntėjo raktas, informacija, rodanti, kad siuntėjas turi pakankamai Bitcoins, kad padengtų operaciją, ir kita naudinga informacija. Siuntėjo privatus raktas sukuria skaitmeninį parašą, kad pasirašytų šią operaciją. Šis skaitmeninis parašas patenka į operacijos įvesties skyrių.

Išvesties skyriuje yra gavėjo piniginės adresas ir rodyklė, nes yra daugiau nei vienas išėjimas (įvairūs išėjimai atiteks gavėjui, siuntėjui ir kalnakasiui).

„Hashing“ pradeda veikti siekiant apsaugoti sandorio vientisumą. Tokiems duomenims kaip mokėtojas, gavėjas ir sumokėta suma reikia suklastoti, kad apsisaugotų nuo piktybinių veikėjų, keičiančių šią informaciją. Sujungus kriptografinį raktą ir šiuos įvesties parametrus maišos funkcijai gauti, sukuriamas operacijos ID. Dabar kriptografiškai užtikrintai žinome, kad siuntėjas iš tikrųjų turi įgaliojimus atlikti mokėjimą ir kad operacijos duomenys yra teisingi ir nebuvo sugadinti.

Musė pasukoje

Žinoma problema, susijusi su „Bitcoin“ operacijomis, kilo dėl vadinamojo sandorių pritaikomumas.

Sandorio pritaikomumas atsiranda dėl to, kad „Bitcoin“ maišo įvairius sandorio laukus. Apdorojant sandorį, kai kurie iš šių laukų gali pasikeisti, regis, nereikšmingais būdais. Bet kadangi jie keičiasi, maišos vertė keičiasi, todėl pasikeičia operacijos ID.

Norėdami tai vizualizuoti, pagalvokite apie lauką, kuriame yra sveikasis skaičius 123, tačiau apdorojimo metu sistema tai išplečia ir tampa 0123. Abi sudaro tą patį skaičių ir žiūrėdami į juos žinome, kad jie yra vienodi, tačiau maišos funkcija mato juos kaip skiriasi ir vėliau kiekvienam sukuria skirtingas maišos reikšmes. Šis keistenybė suteikia blogiems aktoriams galimybes žaisti sistemą.

SegWit į gelbėjimą

Segregated Witness (SegWit) technologija išsprendė šią problemą. „SegWit“ sukuria atskirą nuo bloko struktūrą (atskirtą). Šioje atskiroje struktūroje yra informacija, reikalinga sandorio galiojimui nustatyti (liudija sandorio galiojimą), tačiau nėra pačios operacijos duomenų. Tokiu būdu atskyrus sandorių duomenis, buvo pašalinta plastikavimo galimybė.

Baigiamosios mintys

Kriptografija vystosi tobulėjant technologijoms. Kompiuteriai ateityje tikrai sugadins šių dienų kriptografiją. Tačiau dabartiniam pasauliui, kuriame gyvename, skaitmeniniai parašai ir kriptografiniai maišos suteikia pakankamas garantijas, užtikrinančias mūsų operacijų saugumą ir vientisumą..