Pradedančiųjų kriptografijos vadovas

Norint suprasti kriptovaliutas protokolo lygmeniu, būtina suprasti matematinius santykius, kuriais grindžiama visa kriptografija. Šią kelionę galima pradėti nuo pat pradžių: truputėlio gimimo & evoliucija link baito.

Pagrindai ir pagrindai

Prieš pusšimtį metų informacijos amžiaus tėvas Claude’as Shannonas paskelbė dabar pramonės gerbiamą Matematinė komunikacijos teorija disertacija. Tai vardas išslaptinta versija, viešai paskelbta tuometinio 30-ųjų vidurio matematiko 1949 m. Tačiau anksčiau klasifikuota versija buvo karo pastangos, kurias paskelbė prestižinės „Bell Labs“ pavadinimu „Matematinė kriptografijos teorija“. Daugelis pagrindinių principų, kurie buvo paskelbti populiarioje komunikacijos teorijoje, kilo iš slaptos kriptografijos teorijos. Tiesą sakant, Shannon garsiai pasakė taip apie esmę & sutampančios informacijos komunikacijos teorijos savybės & kriptografija:

Jie buvo taip arti vienas kito, kad negalėjai jų atskirti.

Nors didžioji šio straipsnio dalis bus sutelkta į tai, kas atėjo po to jo „Matematinės komunikacijos teorijos“ disertaciją, norint suprasti tam tikrą standartą, būtina pereiti dešimtmetį atgal Shannono karjeroje – iki tada, kai jis buvo 28 metų MIT magistrantas. Siekdamas elektros inžinerijos magistrų, jo pagrindinė užduotis buvo sukurti naujas elektros grandines ankstyvai kompiuterio versijai. Širdies matematikas prisiminė abstrakčią loginę matematiką, kurią jis išmoko bakalauro studijose Mičigano universitete. Būlo matematika, kaip tikriausiai atspėjote, yra matematikos šaka, susijusi su tiesa & klaidingi teiginiai (arba 0s ir 1s). Nors loginė matematika buvo patraukli, 30-ųjų viduryje ji buvo mažai paplitusi; kita vertus, elektros grandinių projektavimui, šiuolaikiniam mokslo proveržiui, labai reikėjo drausmingos sistemos tolesniam supratimui.

1938 m. Shannon paskelbė savo magistro darbą: Simbolinė relės analizė & Perjungimo grandinės. Ši geniali tezė įrodė, kad naudojant Boolean algebrą, konceptualiai galima automatizuoti relių išdėstymą rankinėse telefono stotyse. Išplėtus, tai reiškė, kad naudojant dvejetaines elektrinių jungiklių savybes kaip logines funkcijas, būtų galima panaudoti boolean algebrą & išspręsti bet kokie grandinės projektai.

Ši pagrindinė grandinių kūrimo sistema šiuo metu yra visos šiuolaikinės skaitmeninės kompiuterinės įrangos pagrindas.

Dešimtmetį po pradinio magistro darbo, kurdamas savo gabalas de pasipriešinimas bendravimas & kriptografijos teorija giliai „Varpų laboratorijoje“ jis pagaliau nusprendė įvardyti tai, kas, jo manymu, buvo pagrindinis visos informacijos vienetas: a binaras kastitai, arba, a šiek tiek.

Nuo bitų iki bitų

Taigi kažkada per tuos metus Shannonso spindesys apėmė mokslinę informacinę komunikaciją & karo laikų kriptografija (1944–1949), bitai tapo standartiniu informacijos vienetu visiems kompiuteriams. Kompiuteriai griežtai supranta 0 & 1s … taigi kyla klausimas, kaip pereiti nuo dvejetainio kodo prie, tarkime, tų pačių raidinių ir skaitinių simbolių, kuriuos skaitote šiame ekrane?

Bitų žymėjimas

Vienvietis šiek tiek yra tik nulis arba vienas – jis turi tik dvi galimos būsenos[0,1]. Dėl du bitų iš viso gauname keturi galimybės: [00, 01, 10, 11].

Laikantis šio modelio tampa gana akivaizdu, kad kiekvienam n bitų mes turime 2 ^ n galimos būsenos.

Galų gale reikia daugiau simbolių & laiškai, kad darbas su kompiuteriais būtų patogesnis kūrėjams, atėjo į informatikų žvilgsnį: kaip galima sukurti skaičių sistemą, o ką jau kalbėti apie visą abėcėlę tik iš 0 & 1s?

Šešioliktainis

Jei kada nors teko tinkinti spalvą internete, tikriausiai vienoje ar kitoje vietoje susidūrėte su šešioliktainėmis eilutėmis – jos paprastai atrodo taip: # 012f5b

Dizaineriai yra labai gerai susipažinę su šia numeravimo sistema, nes tai yra standartinis būdas žymėti spalvas skaitmeniniu būdu. Pagrindinė šešioliktainių skaičių sistemos taisyklė yra ta, kad kiekvieną simbolį žymi griežtai vienas iš šių šešiolika reikšmės: 0–9 & Pirmieji dešimt sveikųjų skaičių (skaičiuojant nulį) ir pirmosios šešios angliškos abėcėlės raidės sudaro šešioliktainės numeracijos sistemos visumą. Vėlgi, iš viso šešiolika (16) galimų valstybių; kitas 16 rašymo būdas yra 2⁴. Kaip galėtume atstovauti šioms galimoms valstybėms?

Iš viso su keturiais bitais: 4 bitai = 2⁴ galimos būsenos

ASCII

Vienženkliai skaičiai & pirmosios šešios anglų abėcėlės raidės tikrai yra žingsnis link draugiškesnės kompiuterinės kalbos – bet ar to pakanka? Kaip mes, pavyzdžiui, pažymėtume erdvę? atskirti mažąsias raides & didžiosios raidės? Arba naudokite skyrybos ženklus kaip šauktuką ar klaustuką? Ne, šešiolika simbolių nedarytų.

Originali šiandienos standarto ASCII versija pasiūlė a septyni-bitų sistema; tačiau netrukus po to tapo įprasta naudoti išplėstinę (arba išvestinę) ASCII versiją, reikalaujančią aštuonių bitų standartas. Šis standartas tai reiškė bet koks kompiuterio kompiuterio išvestį žmogui skaitomą simbolį galima pavaizduoti aštuoniais bitais, o tai reikštų 2⁸ = 256 galimas būsenas! Šį aštuonių bitų raidinių ir skaitmeninių simbolių standartą geriausiai apibendrina toliau pateikta lentelė:

Kiekvienas iš 256 simbolių gali būti pavaizduotas deriniu aštuoni bitai

Baitai & Anapus

Dabar mes aprėpėme gimdymą & skaičiavimo su bitais pragmatizmas, taip pat apibrėžimas. Iš ten mes paaiškinome, kaip keturi bitai (2⁴) suteikia mums šešioliktainę sistemą & kaip aštuoni bitai (2⁸) suteikia mums vis dar naudojamą išplėstinę ASCII kalbą. Dabar pristatysime galutinį principą, kuris, tikiuosi, paaiškins, kodėl norint suprasti kriptografiją labai svarbu suprasti bitų pagrindus & pratęsiant kriptovaliutas.

Aštuoni bitai (2⁸) yra labai svarbus skaičius ne tik kriptografijoje & kriptovaliutos, bet visais skaičiavimais. Tiesą sakant, aštuoni bitai yra tokie standartiniai, kad jiems buvo suteiktas naujas vardas, simbolizuojantis aštuonių bitų eilutę: a baitas. A baitas yra aštuonių bitų eilutė: 8 bitai = 1 baitas.

Tai, kad baitai gali atspindėti vieną simbolį, yra pagrindinė priežastis, kodėl aštuonių koeficientai yra itin dažni kriptografijos skaičiai, pavyzdžiui, 128, & 256 (iš garsiojo „Bitcoin Consensus“ maišos algoritmo SHA256). Intuityvus supratimas, kaip pereiti nuo bitų, nuo šešioliktainių reikšmių prie raidinių ir skaitinių simbolių iki baitų, bus pagrindinė reikalingų žinių dalis, kad būtų galima suprasti kriptovaliutų varomąsias jėgas..

Jei jaučiatės priblokštas, nesijaudinkite, tai visiškai natūralu pažeidžiant tokias sudėtingas temas. Skirkite minutę, kol pereisite prie kriptografinių maišos funkcijų.