Digitální podpis je šifrovací mechanismus používaný k ověření pravosti a integrity digitálních dat. Můžeme to považovat za digitální verzi běžných ručně psaných podpisů, ale s vyšší úrovní složitosti a zabezpečení.

Zjednodušeně můžeme digitální podpis popsat jako kód připojený ke zprávě nebo dokumentu. Po vytvoření slouží kód jako důkaz, že se zprávou na cestě od odesílatele k příjemci nebylo manipulováno.

Přestože koncept zabezpečení komunikace pomocí kryptografie sahá až do starověku, schémata digitálního podpisu se stala možnou realitou v 70. letech 20. století díky rozvoji kryptografie veřejného klíče (PKC). Abychom věděli, jak digitální podpisy fungují, musíme nejprve porozumět základům hašovacích funkcí a kryptografie veřejného klíče.


Hashovací funkce

Hašování je jedním ze základních prvků systému digitálního podpisu. Proces hashování zahrnuje převod dat libovolné velikosti na výstup s pevnou velikostí. To se provádí speciálním typem algoritmu známým jako hashovací funkce. Výstup generovaný hashovací funkcí je známý jako hash value nebo message digest.

V kombinaci s kryptografií lze použít takzvané kryptografické hašovací funkce k vytvoření hašovací hodnoty (digestu), která funguje jako jedinečný digitální otisk prstu. To znamená, že jakákoli změna ve vstupních datech (zprávě) může mít za následek úplně jiný výstup (hodnotu hash). To je důvod, proč jsou kryptografické hašovací funkce široce používány k ověření pravosti digitálních dat.


Kryptografie veřejného klíče (PKC)

Kryptografie veřejného klíče nebo PKC označuje kryptosystém, který používá pár klíčů: jeden veřejný klíč a jeden soukromý klíč. Tyto dva klíče jsou matematicky příbuzné a lze je použít k šifrování dat a digitálních podpisů.

PKC jako kryptografický nástroj je považován za bezpečnější než primitivní metody symetrického šifrování. Zatímco starší systémy se při šifrování a dešifrování informací spoléhaly na stejný klíč, PKC umožňuje šifrování dat pomocí veřejného klíče a dešifrování dat pomocí odpovídajícího soukromého klíče.

Kromě toho lze systém PKC použít také při generování digitálních podpisů. Proces spočívá v hašování zprávy (nebo digitálních dat) spolu se soukromým klíčem podepisujícího, po kterém může příjemce zprávy ověřit, zda je podpis platný pomocí veřejného klíče poskytnutého podepisovatelem.

V některých situacích mohou digitální podpisy zahrnovat šifrování, ale není tomu tak vždy. Například bitcoinový blockchain používá PKC a digitální podpisy, ale v tomto procesu neexistuje žádné šifrování, na rozdíl od toho, co si mnoho lidí myslí. Technicky, Bitcoin nasazuje to, co se nazývá Elliptic Curve Digital Signature Algorithm (ECDSA) k ověřování transakcí.


Jak fungují digitální podpisy

V oblasti digitálních měn se systém digitálního podpisu často skládá ze tří základních kroků: hashování, podepisování a ověřování.

Fragmentace dat

Prvním krokem je hash digitální zprávy nebo dat. To se provádí předáním dat přes hashovací algoritmus, takže se vygeneruje hash hodnota (tj. výtah zprávy). Jak již bylo zmíněno dříve, zprávy se mohou velmi lišit ve velikosti, ale když jsou hashovány, všechny hodnoty hash mají stejnou délku. Toto je základní vlastnost hashovací funkce.

Hašování dat však není nutné k vytvoření digitálního podpisu, protože soukromý klíč lze použít k podepsání zprávy, která nikdy nebyla hashována. Ale u kryptoměn jsou data vždy hašována, protože práce s daty s pevnou délkou celý proces usnadňuje.

Podpis

Poté, co jsou informace hashovány, musí je odesílatel zprávy podepsat. Toto je okamžik, kdy vstupuje do hry kryptografie s veřejným klíčem. Existuje několik typů algoritmů digitálního podpisu a každý má svůj vlastní mechanismus, kterým funguje. Ale v zásadě je hash zpráva podepsána pomocí soukromého klíče a příjemce zprávy si pak může ověřit její platnost pomocí symetrického veřejného klíče (poskytnutého podepisovatelem).

Jinými slovy, pokud soukromý klíč není zahrnut při generování podpisu, příjemce zprávy nebude moci použít symetrický veřejný klíč k ověření jeho pravosti. Veřejné i soukromé klíče jsou generovány odesílatelem zprávy, ale pouze veřejný klíč je sdílen s příjemcem zprávy.

Je třeba poznamenat, že digitální podpisy jsou přímo spojeny s obsahem každé zprávy. To je na rozdíl od ručně psaných podpisů, které mají tendenci být stejné bez ohledu na zprávu, každá digitálně podepsaná zpráva bude mít jiný digitální podpis.

Ověření

Vezměme si příklad pro ilustraci celého procesu až do posledního kroku, kterým je ověření. Představte si, že Alice napíše zprávu Bobovi, zahashuje ji a poté zkombinuje hodnotu hash se svým soukromým klíčem, aby vytvořila digitální podpis. Podpis bude pro tuto zprávu fungovat jako jedinečný digitální otisk prstu.

Když Bob obdrží zprávu, může ověřit pravost digitálního podpisu pomocí veřejného klíče, který Alice poskytne. Tímto způsobem si Bob může být jistý, že Alice vytvořila podpis, protože pouze ona má soukromý klíč, který odpovídá tomuto veřejnému klíči (alespoň tomu je to, co očekáváme).

Je proto důležité, aby Alice uchovala soukromý klíč na tajném místě, aby pokud se někomu jinému dostane do rukou soukromý klíč Alice, mohl vytvářet digitální podpisy a vydávat se za Alici (vydávat se za ni). V kontextu bitcoinu to znamená, že kdokoli může použít soukromý klíč Alice k převodu nebo utrácení jejích bitcoinů bez jejího svolení.


Proč jsou digitální podpisy důležité?

Digitální podpisy se často používají k dosažení tří výsledků: integrity dat, autentizace a nepopiratelnosti.

  • Integrita dat. Bob může ověřit, že Alicina zpráva nebyla poté, co byla odeslána, změněna, protože jakákoliv úprava zprávy by vedla ke zcela jinému podpisu.

  • Dokumentace. Dokud je Alicin soukromý klíč zabezpečen a důvěrný, může Bob použít veřejný klíč k potvrzení, že digitální podpisy vytvořila Alice a ne někdo jiný.

  • Nepopírání. Jakmile je podpis vytvořen, Alice nebude moci tento podpis v budoucnu odmítnout, pokud nebude ohrožen její soukromý klíč.


Případy užití

Digitální podpisy lze použít na různé typy dokumentů a digitálních certifikátů. Jako takový má mnoho aplikací. Mezi nejčastější případy použití patří:

  • informační technologie. Zvýšit bezpečnost online komunikačních systémů.

  • Finance. Digitální podpisy lze použít pro audity, výkazy výdajů, úvěrové smlouvy a další.

  • právní. Digitální podpis pro všechny typy obchodních smluv a právních dohod včetně vládních dokumentů.

  • zdravotní péče. Digitální podpisy mohou zabránit podvodům v předpisech a lékařských záznamech.

  • Blockchain. Systémy digitálního podpisu zajišťují, že transakce za účelem převodu finančních prostředků mohou podepsat pouze legitimní vlastníci digitálních měn (pokud nejsou ohroženy jejich soukromé klíče).


Omezení

Hlavní výzvy, kterým digitální podpisy čelí, závisí na minimálně třech požadavcích:

  • Algoritmus. Kvalita algoritmů používaných v systémech digitálního podpisu je velmi důležitá. To zahrnuje výběr spolehlivých hashovacích funkcí a kryptografických systémů.

  • Implementace. Pokud jsou algoritmy dobré, ale implementace ne, pak má systém digitálního podpisu pravděpodobně nedostatky.

  • Soukromý klíč. Pokud dojde k úniku nebo nějakému ohrožení soukromých klíčů, některé vlastnosti, jako je neodmítnutí a jiné, budou zrušeny. Pro uživatele digitální měny může ztráta soukromého klíče způsobit značné finanční ztráty.


Elektronické podpisy a digitální podpisy

Jednoduše řečeno, digitální podpisy se týkají specifického typu elektronického podpisu, který se vztahuje na jakýkoli elektronický způsob podepisování dokumentů a zpráv. Proto jsou všechny digitální podpisy elektronickými podpisy, ale opak není vždy pravdou.

Hlavním rozdílem mezi nimi je metoda ověřování. Digitální podpisy používají kryptografické systémy, jako jsou hashovací funkce, šifrování veřejným klíčem a šifrovací techniky.


Závěrečné myšlenky

Hašovací funkce a kryptografie veřejného klíče jsou jádrem systémů digitálního podpisu a nyní se používají v široké škále případů použití. Pokud jsou správně implementovány, mohou digitální podpisy zvýšit bezpečnost, zajistit integritu a usnadnit ověřování všech typů digitálních dat.

Ve světě blockchainu se digitální podpisy používají k podepisování a autorizaci transakcí kryptoměn. V bitcoinech jsou zvláště důležité, protože podpisy zajišťují, že coiny mohou utrácet pouze jednotlivci, kteří vlastní odpovídající soukromé klíče.

Přestože elektronické i digitální podpisy používáme již léta, stále je zde velký prostor pro růst. Velká část dnešní byrokracie stále závisí na papírování, ale s přechodem na digitálnější systém pravděpodobně uvidíme větší přijetí systémů digitálního podpisu.