Digitální podpis je kryptografický mechanismus, který se používá 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í sofistikovanosti a zabezpečení.
Zjednodušeně můžeme digitální podpis popsat jako kód připojený ke zprávě nebo dokumentu. Jakmile je vygenerována, funguje jako důkaz, že se zprávou během její cesty od odesílatele k příjemci nebylo manipulováno.
Koncept zabezpečení komunikačních kanálů pomocí kryptografie sahá až do starověku a digitálně podepsané systémy se objevily až v 70. letech 20. století s rozvojem kryptografie s veřejným klíčem. Z tohoto důvodu, abychom se naučili, jak digitální podpis funguje, 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 hašování zahrnuje převod dat libovolné velikosti na výstup určitého formátu. To se provádí pomocí speciálního druhu algoritmu, známého také jako hashovací funkce. Výstupní data generovaná hashovací funkcí se nazývají hash nebo message digest.
V kombinaci s kryptografií lze takzvané kryptografické hašovací funkce použít k vygenerování haše (digestu), který funguje jako jedinečný digitální identifikátor. To znamená, že jakákoliv změna vstupu (zprávy) má za následek úplně jiný výstup (hash). Z tohoto důvodu jsou kryptografické hašovací funkce oblíbeným nástrojem pro ověřování pravosti digitálních dat.
Kryptografie veřejného klíče (PKC)
Kryptografie s veřejným klíčem neboli PKC (z anglického Public-key cryptography) označuje kryptografický systém, který využívá dvojici veřejných (veřejných) a soukromých (soukromých) klíčů. Dva matematicky související klíče lze použít jak k šifrování dat, tak k vytvoření digitálního podpisu.
Jako šifrovací nástroj je PKC bezpečnější než jeho symetrický protějšek. Zatímco tyto starší systémy používají k šifrování a dešifrování informací stejný klíč, PKC vám umožňuje šifrovat data pomocí veřejného klíče a dešifrovat je pouze pomocí odpovídajícího soukromého klíče.
Kromě toho lze pro generování digitálních podpisů použít kryptografii veřejného klíče. V jádru tento proces 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 bude moci ověřit platnost podpisu pomocí veřejného klíče poskytnutého podepisovatelem.
V některých možných implementacích mohou digitální podpisy zahrnovat šifrování, což znamená, že tato funkce nefunguje nepřetržitě. Například bitcoinový blockchain také používá kryptografii veřejného klíče a digitální podpisy, ale na rozdíl od všeobecného přesvědčení v jeho procesech není žádné šifrování. Z technického hlediska používá Bitcoin k ověřování svých transakcí takzvaný eliptický křivkový digitální podpisový algoritmus (ECDSA).
Jak funguje digitální podpis
V kontextu kryptoměn se systém digitálního podpisu často skládá ze tří hlavních fází: hašování, samotný proces podpisu a jeho ověření.
Hašování dat
Prvním krokem je hash zprávy nebo digitálních dat. To se provádí zpracováním informací pomocí hashovacího algoritmu, aby se vygeneroval samotný hash (výběr zprávy). Jak již bylo zmíněno dříve, zprávy se mohou velmi lišit ve velikosti, ale jakmile budou hashovány, budou mít všechny hodnoty hash stejnou délku. To je jedna z nejzákladnějších vlastností hashovací funkce.
Hašování dat však není podmínkou pro vytvoření digitálního podpisu, protože místo toho lze k podepsání zprávy použít soukromý klíč. Ale pokud jde o kryptoměny, data jsou vždy hašována, protože práce s výtahy s pevnou délkou zjednodušuje celý proces zpracování informací.
Podpis
Jakmile jsou data hashována, musí je odesílatel zprávy podepsat a 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í jedinečný mechanismus. Hašovaná zpráva však bude v každém případě podepsána soukromým klíčem a příjemce pak může ověřit její pravost pomocí odpovídajícího veřejného klíče (poskytnutého podepisovatelem).
Jinými slovy, pokud není soukromý klíč zahrnut při vytváření podpisu, příjemce zprávy nebude moci použít odpovídající veřejný klíč k ověření jeho platnosti. Protože veřejný a soukromý klíč generuje odesílatel zprávy, sdílí se s příjemcem pouze veřejný klíč.
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é jsou obecně stejné bez ohledu na kontext dokumentu, bude mít každá digitálně podepsaná zpráva úplně jiné ID digitálního podpisu.
Kontrola
Pojďme se na to podívat na příkladu, abychom lépe ilustrovali celý proces až do posledního kroku – ověření obsahu. Představte si, že Alice napíše zprávu Bobovi, zahashuje ji a poté zkombinuje hash se svým soukromým klíčem a vytvoří digitální podpis. V tomto případě podpis funguje jako jedinečný digitální identifikátor této konkrétní zprávy.
Když Bob obdrží zprávu, může ověřit digitální podpis pomocí veřejného klíče poskytnutého Alicí. Bob si tak může ověřit, že podpis vytvořila ona, protože ona jediná vlastní odpovídající soukromý klíč (alespoň by to tak mělo být).
Z tohoto důvodu je nesmírně důležité, aby Alice držela svůj soukromý klíč v tajnosti. Pokud se její soukromý klíč zmocní jiná osoba, bude moci vytvářet digitální podpisy a provádět transakce jejím jménem. V kontextu první kryptoměny tato situace znamená, že někdo může přesouvat nebo utrácet bitcoiny Alice bez jejího svolení.
Proč jsou digitální podpisy důležité?
Digitální podpisy jsou v zásadě navrženy tak, aby dosáhly tří výsledků: integrity dat, autentizace a nepopiratelnosti.
Integrita dat. Bob si může ověřit, že se Alicino poselství cestou nezměnilo. Důsledkem jakýchkoli změn ve zprávě bude vygenerování zcela jiného podpisu.
Autentizace. Dokud bude Alicin soukromý klíč uchováván v tajnosti, může Bob použít svůj veřejný klíč k ověření, že digitální podpisy vytvořila Alice a nikdo jiný.
Neodmítatelnost. Jakmile bude podpis vygenerován, Alice nebude moci v budoucnu popřít svůj vztah k němu, pokud její soukromý klíč nebude nějakým způsobem kompromitován.
Případy použití
Digitální podpisy lze použít na různé typy digitálních dokumentů a certifikátů. Mají tedy několik použití, mezi nejčastější případy použití patří:
Informační technologie. Zlepšení bezpečnosti internetových komunikačních systémů.
Finance. Implementace do auditů, výkazů výdajů, úvěrových smluv a mnoha dalších finančních dokumentů.
Právní otázky. Použití ve všech typech obchodních smluv a právních dohod, včetně vládních dokumentů.
Zdravotnictví. Prevence podvodů s recepty a lékařskými záznamy.
Blockchain. Systém digitálního podpisu zajišťuje, že transakci pro další převod finančních prostředků mohou podepsat pouze legitimní vlastníci kryptoměny (pokud nebyl kompromitován soukromý klíč vlastníka).
Nedostatky
Hlavní problémy, se kterými se tato technologie může setkat, závisí na minimálně třech složkách:
Algoritmus. Kvalita algoritmů používaných pro generování digitálního podpisu je nesmírně důležitá. To zahrnuje výběr silných hašovacích funkcí a kryptografických systémů.
Implementace. Pokud algoritmy fungují správně a integrace technologie digitálního podpisu nebyla zcela úspěšná, bude mít systém s největší pravděpodobností určitý počet nedostatků.
Soukromý klíč. Dojde-li z nějakého důvodu k úniku nebo kompromitaci soukromých klíčů, budou vlastnosti ověřování a neodmítnutí zrušeny. Pro uživatele kryptoměn může ztráta soukromého klíče způsobit značné finanční ztráty.
Elektronický podpis vs digitální
Jednoduše řečeno, digitální podpisy označují jeden konkrétní typ elektronického podpisu, stejně jako jakýkoli způsob elektronického podepisování dokumentů a zpráv. Všechny digitální podpisy jsou tedy podtypem elektronických, ale v opačném pořadí nebude tento výraz vždy správný.
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 metody šifrování.
Závěr
Hashovací funkce a kryptografie veřejného klíče jsou základem systémů digitálního podpisu, které jsou nyní vhodné pro širokou škálu aplikací. Při správné implementaci mohou digitální podpisy zlepšit zabezpečení, zajistit integritu a usnadnit ověřování všech typů digitálních dat.
V oblasti technologií blockchain se digitální podpisy používají k autorizaci a podepisování transakcí kryptoměn. Tato technologie je zvláště důležitá, pokud jde o bitcoiny, protože podpisy fungují jako záruka, že coiny mohou utratit pouze ti, 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 co zlepšovat. Velká část dnešní byrokracie je stále založena na papírech, ale pravděpodobně se dočkáme většího přijetí digitálních podpisů, když přejdeme na více systémů digitálního zpracování dat.

