Co je digitální podpis?
Domů
Články
Co je digitální podpis?

Co je digitální podpis?

Pokročilí
Zveřejněno Aug 19, 2019Aktualizováno Jan 31, 2023
7m

Digitální podpis je kryptografický mechanismus používaný k ověření pravosti a integrity digitálních dat. Je to taková digitální verze běžných vlastnoruční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 vygenerování slouží kód jako důkaz, že se zprávou nebylo na cestě od odesílatele k příjemci manipulováno.

Přestože koncept zabezpečení komunikace pomocí kryptografie sahá daleko do historie, systémy digitálních podpisů začaly být realizovatelné v 70. letech 20. století – díky vývoji kryptografie s veřejným klíčem (PKC). Proto abychom se dozvěděli, jak digitální podpisy fungují, musíme nejdřív pochopit základy hashovacích funkcí a kryptografie s veřejným klíčem.


Hashovací funkce

Hashování je jeden ze základních prvků systému digitálního podpisu. Hashování transformuje data libovolné velikosti do výstupu s pevnou velikostí. Slouží k tomu speciální druhy algoritmů, které jsou označovány jako hashovací funkce. Výstup vygenerovaný hashovací funkcí se nazývá hodnota hash.

Hodnotu hash (obsah), která slouží jako jedinečný digitální otisk, je možné generovat v kombinaci s kryptografií pomocí takzvaných kryptografických hashovacích funkcí. To znamená, že jakákoli změna vstupních dat (zprávy) bude mít za následek zcela jiný výstup (hodnotu hash). Proto se kryptografické hashovací funkce hojně používají k ověřování pravosti digitálních dat.


Kryptografie s veřejným klíčem

Kryptografie s veřejným klíčem označuje kryptografický systém, který používá dvojici klíčů: jeden veřejný a jeden soukromý. Tyto dva klíče spolu matematicky souvisí a je možné je využít jak k šifrování dat, tak pro digitální podpisy.

Jako šifrovací nástroj je kryptografie s veřejným klíčem bezpečnější než základní 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íč, kryptografie s veřejným klíčem šifruje data veřejným klíčem a dešifruje je odpovídajícím soukromým klíčem.

Kromě toho je možné kryptografii s veřejným klíčem používat i při generování digitálních podpisů. Tento proces v podstatě spočívá v zahashování zprávy (nebo digitálních dat) soukromým klíčem podepisující osoby. Příjemce zprávy pak může platnost podpisu zkontrolovat pomocí veřejného klíče poskytnutého podepisující osobou.

V některých případech mohou digitální podpisy používat šifrování, ale není to podmínkou. Například Bitcoin sice používá kryptografii s veřejným klíčem a digitální podpisy, ale na rozdíl od domněnky mnoha lidí při tom nedochází k žádnému šifrování. Z technického hlediska používá Bitcoin k ověřování transakcí algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm), což je protokol digitálního podpisu s využitím eliptických křivek.


Jak digitální podpisy fungují

V souvislosti s kryptoměnami se systém digitálního podpisu obvykle skládá ze tří základních kroků: hashování, podepisování a ověřování.

Hashování dat

Prvním krokem je hashování zprávy nebo digitálních dat. K tomu dochází odesláním dat do hashovacího algoritmu, aby se vygenerovala hodnota hash. Jak už jsme zmiňovali, zprávy mohou mít velmi různé velikosti, ale po zahashování mají všechny jejich hodnoty hash stejnou délku. To je ta nejzákladnější vlastnost hashovací funkce.

Hashování dat ale není k vytvoření digitálního podpisu nezbytné, protože soukromým klíčem můžete zprávu podepsat, i když není zahashovaná. Kryptoměny ale data vždy hashují, protože používáním hodnot hash s pevnou délkou se celý proces usnadňuje.

Podepisování

Po zahashování informací musí odesílatel zprávu podepsat. V tomto okamžiku přichází na řadu kryptografie s veřejným klíčem. Digitální podpis má několik typů algoritmů a každý z nich má svůj vlastní specifický mechanismus. V podstatě se ale zahashovaná zpráva podepíše soukromým klíčem a příjemce zprávy pak může její platnost ověřit odpovídajícím veřejným klíčem (který mu poskytne podepisující osoba).

Jinými slovy, pokud se při generování podpisu nepoužije soukromý klíč, příjemce zprávy nebude moct odpovídajícím veřejným klíčem ověřit její platnost. Veřejný i soukromý klíč generuje odesílatel zprávy, ale příjemci pošle jen veřejný klíč.

Měli byste také vědět, že digitální podpisy přímo souvisí s obsahem každé zprávy. Na rozdíl od ručně psaných podpisů, které bývají stejné bez ohledu na zprávu, má každá digitálně podepsaná zpráva jiný digitální podpis.

Ověřování

Podíváme se na příklad, který znázorňuje celý proces až po závěrečné ověření. Představte si, že Alice napíše zprávu Bobovi, zahashuje ji, hodnotu hashe spojí se svým soukromým klíčem a vytvoří digitální podpis. Podpis bude pro danou zprávu fungovat jako jedinečný digitální otisk prstu.

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

Proto je naprosto zásadní, aby Alice svůj soukromý klíč udržela v tajnosti. Pokud se k Alicinu soukromému klíči dostane někdo jiný, může vytvářet digitální podpisy a vydávat se za ni. V kontextu Bitcoinu to znamená, že někdo může Alicin soukromý klíč použít bez jejího svolení k přesunu nebo utrácení jejích bitcoinů.


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

Digitální podpisy se nejčastěji používají z následujících tří důvodů: integrita dat, ověření a nepopiratelnost.

  • Integrita dat: Bob může ověřit, že Alicina zpráva nebyla cestou změněna. Jakákoli změna ve zprávě by vedla k úplně jinému podpisu.

  • Ověření: dokud Alice drží soukromý klíč v tajnosti, může si Bob pomocí jejího veřejného klíče ověřit, že digitální podpisy vytvořila Alice a nikdo jiný.

  • Nepopiratelnost: jakmile je podpis vygenerovaný, nemůže Alice v budoucnu popřít, že zprávu podepsala (pokud nebyl její soukromý klíč nějakým způsobem prozrazen).


Možnosti využití

Digitální podpisy můžete používat u různých druhů digitálních dokumentů a certifikátů. Jako takové mají několik využití. Mezi nejčastější z nich patří:  

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

  • Finance: digitální podpisy je možné zavést u auditů, vyúčtování nákladů, smluv o půjčce a mnoha dalších dokumentů.

  • Právní dokumentace: digitální podepisování všech druhů obchodních smluv a právních dohod, včetně vládních dokumentů.

  • Zdravotnictví: digitální podpisy mohou zabránit podvodům s recepty a lékařskými záznamy.

  • Blockchain: systémy digitálních podpisů zaručují, že přesun finančních prostředků mohou podepsat pouze oprávnění vlastníci kryptoměn (pokud jejich soukromé klíče nejsou nějakým způsobem prozrazeny).


Omezení

Hlavní problémy, kterým systémy digitálních podpisů čelí, spočívají přinejmenším v následujících třech předpokladech: 

  • Algoritmus: kvalita algoritmů použitých v systému digitálního podpisu je velmi důležitá. Sem se řadí výběr spolehlivých hashovacích funkcí a kryptografických systémů.

  • Implementace: pokud jsou použité algoritmy dobré, ale jejich implementace už ne, systém digitálního podpisu bude pravděpodobně vykazovat nějaké nedostatky.

  • Soukromý klíč: pokud soukromé klíče uniknou nebo jsou nějakým způsobem prozrazeny, dojde k zneplatnění pravosti a nepopiratelnosti. Pro uživatele kryptoměn může ztráta soukromého klíče znamenat značné finanční ztráty.


Elektronické vs. digitální podpisy

Zjednodušeně řečeno, digitální podpisy jsou jedním konkrétním typem elektronického podpisu, což je jakýkoli elektronický způsob podepisování dokumentů a zpráv. Všechny digitální podpisy jsou proto elektronickými podpisy, ale opak už není vždy pravdou.

Hlavním rozdílem 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 šifrovací techniky.


Závěrem

Základem systémů digitálních podpisů jsou hashovací funkce a kryptografie s veřejným klíčem, které dnes mají širokou škálu využití. Při správné implementaci mohou digitální podpisy zvyšovat bezpečnost, zajistit integritu a usnadnit ověřování všech možných druhů digitálních dat.

V oblasti blockchainu se k podepisování a autorizaci kryptoměnových transakcí používají digitální podpisy. Pro Bitcoin jsou podpisy obzvlášť důležité, protože zaručují, že bitcoiny mohou utratit pouze osoby s příslušnými soukromými klíči.

Přestože elektronické i digitální podpisy používáme už spoustu let, pořád u nich existuje velký prostor pro růst. Velká část dnešní státní správy pořád stojí na spoustě papírování, ale s přechodem na digitalizovanější systém budeme systémy digitálních podpisů pravděpodobně využívat více.