Schnorrův podpis
Schnorrův podpis je v kryptografii označení schématu digitálního podpisu navrženého v letech 1989–1991 německým matematikem Clausem Schnorrem. Podobně jako algoritmus DSA ze stejné doby je toto schéma založeno na obtížnosti hledání diskrétního logaritmu v obecných grupách.
Schéma
Výběr parametrů
- Uživatelé určí grupu řádu a její generátor .
- Uživatelé určí kryptografickou hašovací funkci .
Generování klíčů
- Uživatel si náhodně zvolí svůj nenulový soukromý klíč .
- Veřejným klíčem uživatele je pak hodnota .
Podpis
Pro danou zprávu :
- je náhodně zvoleno nenulové
- je spočítáno
- je spočítáno , kde značí sřetězení, a a jsou brány jako bitové řetězce
- je spočítáno
Podpisem je pak pár , kde .
Ověření podpisu
- Je spočítáno
- Je spočítáno
Pokud , pak je podpis správný.
Bezpečnost
Podobně jako u principiálně příbuzných schémat DSA, ECDSA a ElGamal je důležité nepoužívat opakovaně stejnou hodnotu , jinak může útočník zjistit hodnotu soukromého klíče. V případě Schnorrova podpisu mu k tomu poslouží rovnost
- ,
pomocí které lze při a hodnotu získat velice snadno. Kromě toho existují podobně fungující útoky i pro případy, kdy sice nejsou stejná, ovšem nejsou ani zcela náhodná a je nasbírán dostatečný počet , která jsou určitým způsobem podobná.