Przewodnik po kryptografii dla początkujących

Aby zrozumieć kryptowaluty na poziomie protokołu, konieczne jest zrozumienie matematycznych zależności leżących u podstaw całej kryptografii. Można rozpocząć tę podróż, cofając się do samego początku: narodzin wędzidła & ewolucja w kierunku bajtu.

Podstawy do podstaw

Pół wieku temu ojciec epoki informacyjnej, Claude Shannon, opublikował szanowaną obecnie przez przemysł Matematyczna teoria komunikacji rozprawa. To jest nazwa odtajnione wersja opublikowana publicznie przez ówczesnego matematyka z połowy lat 30. w 1949 r. Jednak wcześniej sklasyfikowana wersja była wysiłkiem wojennym opublikowanym przez prestiżowe Bell Labs o nazwie „A Mathematical Theory of Cryptography”. Wiele z podstawowych zasad, które zostały opublikowane w popularnej teorii komunikacji, wywodzi się z tajnej teorii kryptografii. W rzeczywistości Shannon powiedział słynne zdanie na temat wewnętrznej natury & nakładające się właściwości teorii komunikacji informacyjnej & kryptografia:

Byli tak blisko siebie, że nie można ich było rozdzielić.

Podczas gdy większość tego artykułu skupi się na tym, co przyszło po jego tezę „Matematyczna teoria komunikacji”, aby zrozumieć pewien standard, musimy przejść przez dekadę z powrotem w karierze Shannona – do kiedy był 28-letnim absolwentem MIT. Podążając za mistrzami elektrotechniki, jego głównym zadaniem było projektowanie nowych obwodów elektrycznych dla wczesnej wersji komputera. W głębi duszy matematyk przypomniał sobie abstrakcyjną matematykę logiczną, której nauczył się na studiach licencjackich na University of Michigan. Matematyka boolowska, jak pewnie się domyślasz, jest gałęzią matematyki, która zajmuje się prawdą & fałszywe stwierdzenia (lub 0 i 1). Matematyka boolowska, choć fascynująca, miała niewiele powszechnych zastosowań w połowie lat trzydziestych; Z drugiej strony projektowanie obwodów elektrycznych, nowoczesny przełom naukowy, rozpaczliwie potrzebowało zdyscyplinowanych ram dla dalszego zrozumienia.

W 1938 roku Shannon opublikował swoją pracę magisterską: Symboliczna analiza przekazu & Obwody przełączające. Ta genialna teza dowiodła, że ​​używając algebry Boole’a można koncepcyjnie zautomatyzować rozmieszczenie przekaźników w ręcznych centralach telefonicznych. W rozszerzeniu oznaczało to, że wykorzystując binarne właściwości przełączników elektrycznych jako funkcje logiczne, można użyć algebry boolowskiej do reprezentowania & rozwiązać wszelkie projekty obwodów.

Ta podstawowa struktura budowy obwodów stanowi obecnie podstawę całego nowoczesnego cyfrowego sprzętu komputerowego.

Dziesięć lat po jego wstępnej pracy magisterskiej, gdy tworzył swoją kawałek oporu Komunikacja & Teoria kryptografii głęboko w Bell Lab, w końcu zdecydował się nazwać to, co uważał za podstawowa jednostka wszystkich informacji: a binaryfikacjato, lub a kawałek.

Od bitów do bajtów

I tak kiedyś w ciągu lat błyskotliwość Shannona obejmowała naukową komunikację informacyjną & kryptografia wojenna (1944–1949), bit stał się standardową jednostką informacji dla wszystkich komputerów. Komputery ściśle rozumieją 0 & 1s… więc pojawia się pytanie, jak przejść od kodu binarnego do, powiedzmy, tych samych znaków alfanumerycznych, które czytasz na tym ekranie?

Notacja bitowa

Pojedynczy kawałek jest zawsze tylko zerem lub jedynką – ma tylko dwa możliwe stany[0,1]. Dla dwa bity, które otrzymujemy w sumie cztery możliwości: [00, 01, 10, 11].

Zgodnie z tym wzorem staje się dość oczywiste, że dla każdego n bity, które mamy 2 ^ n możliwe stany.

W końcu potrzeba więcej symboli & litery, aby praca z komputerami była bardziej przyjazna dla programistów, wysunęły się na pierwszy plan spojrzenia informatyków: jak zbudować system liczbowy, nie mówiąc już o całym alfabecie, od samych zer & 1s?

Szesnastkowy

Jeśli kiedykolwiek musiałeś dostosować kolor w Internecie, prawdopodobnie natknąłeś się w pewnym momencie na ciąg szesnastkowy – zwykle wygląda mniej więcej tak: # 012f5b

Projektanci doskonale znają ten system numeracji, ponieważ jest to standardowy sposób cyfrowego zapisywania kolorów. Podstawową zasadą szesnastkowego systemu liczbowego jest to, że każdy znak jest reprezentowany przez ściśle jedną z poniższych szesnaście wartości: 0–9 & A – F. Pierwsze dziesięć liczb całkowitych (licząc od zera) plus pierwsze sześć liter alfabetu angielskiego stanowią całość szesnastkowego systemu liczbowego. Razem łącznie szesnaście (16) możliwych stanów; innym sposobem zapisania 16 jest 2⁴. Jak moglibyśmy przedstawić te możliwe stany?

W sumie cztery bity: 4 bity = 2⁴ możliwych stanów

ASCII

Jednocyfrowe liczby całkowite & pierwsze sześć liter alfabetu angielskiego to z pewnością krok w kierunku bardziej przyjaznego języka komputerowego – ale czy to wystarczy? Jak moglibyśmy na przykład oznaczyć przestrzeń? rozróżniać małe litery & duże litery? Lub użyj interpunkcji, takiej jak wykrzyknik lub znak zapytania? Nie, szesnaście znaków by się nie nadawało.

Oryginalna wersja dzisiejszego standardu ASCII proponowała rozszerzenie siedem-system bitowy; Jednak wkrótce potem standardem stało się używanie rozszerzenia (lub pochodnej) wersji ASCII, która wymagała standard ośmiobitowy. Ten standard to oznaczał każdy czytelny dla człowieka znak wyjściowy może być reprezentowany przez osiem bitów, co przekładałoby się na 2⁸ = 256 możliwych stanów! Ten standard znaków ośmiobitowych do alfanumerycznych najlepiej podsumowuje poniższa tabela:

Każdy z 256 znaków może być reprezentowany przez kombinację osiem bitów

Bajty & Poza

Omówiliśmy teraz narodziny & pragmatyzm obliczeń z użyciem bitów, a także ich definiowania. Następnie wyjaśniliśmy, jak cztery bity (2⁴) dają nam nasz system szesnastkowy & jak osiem bitów (2⁸) daje nam nasz wciąż używany rozszerzony język ASCII. Zamierzamy teraz wprowadzić ostatnią zasadę, która, miejmy nadzieję, wyjaśni, dlaczego zrozumienie podstaw bitów ma kluczowe znaczenie dla dokładnego zrozumienia kryptografii & przez rozszerzenie kryptowaluty.

Osiem bitów (2⁸) to tak naprawdę bardzo ważna liczba nie tylko w kryptografii & kryptowaluty, ale we wszystkich komputerach. W rzeczywistości osiem bitów jest tak standardowe, że nadano im nową nazwę symbolizującą ośmiobitowy łańcuch: a bajt. ZA bajt jest łańcuchem ośmiu bitów: 8 bitów = 1 bajt.

Fakt, że bajty mogą reprezentować pojedynczy znak, jest głównym powodem, dla którego czynniki ośmiu są niezwykle powszechnymi liczbami w kryptografii, takimi jak 128, & 256 (ze słynnego algorytmu mieszającego SHA256 konsensusu Bitcoin). Intuicyjne zrozumienie, jak przejść od bitów, przez wartości szesnastkowe, przez znaki alfanumeryczne do bajtów, będzie podstawową częścią potrzebnej wiedzy umożliwiającej prawdziwe zrozumienie sił napędowych kryptowalut.

Jeśli czujesz się przytłoczony, nie martw się, to zupełnie naturalne, gdy omawiasz tak złożone tematy. Poświęć minutę, zanim przejdziesz do kryptograficznych funkcji skrótu.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me