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

Pro zjednodušení můžeme digitální podpis popsat jako kód připojený ke zprávě nebo dokumentu. Kód po vygenerování slouží jako důkaz, že se zprávou mezi odesílatelem a příjemcem nebylo nijak manipulováno.

Přestože koncept zabezpečení komunikace pomocí kryptografie sahá do historie lidstva poměrně daleko, systémy digitálního podpisu se staly realitou v 70. letech – díky vývoji Public Key Cryptography (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

Hash představuje jeden z hlavních prvků systému digitálního podpisu. Proces hashování zahrnuje transformaci dat libovolné velikosti na výstup s předem určenou velikostí. Toho je dosaženo pomocí speciálního typu algoritmu známého jako hashovací funkce. Výstup generovaný hašovací funkcí je známý jako hašovací hodnota nebo otisk prstu.

V kombinaci s kryptografií lze kryptografickou hašovací funkci použít ke generování hašovací hodnoty (otisku prstu), která funguje jako jedinečný digitální otisk. To znamená, že jakákoliv změna ve vstupních datech (zprávě) by měla 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 s veřejným klíčem, nebo PKC, odkazuje na kryptografický systém, který používá pár klíčů: veřejný klíč a soukromý klíč. Tyto dva klíče jsou matematicky korelované a lze je použít jak pro šifrování dat, tak pro digitální podpisy.

Jako šifrovací nástroj je PKC bezpečnější než primitivnější metody symetrického šifrování. Zatímco starší systémy spoléhají na stejný klíč k šifrování a dešifrování informací, PKC umožňuje šifrování dat pomocí veřejného klíče a dešifrování těchto dat pomocí odpovídajícího soukromého klíče.

Kromě toho lze schéma PKC použít také při generování digitálních podpisů. Proces v podstatě zahrnuje hašování zprávy (nebo digitálních dat) pomocí soukromého klíče podepisujícího. Poté může příjemce zprávy zkontrolovat, 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 na rozdíl od toho, čemu má mnoho lidí tendenci věřit, v procesu není žádné šifrování. Technicky, Bitcoin nasazuje Elliptic Curve Digital Signature Algorithm (ECDSA) k ověřování transakcí.


Jak fungují digitální podpisy

V kontextu kryptomě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í.

Hašování dat

Prvním krokem je hašování zprávy nebo digitálních dat. Toho lze dosáhnout tak, že data projdou algoritmem hash, aby se vygenerovala hodnota hash (tj. shrnutí zprávy). Jak již bylo zmíněno, zprávy se mohou výrazně lišit ve velikosti, ale když jsou hashovány, všechny jejich hodnoty hash mají stejnou velikost. Toto je nejzákladnější vlastnost hashovací funkce.

Hašování dat však není povinnou podmínkou pro vytvoření digitálního podpisu, protože soukromý klíč lze použít k podepsání zprávy, aniž by byla hašována. Pokud jde o kryptoměny, data jsou systematicky hašována, protože manipulace s otisky prstů, jejichž velikost je pevná a neměnná, tento proces usnadňuje.

Podpis

Po hashování informací musí odesílatel zprávu podepsat. Zde vstupuje do hry kryptografie s veřejným klíčem. Existuje několik typů algoritmů digitálního podpisu, z nichž každý má svůj vlastní mechanismus. Ale obecně řečeno, hashovaná zpráva bude podepsána soukromým klíčem a příjemce zprávy pak může ověřit její platnost pomocí odpovídajícího veřejného klíče (poskytnutého podepisovatelem).

To znamená, že pokud soukromý klíč není zahrnut při generování podpisu, příjemce zprávy nebude moci použít odpovídající veřejný klíč k ověření jeho platnosti. Veřejné a soukromé klíče jsou generovány odesílatelem zprávy, ale pouze veřejný klíč je sdílen s příjemcem.

Je důležité si uvědomit, že digitální podpisy jsou přímo spojeny s obsahem každé zprávy. Takže na rozdíl od ručně psaných podpisů, které mají tendenci být systematicky stejné bez ohledu na zprávu, ke které jsou připojeny, bude mít každá digitálně podepsaná zpráva jiný digitální podpis.

Ověření

Vezměme si příklad pro ilustraci celého procesu až po závěrečný krok 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 a vygeneruje digitální podpis. Podpis bude fungovat jako jedinečný digitální otisk pro danou konkrétní zprávu.

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

Pro Alici je tedy zásadní udržet svůj soukromý klíč v tajnosti. Pokud někdo jiný dostane do rukou soukromý klíč Alice, bude tato osoba moci vytvářet digitální podpisy a vydávat se za Alice. V kontextu bitcoinu to znamená, že někdo mohl použít soukromý klíč Alice k přesunu 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í pro tři účely, kterých jejich vlastnosti dosahují: integrita dat, autentizace a nepopiratelnost.

  • Integrita dat. Bob si může ověřit, že Alicina zpráva nebyla mezi odesláním a přijetím změněna. Jakákoli změna zprávy by vytvořila zcela jiný podpis.

  • Pravost. Dokud bude Alicin soukromý klíč uchováván v tajnosti, může Bob použít svůj veřejný klíč k potvrzení, že digitální podpisy vytvořila Alice a nikdo jiný.

  • Neodmítatelnost. Jakmile bude podpis vygenerován, Alice nebude moci popřít jeho použití v budoucnu, pokud její soukromý klíč nebude nějakým způsobem kompromitován.


Případy užití

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

  • Informační technologie pro zlepšení bezpečnosti internetových komunikačních systémů.

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

  • Právní. Digitální podepisování všech typů smluv mezi podniky a právních dohod. Totéž platí pro vládní dokumenty.

  • Sociální pojištění. Digitální podpisy mohou působit jako prevence proti podvodům s recepty a lékařskými záznamy.

  • Blockchain. Digitální podpisy zajišťují, že transakci může podepsat pouze právoplatný vlastník finančních prostředků (pokud nejsou ohroženy jejich soukromé klíče).


Omezení

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

  • Algoritmus. Kvalita algoritmů používaných ve schématu digitálního podpisu je 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, systém digitálního podpisu bude mít pravděpodobně nedostatky.

  • Soukromý klíč. Pokud jsou soukromé klíče prozrazeny nebo jakýmkoli způsobem kompromitovány, vlastnosti autenticity a neodmítnutí budou zrušeny. Pro uživatele kryptoměn může ztráta soukromého klíče způsobit značné finanční ztráty.


Elektronické podpisy versus digitální podpisy

Jednoduše shrnuto, digitální podpisy jsou speciálním typem elektronického podpisu — který odkazuje na jakýkoli elektronický způsob podepisování dokumentu nebo zprávy. Proto jsou všechny digitální podpisy elektronickými podpisy, ale obráceně to systematicky neplatí.

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


Abych to uzavřel

Hashovací funkce a kryptografie veřejného klíče jsou jádrem systémů digitálního podpisu, které se nyní 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.

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

Přestože se používají již léta, v oblasti digitálních a elektronických podpisů je stále potřeba dosáhnout velkého pokroku. Velká část dnešní byrokracie stále spoléhá na používání papíru, ale je pravděpodobné, že budeme svědky širokého přijetí digitálních podpisů, až budeme směřovat ke stále digitalizovanější společnosti.