Vak aláírás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. szeptember 14-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

A vak aláírás ( angol  blind signature ) a digitális aláírás egyik fajtája , amelynek sajátossága, hogy az aláíró fél nem ismerheti pontosan az aláírt dokumentum tartalmát. A vak aláírás koncepcióját David Chaum [1] találta ki 1982-ben, ő javasolta az első megvalósítást az RSA algoritmuson keresztül . A vak aláírási rendszer biztonsága a nagy összetett számok faktorálásának nehézségén alapult . Azóta számos más rendszert javasoltak [2] [3] .

Leírás

A vak aláírások alapötlete a következő:

A protokoll végén B fél semmit sem tud a t üzenetről, sem az üzenet alatti aláírásról.

Ez a séma összehasonlítható egy borítékkal, amelybe egy dokumentumot és egy másolati lapot helyeznek. Ha aláírja a borítékot, az aláírás rányomódik a dokumentumra, és a boríték felbontásakor a dokumentum már aláírásra kerül.

A vak aláírás célja annak megakadályozása, hogy B aláíró lássa A üzenetét, amelyet aláír, és az üzenet alatti megfelelő aláírást. Ezért az aláírt üzenet nem társítható tovább az A féllel.

A biztonságos vak aláírási sémának 3 tulajdonságnak kell megfelelnie, nevezetesen:

  1. Nulla tudás . Ez a tulajdonság segít a felhasználónak aláírást szerezni egy adott üzeneten anélkül, hogy magát az üzenetet kitenné az aláírónak.
  2. Nyomon követhetőség . Az aláíró nem tudja nyomon követni az aláírás-üzenet párost, miután a felhasználó nyilvánossá tette az aláírást az üzenetén.
  3. Lehetetlenség . Csak az aláíró generálhat érvényes aláírást. Ez a tulajdonság a legfontosabb, és minden aláírási séma esetében teljesülnie kell.

A zéró tudás és a nyomonkövethetetlenség tulajdonságai miatt a vak aláírási séma széles körben alkalmazható olyan alkalmazásokban, ahol titoktartásra van szükség, például az elektronikus szavazórendszerekben [4] [5] [6] [7] .

Vak aláírási algoritmusok

Teljesen vak aláírás

A helyzetre való tekintettel: Bob közjegyző . Alice-nek szüksége van rá, hogy aláírja a dokumentumot anélkül, hogy fogalma lenne a tartalmáról. Bob csak azt igazolja, hogy a dokumentum a megadott időpontban közjegyzői hitelesítésre került. Ezután a következő algoritmus szerint járnak el:

Ebben a sémában Alice azt akarja, hogy Bob vakon aláírja az üzenetet . Ezért:

  1. Alice a funkcióval titkosítja az üzenetet , és megkapja a titkosított üzenetet .
  2. Alice titkosított üzenetet küld Bobnak.
  3. Bob vakon (mert nem tudja, mi van benne) aláírja az üzenetet a , Receive funkcióval .
  4. Bob visszaküldi Alice-nek.
  5. Alice megkapja és eltávolítja a titkosítását, így megkapja: .

Ez a protokoll csak akkor működik, ha az aláírási és titkosítási funkciók kommutatívak .

Vak aláírás

  1. Bob n dokumentumot készít, amelyek mindegyike tartalmaz valamilyen egyedi szót (minél több n, annál kisebb az esélye, hogy Bob csaljon).
  2. Bob minden dokumentumot egyedi maszkolási tényezővel lát el, és elküldi Alice-nek.
  3. Alice megkapja az összes dokumentumot, és véletlenszerűen kiválaszt n-1 darabot.
  4. Alice megkéri Bobot, hogy küldjön maszkolási tényezőket a kiválasztott dokumentumokhoz.
  5. Bob csinálja.
  6. Alice kinyit n-1 dokumentumot, és meggyőződik azok helyességéről.
  7. Alice aláírja a fennmaradó dokumentumot, és elküldi Bobnak.
  8. Bobnak most van egy dokumentuma, amelyet Alice írt alá egy egyedi szóval, amelyet Alice nem ismer.
RSA protokoll

A vak aláírások első implementációja Chaum volt az RSA kriptorendszer használatával:

Tegyük fel, hogy Bobnak kezdetben nyilvános kulcsa van , ahol  a modulus és  a kulcs nyilvános kitevője.

  1. Alice kiválaszt egy véletlenszerű maszkolási tényezőt , amely viszonylag prím a -hoz , és kiszámítja .
  2. Alice egy nyitott csatornán keresztül küld Bobnak.
  3. Bob a privát kulcsával számol .
  4. Bob visszaküldi Alice-nek.
  5. Alice eltávolítja eredeti álcáját, és megkapja az eredeti üzenetet, amelyet Bob aláírt a következőképpen: .

Chaum bonyolultabb vak aláírási algoritmusok egész családjával állt elő, amelyeket összefoglaló néven váratlan vak aláírásoknak neveznek . Sémáik még bonyolultabbak, de több lehetőséget adnak [1] .

Vak aláírás Schnorr EDS alapján

Alice úgy akarja aláírni Bob üzenetét , hogy egyrészt Bob az aláírás során ne ismerkedhessen meg az üzenettel, másrészt pedig, hogy Bob utólag az üzenet és a hozzá tartozó aláírás kézhezvételekor ne tudja azonosítsa a felhasználót, aki elindította a vak aláírási protokollt ehhez az üzenethez (Alice). Ezt a protokollt a következőképpen hajtják végre:

  1. Alice interakciót kezdeményez Bobbal.
  2. Bob elküldi az értéket Alice-nek .
  3. Alice kiszámítja az értékeket (w és t véletlenszerű számok, amelyek nem haladják meg a -t ), majd elküldi az értéket Bobnak .
  4. Bob kiszámít egy értéket , és elküldi Alice-nek.
  5. Alice kiszámol egy aláírást , ahol és , amely hiteles az üzenet tekintetében [8] .
Bizonyíték

Az aláírás hitelességét a következőképpen igazoljuk. A és -ből következik . Ebben az esetben az anonimitás problémája megoldódott, mivel az ilyen hármasok Bob által alkotott halmazából bármely hármas összehasonlítható a dokumentum aláírásával . Valóban van: és , azaz. kiegyenlíthető véletlenszerű kifejezésválasztással , és az aláírást azonos valószínűséggel generáltuk az aláíró által alkotott hármashalmazban szereplő bármely hármasból. Azt is megjegyezzük, hogy Bobnak még arra sincs lehetősége, hogy bebizonyítsa, hogy a dokumentum aláírásának időpontjában nem ismerte azt.

 

Vak aláírás a GOST R 34.10-94 alapján Opciók

p prím  , 510 ≤ | p | ≤ 512 (vagy 1022 ≤ | p | ≤ 1024), ahol |p| a p szám bináris reprezentációjának kapacitása .

q p-1 nagy prímosztója, 255 ≤ | q | ≤ 256 (vagy 511 ≤ | q | ≤ 512)

α ≠ 1, α < p , mod p = 1.

Számítás
  1. Véletlenszerű k , 1 < k < q generálása szükséges ;
  2. R = ( mod p ) mod q  az aláírás első része;
  3. H = Hash(m) , ahol a hash  a GOST R 34.11-94 szabványban leírt hash függvény , m  az aláírandó üzenet;
  4. S = kH + zR mod q , ahol z  a privát kulcs .
  5. Ha S=0, akkor ismételje meg az 1-4 műveleteket.
Ellenőrzés
  1. 0 < R < q vagy 0 < S < q. Ha a két feltétel közül legalább az egyik nem teljesül, akkor az aláírás érvénytelen. Másképp:
  2. R' = ( mod p ) mod q , ahol y  a nyilvános kulcs ;
  3. Ha R = R' , akkor az aláírás érvényes [9] .
Vak aláírás az STB 1176.2-99 alapján

A fehérorosz szabvány a következő protokollt biztosítja az M dokumentum vak aláírásának generálásához :

  1. Szükséges egy olyan k véletlen generálása , amelyre 1 < k < q , és kiszámítani . Ezeket a műveleteket az aláíró hajtja végre. Ezután átadja az R számot a felhasználónak;
  2. A felhasználó ε és τ véletlenszámokat generál úgy, hogy 1 < ε, τ < q , majd kiszámítja , és E = E'  - τ mod q ; E  - az aláírás első eleme - elküldésre kerül az aláírónak;
  3. Az aláíró kiszámítja az aláírás második elemét S = (k - xE) mod q , és elküldi az S -t a felhasználónak;
  4. A felhasználó kiszámítja S' = S + ε mod q .

Ebben a leírásban a következő paramétereket használjuk: q  a számításokhoz használt modulus, egyszerű; a  a szülőelem; x  - privát kulcs; y  a nyilvános kulcs [9] .

Kollektív vak aláírás

Legyenek  nyilvános kulcsok az s felhasználók tulajdonában. Legyen M üzenet , amit m közülük alá akarnak írni. Ebben az esetben az összes aláírás összevonható egybe, amelynek hossza megegyezik egy felhasználó aláírásának hosszával, és nem függ m -től . Ez a következő 1 protokoll szabályai szerint valósul meg:

  1. Az m felhasználó mindegyike generál egy < p véletlenszámot , ahol j = , p  egy nagy prímszám. Ezután az m felhasználó mindegyike kiszámítja a mod p -t ( k  egy nagy prímhatvány), és elküldi ezt a számot a csoport többi felhasználójának.
  2. Minden felhasználó kiszámítja a mod p -t . Ezután az e = f(R,M) = RH mod q kiszámítása történik , ahol q egy p  -től eltérő nagy prímszám , H = Hash(M)  pedig egy hash függvény. Az e szám lesz a közös aláírás első eleme.
  3. mod p  a felhasználó részesedése. Minden felhasználó kiszámítja ezt a részesedést, és megadja a többieknek.
  4. Ezután minden felhasználó kiszámítja a mod p -t . Ez a közös aláírás második eleme.
A kollektív vak aláírás ellenőrzése

mod p  a megosztott nyilvános kulcs. Ennek alapján a kollektív vak aláírás ellenőrzése a következő algoritmus szerint történik:

  1. A Mod p kiszámítása .
  2. Számítsuk ki e' = f(R,M) = RH mod q
  3. Ha e' = e , akkor az aláírás érvényes [9] .

Alkalmazás

Bankrendszerek

A vak aláírások protokollja a digitális pénz területén találta a legszélesebb körű alkalmazást . Például, hogy a betétes ne tévessze meg a bankot, a következő protokoll használható: a befizető száz különböző számú dokumentumra felírja ugyanazt a címletű bankjegyet, és azt titkosított formában letétbe helyezi a banknál. A bank véletlenszerűen választ, és 99 (vagy n-1) boríték kinyitását követeli, megbizonyosodik arról, hogy mindenhol 10 dollár van írva, és nem 1000 dollár, majd vakon aláírja a maradék borítékot, nem látva a számlaszámot.

Egy egyszerűbb lehetőség is kínálkozik: a bank saját nyilvános kulcspárral rendelkezik a bankjegy minden címletéhez. Ekkor az aláírás alá csak a bankjegyszám kerül elküldésre, és az aláírás előtt nem kell ellenőrizni a címletet [1] .

Titkos szavazás

A titkos szavazáshoz vak aláírásokat használnak . A Fujioka, Okamoto és Ota protokolljában a választópolgár saját választásával szavazólapot készít, titkos kulccsal titkosítja és elfedi. Ezután a választópolgár aláírja a szavazólapot, és elküldi az érvényesítőnek. Az érvényesítő ellenőrzi, hogy az aláírás olyan regisztrált választóhoz tartozik-e, aki még nem szavazott.

Ha a szavazás érvényes, az érvényesítő aláírja a szavazólapot és visszaküldi a választópolgárnak. A választó eltávolítja az álcát, így felfedve az érvényesítő által aláírt titkosított szavazólapot. Ezt követően a választópolgár az így kapott aláírt és titkosított szavazólapot a pulthoz küldi, amely ellenőrzi a titkosított szavazólapon lévő aláírást.

Ha a szavazás érvényes, a szavazatszámláló egy listára teszi, amelyet a teljes szavazás után közzé kell tenni. A lista közzététele után a szavazók ellenőrzik, hogy szavazólapjaik szerepelnek-e a listán, és elküldik a számlálónak a szavazólapjuk megnyitásához szükséges visszafejtési kulcsokat. A szavazatszámláló ezekkel a kulcsokkal fejti meg a szavazatokat, és hozzáadja a szavazatokat az összesítéshez. A választás után a szavazatszámláló visszafejtő kulcsokat ad ki a titkosított szavazólapokkal együtt, hogy a választók önállóan ellenőrizhessék a választást [10] .

Vak aláírással kapcsolatos sebezhetőségek

Az RSA algoritmus támadás tárgya lehet , aminek köszönhetően lehetővé válik egy korábban vakon aláírt üzenet visszafejtése, még aláírásra váró üzenetként adva tovább. Abból a tényből kiindulva, hogy az aláírási folyamat egyenértékű az aláíró általi dekódolással (a saját privát kulcsával), a támadó aláírhatja az üzenet már vakon aláírt , az aláíró nyilvános kulcsával titkosított változatát, azaz aláírhatja az üzenetet .

hol  van az üzenet titkosított változata. Az üzenet aláírása után az egyszerű szöveg könnyen visszakereshető:

hol  van az Euler-függvény . Mostantól könnyen fogadható az üzenet.

A támadás azért működik, mert ebben a sémában az aláíró közvetlenül magát az üzenetet írja alá. Ezzel szemben a hagyományos aláírási sémákban az aláíró jellemzően aláír például egy kriptográfiai hash függvényt . Ezért az RSA multiplikatív tulajdonsága miatt soha nem szabad ugyanazt a kulcsot használni a titkosításhoz és a vak aláíráshoz [8] .

Lásd még

Jegyzetek

  1. ↑ 1 2 3 Bruce Schneier, Alkalmazott kriptográfia. 2. kiadás. Protokollok, algoritmusok és forrásszövegek C nyelven, Triumph kiadó, 2002
  2. Jean Kamenich, Jean-Marc Piveto, Markus Stadler, "Blind Signatures Based on the Discrete Logathm Problem", Eurocrypt, 428-432. oldal, Springer-Verlag, 1995.
  3. Qalian Chakrabortu, Jean Mehta, "A bélyegzett vak aláírási séma elliptikus görbén alapuló diszkrét logaritmus problémán", International Journal of Network Security, 14. szám, 316-319. oldal, 2012.
  4. Lung-Chang Lin, Ming-Shiang Hang, Chin-Chen Chang "Az anonim e-szavazás biztonságának javítása a weben", Számítógépes szabványok és interfészek, 25. szám, 131-139. oldal, 2003.
  5. Tatsuaki Okamoto, "Hatékony vak és részlegesen vak aláírások véletlenszerű előrejelzések nélkül", Papírgyűjtemény "A kriptográfia elmélete", 80-99. oldal, Springer-Verlag, 2006.
  6. Markus Ruckert, "Rácsokon alapuló vak aláírás", az Asiacrypt konferencia előadásainak gyűjteménye, 413-430. oldal, Springer-Verlag, 2010.
  7. Daniel Ortiz-Arroyo, Claudia Garcia-Zamora, "A Mu-Varadarajan Electronic Voting Protocol újabb fejlesztése", Számítógépes szabványok és interfészek, 29. szám, 471-480. oldal, 2007.
  8. ↑ 1 2 Moldovyan N.A. Workshop a nyilvános kulcsú kriptorendszerekről. - 2007. - 304 p. — ISBN 5-9775-0024-6 .
  9. ↑ 1 2 3 N.A. moldovai. Elméleti minimum és digitális aláírási algoritmusok. - BVH-Pétervár, 2010. - 304 p. - ISBN 978-5-9775-0585-7 .
  10. Anisimov V.V. A két ügynökség, a Fujioka-Okamoto-Ohta és a Sensus jegyzőkönyvei . Az információvédelem kriptográfiai módszerei .

Irodalom

  • Schneier, B. Alkalmazott kriptográfia. 2. kiadás. Protokollok, algoritmusok és forrásszövegek C nyelven - "Triumph", 2002
  • Klyuzhev A. Elektronikus szavazás, 2003
  • Shangin, V. F. , Sokolov, A. V. Információbiztonság elosztott vállalati hálózatokban és rendszerekben - "DMK", 2002
  • Chaum, D. Vak aláírások a nyomon követhetetlen kifizetésekért – Springer-Verlnag, 1998
  • Moldovyan N. A. Workshop a nyilvános kulcsú kriptorendszerekről, 2007
  • Moldovyan N. A. A digitális aláírás elméleti minimuma és alapjai, 2010