Nepopiratelný podpis - Undeniable signature
An nepopiratelný podpis je digitální podpis schéma, které umožňuje podepisujícímu vybrat si, komu umožní ověřit podpisy. Schéma přidává výslovné odmítnutí podpisu, což brání podpisujícímu, aby později odmítl ověřit podpis vynecháním; situace, která by znehodnotila podpis v očích ověřovatele. To bylo vynalezeno David Chaum a Hans van Antwerpen v roce 1989.[1]
Přehled
V tomto schématu může signatář, který má soukromý klíč, publikovat podpis zprávy. Podpis však příjemci / ověřovateli zprávy a podpisu nic neodhalí, aniž by se účastnil některého ze dvou interaktivních protokolů:
- Potvrzovací protokol, který potvrzuje, že kandidát je platným podpisem zprávy vydané podpisujícím, identifikovaný veřejným klíčem.
- Protokol o vzdání se, který potvrzuje, že kandidát není platným podpisem zprávy vydané podepisujícím.
Motivací pro tento režim je umožnit podepisujícímu vybrat, komu budou podpisy ověřeny. To, že by signatář mohl kdykoli tvrdit, že podpis je neplatný, odmítnutím účasti na ověření by však znehodnotilo podpisy ověřovatelům. Protokol o distancování se od těchto případů rozlišuje a odstraňuje věrohodnou popírání signatáře.
Je důležité, aby výměny potvrzení a odmítnutí nebyly přenositelné. Dosahují toho tím, že mají vlastnost nulového poznání; obě strany mohou vytvořit přepisy potvrzení i odmítnutí, které jsou k nerozeznání od správných výměn třetí straně.
The určený podpis ověřovatele Schéma vylepšuje popíratelné podpisy tím, že umožňuje u každého podpisu vyložit interaktivní část schématu na jinou stranu, určeného ověřovatele, což snižuje zátěž pro podepisujícího.
Protokol nulových znalostí
Následující protokol navrhl David Chaum.[2]
Skupina, G, je vybrán, ve kterém problém diskrétního logaritmu je neřešitelný a všechny operace ve schématu probíhají v této skupině. Obvykle to bude konečná cyklická skupina řádu str obsaženo v Z/nZ, s str být velký prvočíslo; tato skupina je vybavena skupinovým provozem celočíselného násobení modulo n. Svévolně primitivní prvek (nebo generátor), G, z G je vybrán; vypočítané síly G pak kombinujte poslušné pevné axiomy.
Alice vygeneruje pár klíčů, náhodně vybere soukromý klíč, X, a poté odvodí a zveřejní veřejný klíč, y = gX.
Podepisování zpráv
- Alice podepíše zprávu, m, výpočtem a zveřejněním podpisu, z = mX.
Potvrzovací (tj. Avowal) protokol
Bob si přeje ověřit podpis, z, z m Alice pod klíčem, y.
- Bob vybere dvě náhodná čísla: A a b, a použije je k zaslepení zprávy a zaslání Alice:
- c = mAGb.
- Alice vybere náhodné číslo, q, používá jej k oslepení, C, a poté to podepsat pomocí svého soukromého klíče, X, zasílání Bobovi:
- s1 = cgq a
- s2 = s1X.
- s1X = (srovq)X = (mAGb)XGqx = (mX)A(GX)b + q = zAyb + q.
- Bob odhaluje A a b.
- Alice to ověří A a b jsou správné slepé hodnoty, pak, pokud ano, odhalí q. Odhalení těchto rolet činí z výměny nulové znalosti.
- Bob ověří s1 = srovq, dokazování q nebyla vybrána nečestně a
- s2 = zAyb + q,
- zAyb + q = (mX)A(GX)b + q.
Alice může podvádět v kroku 2 pokusem o náhodný odhad s2.
Protokol o vzdání se
Alice si to přeje přesvědčit Boba z není platný podpis uživatele m pod klíčem, GX; tj., z ≠ mX. Alice a Bob se dohodli na celé číslo, k, což stanoví výpočetní zátěž pro Alici a pravděpodobnost, že by měla uspět náhodou.
- Bob vybírá náhodné hodnoty, s ∈ {0, 1, ..., k} a Aa odešle:
- proti1 = msGA a
- proti2 = zsyA,
- proti2 = zsyA = (mX)s(GX)A = proti1X.
- Alice pomocí svého soukromého klíče počítá proti1X a pak kvocient,
- proti1Xproti2−1 = (msGA)X(zsGxa)−1 = msxz−s = (mXz−1)s.
- Alice poté testuje proti1Xproti2−1 pro rovnost proti hodnotám:
- (mXz−1)i pro i ∈ {0, 1,…, k};
- Alice se zavazuje i: vybere náhodně r a pošle hash (r, i) Bobovi.
- Bob odhaluje A.
- Alice to potvrzuje A je správná slepá (tj. proti1 a proti2 lze generovat pomocí něj), pak, pokud ano, odhalí r. Odhalení těchto rolet činí z výměny nulové znalosti.
- Bob kontroluje hash (r, i) = hash (r, s), což dokazuje, že Alice ví s, proto z ≠ mX.
Pokud se Alice pokusí podvádět v kroku 3 hádáním s náhodně je pravděpodobnost úspěchu 1 / (k + 1). Takže když k = 1023 a protokol je veden desetkrát, její šance jsou 1 až 2100.