Semnătura digitală rapidă este o variantă de semnătură digitală care utilizează un algoritm cu un număr mult mai mic (de zeci de ori) de calcule aritmetice modulare în comparație cu schemele EDS tradiționale . Schema rapidă de semnătură electronică , ca cea obișnuită, include un algoritm pentru generarea perechilor de chei utilizator , o funcție de calcul a semnăturii și o funcție de verificare a semnăturii.
De la inventarea EDS în 1976, acesta a fost cel mai promițător domeniu de cercetare în criptosistemele cu cheie publică . Una dintre soluțiile matematice standard pentru construirea algoritmilor criptografici este problema logaritmului discret , pe baza căreia au fost dezvoltați mulți algoritmi pentru obținerea semnăturilor digitale . Principalul dezavantaj al algoritmilor EDS tradiționali , cum ar fi schema ElGamal și RSA , este complexitatea lor de calcul. Calcularea exponențialelor în aritmetică modulară este cea mai intensivă din punct de vedere computațional în schemele criptosistemelor cu cheie publică . În prezent, se lucrează mult pentru a îmbunătăți performanța algoritmilor criptografici prin reducerea numărului de calcule ale exponenților. Cea mai scurtă schemă EDS cunoscută este BLS (Boneh–Lynn–Shacham) care utilizează curbe eliptice , dar este limitată la grupuri care au o funcție de împerechere . Dezvoltatorii de algoritmi lucrează atât pentru a îmbunătăți schemele tradiționale de logaritmi discrete prin utilizarea calculului paralel al exponenților, cât și pentru a explora abordări fundamental diferite bazate, de exemplu, pe teoria grafurilor în loc de aritmetica modulară .
Fie un grup abelian , fie subgrupul său ciclic cu generator de ordine , unde este un număr prim mare . Fie și să fie parametrii de securitate, și . Fie și fie funcții hash . Schema de semnătură este următoarea:
Generarea cheilor
Utilizatorul alege o cheie secretă aleatorie și calculează cheia publică .
Creați o semnătură
Intrările sunt o cheie secretă și un mesaj .
În continuare, partea care creează semnătura:
1. selectează un număr aleator și un bit aleatoriu ;
2. calculează ;
3. calculează ;
4. calculează , unde ;
5. calculează ;
6. calculează .
Semnătura mesajului este .
Verificarea semnăturii
Pentru a verifica semnătura mesajului m, procedați în felul următor:
1. reprezentat ca ;
2. si se calculeaza ;
3. calculat ;
4. se verifică dacă .
Dacă egalitatea din pasul 4 este adevărată, semnătura trece verificarea.
ZN denotă inelul de numere întregi modulo și sunt parametrii de securitate , de obicei ,
Rolul Centrului de autentificare cheie (KAC)
CAC alege:
CAC publică și cheia publică .
Cheia privată a CAC este folosită pentru a semna cheile publice pe care le generează . Pentru a crea astfel de semnături, CAC poate utiliza orice schemă EDS securizată .
Generarea cheilor utilizatorului.
Fiecare utilizator alege o cheie secretă constând din numere aleatorii , variind de la 1 la , astfel încât GCD pentru toți de la 1 la . Crearea semnăturii poate fi accelerată prin alegerea numerelor întregi mici ca . Securitatea unei astfel de scheme se bazează pe presupunerea că calcularea rădăcinilor este dificilă. În prezent, nu se știe despre existența algoritmilor care calculează rădăcinile , cu condiția ca aceste rădăcini să fie de ordin .
Înregistrare utilizator.
CAC verifică dacă utilizatorul se potrivește, generează un șir care conține numele, adresa etc. și generează o semnătură pentru perechea formată din și cheia publică a utilizatorului .
Crearea unei semnături.
Mesajul de intrare , cheia secretă și modulul , care este folosit pentru calcule.
1. Un număr aleatoriu este selectat din interval și calculat .
2. Calculat .
3. Calculat .
Semnătura de ieșire este pereche .
Generarea unei semnături necesită cel mult înmulțiri modulo și, în medie, aleatorii necesită doar înmulțiri.
Verificarea semnăturii.
Date de intrare — semnătură , mesaj , , .
1. Semnătura pentru .
2. Calculat .
3. Verificați că .
Pentru verificarea semnăturii este necesar, în medie, pentru operațiile de înmulțire aleatorie modulo, maximum .
Securitatea semnăturii.
Pentru a falsifica o semnătură de mesaj , criptoanalistul trebuie să rezolve o ecuație pentru și .
În prezent, nu există algoritmi cunoscuți pentru rezolvarea acestei ecuații.
Algoritmii rapidi de semnătură digitală sunt cei mai eficienți în cazurile în care viteza de obținere a cheii și dimensiunea mică a semnăturii sunt de importanță primordială. Cerințe similare există în rețelele mobile, de senzori sau personale (a căror rază este limitată la o cameră) atunci când se transmite trafic multimedia. Utilizarea unei semnături digitale în telefoanele mobile GSM permite utilizatorilor să creeze ei înșiși un cod PIN, mai degrabă decât să-l primească de la operator.
Implementarea algoritmilor accelerați de generare a semnăturii digitale pentru dispozitive cu resurse limitate, cum ar fi PDA-uri, carduri inteligente încorporate și telefoane mobile, a căror putere de calcul este mult inferioară capacităților computerelor personale, va permite cheltuirea mai puțină energie pentru a crea și stoca o semnătură. și astfel crește timpul de funcționare al dispozitivului fără reîncărcare.