
Algoritmus DSA : určený na podepisování, ale ne na šifrování
Zdravím, četl jsem, že (Asymetrická šifra) DSA má tu vlastnost, že je vhodná pouze na podepisování, ale nedá se použít na šifrování. Chtěl bych vědět, zda je to pravda, a jaké je vysvětlení, a co by znamenalo, kdyby se použila na šifrování (tedy pokud to jde)
Šifrování a podepisování má protichůdné požadavky:
- šifrování: každý může zašifrovat zprávu, rozšifrovat ji umí pouze příjemce
- podpis: každý může rozšifrovat zprávu (ověřit podpis), zašifrovat (podepsat) ji umí pouze odesílatel
To jsou ale protichúdné požadavky z hlediska použití (nebo rolí). Z hlediska algoritmu je to uplně jedno (soukromý a veřejný klíč jsou rovnocenné). (Což platí i o symetrické krypto. kde je jeden klíč dokonce).
https://crypto.stackexchange.com/questions/2585/why-can-t-dsa-be-used-for-encryption
DSA - digital signature algorithm je algoritmus vytvořený přímo na podepisování. Podepisování je založeno na HASH - vytvoří se otisk, který zabezpečí, že se obsah nezměnil + páry klíčů, které ověří, že podpis vytvořil vlastník privátního klíče.
HASH je otisk, neslouží na zašifrování a odšifrování dokumentu. proto ani ten algoritmus, který je založený na HASH nemůže sloužit pro šifrování a následné dešifrování.
Aha, už tomu rozumím, takže hash je součástí algoritmu? To samé jde udělat u řetězení Priv(hash(text)), Také z toho už nikdy nedostanu text pomocí Pub(), ale pouze Hash(text)
Ano. Vysledkem je HASH, ktery je sifrovany pomoci privatniho klice a overitelny pomoci verejneho klice.
Overis, ze to podepsal konkretni clovek (majitel privatniho klice) a ze se podepsany dokument nezmenil (kontrola hashe)
Když to tedy vezmu obráceně, jaká šifra vznikne, když z DSA odebere hashování? Nebo je to hashování, tak zadrátované v algoritmu, že to není možné? Podobně jako z libovolné asymetrické šifry si mohu udělat vlastní DES, že vstup nejdřív zahashuju