Není pochyb o tom, že kryptoměny jsou obrovský fenomén. Jsou zde jen deset let, ale i za tak krátkou dobu na sebe dokázaly strhnout velkou pozornost. Myšlenka otevřeného, nejen monetárního systému, ale jakéhokoliv systému, který vyžaduje jistý druh konsenzu, je po celém světě vítána skutečně pozitivně. Asi to znamená, že se současnými systémy lidé zkrátka nejsou spokojeni a volají po alternativě.

Kryptoměny a kryptoměnové sítě jsou propleteny množstvím nových technologií a idejí. Ne však všechny koncepty, na základě kterých tyto ideje vznikly, jsou takové nové a průlomové. Jejich spojením se pro ně našlo nové využití ve formě decentralizovaných transakčních systémů. Jedním takovým konceptem je využití  kryptografie pro zajištění správného fungování zmíněných systémů. V dnešní části  se detailněji podíváme právě na to, jakou roli hraje kryptografie v kryptoměnových systémech.

Jelikož kryptoměny a kryptografie sdílejí společný prefix krypto“ , každému je víceméně jasné, že bez kryptografie by to kryptoměny daleko nedotáhly. Právě proto si tento nový fenomén sebral stejný prefix jako věda zkoumající šifrování zpráv, dat a nejen internetové komunikace.

Trochu teorie o kryptografii

Kryptografie se studuje snad na všech technických školách. Je to vědní disciplína a nechceme ji zde rozebírat dopodrobna. Pojďme se ale podívat alespoň na její stručnou historii a základy.

Kryptografii jako vědní disciplínu zahrnuje kryptologie. Kryptologie je tedy zastřešující vědní obor, pod který patří i kryptoanalýza a steganografie.

Kryptologie se skládá ze tří samostatných disciplín:

  • Kryptografie: Zabývá se hlavně tvorbou šifer, které mají jediný cíl, a to skrýt citlivá data před nepovolanými osobami. Jejím cílem je bezpečnost informačních systémů se zaměřením na:
    • důvěrnost / utajení  (confidentiality) – při přenosu dat, uložení na média, atd.,
    • integritu (data integrity) – správnost obsahu přenesené zprávy,
    • ověření pravosti (authentication) – potvrzení totožnosti odesílatele.
  • Kryptoanalýza: Vědní disciplína, která se na rozdíl od kryptografie zabývá luštěním šifer, které byly vytvořeny nějakým kryptosystémem. Jde tedy o nalezení způsobu, jak dešifrovat (neautorizovaně) zašifrovaný text.
  • Steganografie: Oblast kryptologie, jejíž cílem je zatajit existenci zprávy. Steganografické metody obsahují například používání neviditelných inkoustů, atd.

Stručný pohled na zajímavé události z historie kryptografie

Kryptografie nepatří mezi mladé disciplíny, právě naopak. Potřeba šifrovat údaje sahá hluboko do minulosti, až do dob faraonů. První zmínka o šifrování pochází z Egypta přibližně 4,000 let dozadu.

Starověk

Z historického hlediska patří mezi klasické typy šifer takové, které spočívají v zamíchání pořadí písmen textu nebo zprávy, např. slovo „Bitcoin“ by se zmodifikovalo na „inbitco“. Takové šifry se nazývají transpoziční šifry. Dále to jsou  substituční šifry, které spočívají v systematickém nahrazování jednotlivých symbolů obsahu textu za určené další symboly nebo skupinu symbolů. Například substituční šifra slova „Bitcoin“ by mohla vypadat jako „cjudpjo“, přičemž v tomto způsobu se symboly šifrované abecedy posunuly o jeden symbol oproti abecedě otevřeného textu. Jednoduché verze obou šifer však poskytovaly v případě zachycení zprávy nepovolanou osobou jen malou ochranu a byly snadno dešifrovatelné. Mezi nejstarší substituční šifry patří Caesarova šifra, která spočívá v tom, že každé písmeno n otevřeného textu bylo nahrazeno písmenem na pozici n + k. Tato šifra je pojmenována po Caesarovi, který ji používal s posunutím k o 3 místa (tedy n + 3 ) v abecedě při komunikaci s jeho generály během vojenských operací.

20. století

Významný rozvoj v kryptografii nastal počátkem 20. století, kdy došlo k vynálezu a zavedení telegrafu. V roce 1917 byl vynalezen první bezpečný kryptosystém Vernam, který byl postaven na dalším typu šifry – proudové šifře. Období do konce 50. let je charakteristické hlavně používáním složitých mechanických a elektromechanických šifrovacích strojů. Velký pokrok v kryptografii nastal hlavně během I. a II. světové války, kdy se šifrování stalo velmi důležitou disciplínou.

Mezi asi nejznámější příběh a mezi nejvýznamnější šifrovací přístroje té doby patřila Enigma. Přístroj používaný Němci během druhé světové války, který dlouhou dobu představoval skutečně „tvrdý oříšek“. Němci věřili, že tato šifra je bez klíče neprolomitelná. Šifru však prolomili polští matematici Marian RejewskiHenrik Zygalski a britský matematik Alan Turing. Práce Alana Turinga je považována za moderní počátek doby počítačů jako takové. V roce 1932 Rejewski rozkódoval jeden z jednodušších typů Enigmy. Bez jeho práce by i Alanovi Turingovi trvalo rozkódování Enigmy příliš dlouho a stálo by to mnoho spojeneckých životů. Novější typ Enigmy (tzv. Ponorková Enigma) byla rozkódována i díky šťastné náhodě, kdy byla zajata německá ponorka, jež měla na své palubě jeden přístroj Enigma. Než ji Němci stihli zničit, dostala se do rukou Angličanům. Ti konečně rozluštili „záhadu neprolomiteľného kódu“ šifrovacího stroje Enigma.

Kryptografie v kryptoměnách

Většina kryptoměn si samozřejmě nezakládá na odesílání tajných zašifrovaných zpráv. Veškeré informace týkající se transakcí, jako v případě Bitcoinu, jsou veřejné, a proto není nutné zasílat mezi stranami „skryté zprávy“. Některé novější měny jako  Monero nebo Zcash se ve skutečnosti pokoušejí skrýt i podrobnosti o transakcích a používají kryptografii v tradičnějším slova smyslu, aby tyto informace skryly.

Technologie Zcash může pomoci při škálování Ethereum sítě, tvrdí Vitalik Buterin

Některé z nástrojů, které byly vyvinuty pro tradiční kryptografii, mají i jiné užitečné funkce. Dvě nejdůležitější z nich jsou hashování (hashing) digitální podpisy. Přestože ani jedna z nich nezahrnuje odesílání „skrytých zpráv“, jsou stále považovány za formy kryptografie. Právě toto jsou principy, bez kterých by se kryptoměny jen těžko obešly. Pojďme si je představit blíže.

Hashování

Hashování nebo také hashing či hash funkce se používá na efektivní kontrolu integrity dat. Jedná se o způsob, jak vzít velké množství různých údajů (vstupní data označíme x ) a jednoduše je reprezentovat jako jeden řetězec znaků vždy stejné, předem stanovené délky. Takový řetězec generuje právě zmiňovaná hash funkce (tu si označíme H(x)).

Aby tato funkce byla efektivní, musí splňovat tři důležité vlastnosti:

  • Rychlost transformace: Funkce rychle spočítá ze vstupu x  výstup H(x).
  • Rozložení výstupů: Funkce musí distribuovat výstupy rovnoměrně v celém oboru hodnot, tedy produkuje málo kolize.
  • Lavinovost: Vytvořený hash musí natolik záviset na každém bite vstupu, že i jeho malá změna rapidně ovlivní výstup.

V kryptografii a stejně i u kryptoměn se používají tzv. kryptografické hashovací funkce. Na takový typ hashovací funkce jsou kladeny ještě větší nároky, zejména na bezpečnost. To z ní činí vhodného kandidáta pro použití v různých aplikacích informační bezpečnosti, jakými jsou např. autentifikace či zmiňovaná integrita zpráv. Mezi nejznámější kryptografické hashovací algoritmy patří MD5 (Message-digest 5) a verze SHA algoritmu (Secure Hash Algorithm).

Transformace obyčejného textu libovolné délky na hash „bochníky“ stanovené délky (v tomto případě 64 znaků).

Hash funkcí existuje velké množství. Bitcoin momentálně používá algoritmus zvaný  SHA-256. Ten generuje hash délky 64 bajtů (tedy 64 znaků). Ethereum používá hash algoritmus SHA3, konkrétně SHA3-Keccak.

Hashing se dále používá také k udržení struktury údajů v blockchainech, které uchovávají např. data o zůstatcích na účtech (tato datová struktura se nazývá hashovací strom nebo Merkle tree ). Také se používá pro kódování adres účtů a jako součást procesu kódování transakcí mezi účty. Hash hraje velmi důležitou roli i při vytváření nových coinů. Používá se při těžbě kryptoměn, tedy při generování matematických problémů, které musejí mineři vyřešit, aby mohli emitovat nové coiny do oběhu.

Každý blok v Bitcoinové síti má svůj hash. Pomocí hashů se v blockchainu jednotlivé bloky na sebe odkazují.

Digitální podpis

Digitální podpis je matematické schéma pro ověření pravosti digitálních zpráv nebo dokumentů. Platný digitální podpis dává příjemci důvod se domnívat, že zpráva byla vytvořena známým odesílatelem (ověřování), že odesílatel nemůže popřít odeslání zprávy (nepopiratelnost) a že zpráva nebyla během odesílání změněna (integrita).

Digitální podpisy jsou standardním prvkem většiny kryptografických protokolů a běžně se používají k distribuci softwaru, finanční transakce, v softwarech na správu smluv a v případech, kdy je důležité odhalit falšování nebo manipulaci dat. Skvělé uplatnění našly samozřejmě i v kryptoměnách.

Digitální podpisy umožňují osobě vzít tajnou informaci, kterou vlastní, a dokázat, že tuto informaci skutečně vlastní, aniž by tajemství zveřejnila. Kryptoměny umožňují uživatelům podepisovat peněžní transakce s těmito digitálními podpisy, aby dokázaly v síti, že vlastník účtu držící peněžní prostředky souhlasil s uskutečněním transakce. Tyto podpisy, tak jako se používají v kryptoměnách, se vyvinuly z tzv. kryptografie eliptické křivky. To je opět technologie, která byla původně používána k vytváření „skrytých zpráv“ jako součást tradiční kryptografie.

Bitcoin a Ethereum používají pro digitální podpisy známý algoritmus eliptické křivky – ECDSA (Elliptic Curve Digital Signature Algorithm).

Budou offline transakce dalším významným krokem pro Bitcoin?

Veřejný a soukromý klíč

U digitálních podpisů a posílání šifrovaných zpráv hraje velmi důležitou roli pár speciálních klíčů. Tyto klíče se nazývají veřejný soukromý, nebo také privátní, klíč. Známé a často používané jsou i anglické pojmy public key a private key. S těmito pojmy jste se určitě u kryptoměn setkali. Pojďme se ale podívat, kde a jak přesně do procesu vstupují.

Šifrování pomocí dvou rozdílných klíčů spadá do oblasti kryptografie, která se nazývá asymetrická kryptografie. Každý účastník má tedy šifrovací klíče dva, které vytvářejí dvojici. Soukromý klíč se používá (majitelem) na dešifrování přišlých zpráv a podepisování odesílaných zpráv. Veřejný klíč se používá (ostatními) pro šifrování odesílaných zpráv a ověření autenticity (podpisu) došlých zpráv.

Pro lepší pochopení toho, jak to celé funguje, se podívejme na následující ilustraci. Je to zjednodušený náčrt toho, jak funguje šifrování, dešifrování a podepisování zpráv (transakcí) nejen v Bitcoinové síti.

Průběh podpisu a ověření pravosti podpisu posílané zprávy.

Uplatněním poznatků z tohoto článku vidíme, že odesílatel posílá zprávu, tedy nějaká data. Ta přejdou hashovacím algoritmem (v případě Bitcoinu je to SHA-256). Výsledkem tohoto procesu je hash. Ten se dále zašifruje použitím privátního klíče odesílatele a vznikne digitální podepsaná zpráva. Taková zpráva (transakce) je připravena k odeslání do sítě. Když dorazí k příjemci, ten ji dešifruje veřejným klíčem odesílatele, a zároveň vytvoří hash ze zašifrované zprávy. Pokud se tyto dva hashe shodují, podpis je pravý. U kryptoměn musí být transakce ještě vložena do bloku a tento blok musejí mineři zapsat do blockchainu. Teprve tehdy je samotná transakce zcela hotová.

První clipper malware v Google Play připravuje lidi o kryptoměny: Dokáže měnit zkopírovaný text

Originální verze tohoto článku byla publikována na našem slovenském webu kryptoportal.sk