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 konvenčních ručně psaných podpisů, ale s vyšší úrovní složitosti a zabezpečení.

Jednoduše řečeno, digitální podpis můžeme popsat jako kód připojený ke zprávě nebo dokumentu. Jakmile je kód vygenerován, funguje jako důkaz, že se zprávou na cestě od odesílatele k příjemci nebylo manipulováno.

Ačkoli 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 s rozvojem kryptografie veřejného klíče (PKC). Abychom se tedy naučili, 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 z hlavních prvků systému digitálního podpisu. Proces hashování je převod dat libovolné velikosti na výstupní data pevné velikosti. To se provádí pomocí speciálního druhu algoritmů známých jako hashovací funkce. Výstup generovaný hashovací funkcí je známý jako hash hodnota nebo výtah zprávy.

V kombinaci s kryptografií lze použít takzvané kryptografické hašovací funkce pro generování hašovací hodnoty (digest), která funguje jako jedinečný digitální otisk. To znamená, že jakákoli změna vstupu (zprávy) bude mít za následek jiný výstup (hodnotu hash). Z tohoto důvodu jsou kryptografické hašovací funkce široce používány k ověřování digitálních dat.


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

Kryptografie veřejného klíče nebo PKC označuje kryptografický systém, který používá pár klíčů: jeden veřejný klíč a jeden soukromý klíč. Tyto dva klíče spolu matematicky souvisí 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ž jednodušší metody symetrického šifrování. Zatímco starší systémy se při šifrování a dešifrování informací spoléhají 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 schéma PKC použít i při vytváření digitálních podpisů. Proces v podstatě spočívá v hašování zprávy (nebo digitálních dat) spolu se soukromým klíčem podepisujícího. Příjemce zprávy pak může ověřit platnost podpisu pomocí veřejného klíče poskytnutého podepisovatelem.

V některých situacích mohou digitální podpisy obsahovat š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, co mnozí věří, v procesu není zahrnuto žádné šifrování. Z technického hlediska používá bitcoin k ověřování transakcí takzvaný algoritmus digitálního podpisu elliptické křivky (ECDSA).


Jak fungují digitální podpisy

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

Hašování dat

Prvním krokem je hash zprávy nebo digitálních dat. To se provádí odesláním dat pomocí hashovacího algoritmu k vytvoření hodnoty hash (tj. výtah zprávy). Jak již bylo zmíněno, zprávy se mohou velmi lišit ve velikosti, ale když jsou hashovány, všechny jejich hodnoty hash mají stejnou délku. Toto je hlavní vlastnost hashovací funkce.

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

Podpis

Po hashování informací musí odesílatel zprávy 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. V zásadě však bude hashovaná zpráva podepsána soukromým klíčem a příjemce zprávy pak může ověřit její pravost pomocí odpovídajícího soukromého klíče (poskytnutého podepisovatelem).

Jinými slovy, pokud není soukromý klíč při vytváření podpisu povolen, příjemce zprávy nebude moci použít odpovídající veřejný klíč k ověření její pravosti. Veřejný i soukromý klíč generuje odesílatel zprávy, ale veřejný klíč je předán příjemci.

Stojí za zmínku, že digitální podpisy přímo souvisí s obsahem každé zprávy. Na rozdíl od ručně psaných podpisů, které jsou obecně stejné bez ohledu na zprávu, bude mít každá digitálně podepsaná zpráva jiný digitální podpis.

Audit

Vezměme si příklad pro ilustraci celého procesu až po poslední krok ověřování. 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 fungovat jako jedinečný digitální otisk této zprávy.

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

Proto je velmi důležité, aby Alice držela svůj soukromý klíč v tajnosti. Pokud jiná osoba získá soukromý klíč Alice, může vytvořit digitální podpis a vydávat se za Alici. V kontextu bitcoinu to znamená, že někdo může 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í k dosažení tří výsledků: integrity dat, autentizace a převzetí služeb při selhání.

  • Integrita dat. Bob si může ověřit, že se Alicino poselství cestou nezměnilo. Jakákoli úprava zprávy povede k vytvoření zcela jiného podpisu.

  • Pravost. Za předpokladu, že Alicin soukromý klíč zůstane v tajnosti, může Bob použít její veřejný klíč k ověření, že digitální podpisy vytvořila Alice a nikdo jiný.

  • Spolehlivost. Jakmile je podpis vygenerován, Alice nemůže popřít, že jej v budoucnu podepsala, pokud nebude ohrožen její soukromý klíč.


Možnosti použití

Digitální podpisy lze použít na různé typy digitálních dokumentů a certifikátů. Jako takové mají několik použití. Některé z nejčastějších použití jsou:  

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

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

  • Právní úprava: Digitální podepisování všech typů obchodních smluv a právních dohod, včetně vládních dokumentů.

  • Zdravotní péče: Digitální podpisy mohou zabránit padělání receptů a lékařských záznamů.

  • Blockchain: Schémata digitálního podpisu zajišťují, že transakci za účelem přesunu finančních prostředků mohou podepsat pouze legitimní vlastníci kryptoměny (za předpokladu, že jejich soukromé klíče nejsou kompromitovány).


Omezení

Hlavní výzvy, kterým čelí schémata digitálního podpisu, jsou založeny 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á. Jedná se zejména o volbu spolehlivých hashovacích funkcí a kryptografických systémů.

  • Implementace: Pokud jsou algoritmy dobré a implementace chybí, systém digitálního podpisu bude pravděpodobně chybný.

  • Soukromý klíč: Pokud jsou soukromé klíče ztraceny nebo nějakým způsobem kompromitovány, vlastnosti autenticity a non-selhání budou zrušeny. Uživatelům kryptoměn může ztráta soukromého klíče způsobit značné finanční ztráty.


Elektronické podpisy vs. digitální podpisy

Digitální podpisy se týkají jednoho konkrétního typu elektronických podpisů, které patří k jakékoli elektronické metodě podepisování dokumentů a zpráv. Proto jsou všechny digitální podpisy elektronickými podpisy, ale ne naopak.

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


Výsledek

Hashovací funkce a kryptografie s veřejným klíčem jsou jádrem systémů digitálního podpisu, které mají v současnosti mnoho využití. Při správné aplikaci mohou digitální podpisy zlepšit zabezpečení, zajistit integritu a usnadnit ověřování všech typů digitálních dat.

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

Přestože elektronické i digitální podpisy používáme již řadu let, stále máme kam růst. Velká část dnešní byrokracie je stále založena na papírech, ale pravděpodobně uvidíme větší přijetí digitálních podpisů, když přejdeme k digitálnějšímu druhu systémů zpracování dat.