Digitální podpis je kryptografický 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 bezpečnosti.
Zjednodušeně můžeme digitální podpis popsat jako kód, který je připojen ke zprávě nebo dokumentu. Po vygenerování kód funguje 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 – díky rozvoji kryptografie s veřejným klíčem (PKC). Abychom se tedy naučili, jak digitální podpisy fungují, musíme nejprve porozumět základům hashovacích funkcí a kryptografie s veřejným klíčem.
Hashovací funkce
Hašování je jedním ze základních prvků systému digitálního podpisu. Proces hashování zahrnuje transformaci dat libovolné velikosti na výstup s pevnou velikostí. To se provádí speciálním druhem algoritmů 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 takzvané kryptografické hašovací funkce použít ke generování hašovací hodnoty (digestu), 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). A to je důvod, proč jsou kryptografické hašovací funkce široce používány pro ověřování pravosti digitálních dat.
Kryptografie s veřejným klíčem (PKC)
Kryptografie s veřejným klíčem, neboli PKC, označuje kryptografický systém, který využí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ž rudimentárně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í dat pomocí odpovídajícího soukromého klíče.
Kromě toho lze schéma PKC také použít při generování 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. Dále 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 využívá PKC a digitální podpisy, ale na rozdíl od mnoha lidí má tendenci věřit, že v tomto procesu není žádné šifrování. Technicky, Bitcoin nasazuje takzvaný 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 hash zprávy nebo digitálních dat. To se provádí odesláním dat pomocí hashovacího algoritmu, aby se vygenerovala hodnota hash (tj. výtah zprávy). Jak 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 délku. Toto je nejzákladnější vlastnost hashovací funkce.
Hašování dat však není nutností pro vytvoření digitálního podpisu, protože k podepsání zprávy, která vůbec nebyla hašována, lze použít soukromý klíč. Ale u kryptoměn jsou data vždy hašována, protože zpracování výtahů s pevnou délkou celý proces usnadňuje.
Podepisování
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, 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 zkontrolovat její platnost pomocí odpovídající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 odpovídající veřejný klíč k ověření jeho platnosti. Veřejné i soukromé klíče jsou generovány odesílatelem zprávy, ale pouze veřejný klíč je sdílen s příjemcem.
Stojí za zmínku, že digitální podpisy přímo souvisí s obsahem každé zprávy. Takže na rozdíl od ručně psaných podpisů, které mají tendenci být stejné bez ohledu na zprávu, bude mít každá digitálně podepsaná zpráva jiný digitální podpis.
Ověřování
Vezměme si příklad pro ilustraci celého procesu až do posledního kroku 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 této konkrétní zprávy.
Když Bob obdrží zprávu, může zkontrolovat 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 pouze ona má soukromý klíč, který odpovídá tomuto veřejnému klíči (alespoň to očekáváme).
Je tedy důležité, aby Alice držela svůj soukromý klíč v tajnosti. Pokud se jinému člověku dostane do rukou Alicin soukromý klíč, může vytvořit digitální podpisy a předstírat, že je Alice. V kontextu bitcoinu to znamená, že by 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í k dosažení tří výsledků: integrity dat, autentizace a nepopiratelnosti.
Integrita dat. Bob si může ověřit, že Alicina zpráva se cestou nezměnila. Jakákoli změna ve zprávě 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 v budoucnu popřít, že jej podepsala, pokud její soukromý klíč nebude nějak kompromitován.
Případy užití
Digitální podpisy lze použít na různé druhy 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. Zvýšit bezpečnost internetových komunikačních systémů.
Finance. Digitální podpisy lze implementovat do auditů, výkazů výdajů, úvěrových smluv a mnoha dalších.
Právní. Digitální podepisování všech druhů 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 s předpisy a lékařskými záznamy.
Blockchain. Schémata digitálního podpisu zajišťují, že pouze právoplatní vlastníci kryptoměn mohou podepsat transakci za účelem přesunu finančních prostředků (pokud jejich soukromé klíče nejsou kompromitovány).
Omezení
Hlavní výzvy, kterým čelí schémata digitálního podpisu, se spoléhají na nejméně tři požadavky:
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 pravděpodobně představovat nedostatky.
Soukromý klíč. Pokud dojde k úniku nebo nějakému kompromitování soukromých klíčů, vlastnosti autenticity a nepopiratelnosti 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 vs. digitální podpisy
Jednoduše řečeno, digitální podpisy se vztahují k jednomu konkrétnímu druhu elektronických podpisů – které odkazují na jakýkoli elektronický způsob podepisování dokumentů a zpráv. Všechny digitální podpisy jsou tedy elektronické podpisy, ale opak není vždy pravdou.
Hlavním rozdílem mezi nimi je metoda ověřování. Digitální podpisy nasazují kryptografické systémy, jako jsou hashovací funkce, kryptografie s veřejným klíčem a šifrovací techniky.
Závěrečné myšlenky
Hashovací funkce a kryptografie s veřejným klíčem 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 druhů digitálních dat.
V oblasti 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ří 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 je stále založena na papírování, ale pravděpodobně budeme svědky většího přijímání schémat digitálního podpisu, jak budeme migrovat na více digitalizovaný systém.

