Criptarea bazată pe atribute ( Criptare pe bază de atribute în limba rusă , criptare ABE ) este un tip de algoritmi de criptare a cheii publice în care cheia privată utilizată de utilizator pentru a decripta datele depinde de anumite atribute ale utilizatorului (de exemplu, poziția, locul de reședință, tipul). a înregistrărilor de cont). Ideea ABE a fost publicată pentru prima dată de Amit Sahai și Brent Waters [1] și a fost dezvoltată în continuare de Vipul Goyal, Omkant Pandey, Amit Sahai și Brent Waters [2] ..
Schema a fost propusă de Sahai și Waters în 2005. Acesta implică proprietarul datelor (transmiterea datelor), utilizatorul (primirea datelor) și o terță parte (autoritatea de încredere) al cărei rol este de a genera chei pentru criptarea și decriptarea datelor de către proprietarii și utilizatorii de date.
Cheile (în special, cheia publică și cheia universală) sunt generate din setul complet de atribute. Dacă un utilizator cu un nou atribut se alătură sistemului, atributul va fi adăugat la set și cheile publice și universale vor fi regenerate.
Proprietarul datelor criptează datele folosind cheia publică și un set de atribute.
Utilizatorul poate decripta datele folosind propria sa cheie privată, pe care o primește de la un centru de încredere. Se verifică o corespondență între atributele care compun cheia privată a utilizatorului și atributele datelor criptate. Dacă numărul de atribute care se potrivesc depășește un prag stabilit , cheia privată a utilizatorului va putea decripta datele. (Să fie, de exemplu, atributele datelor criptate {„Departamentul de Inginerie Radio”, „Profesor”, „Student”}, . Pentru ca utilizatorul să poată decripta datele și să aibă acces la ele, setul de atributele care compun cheia sa privată trebuie să conțină cel puțin două din cele trei atribute de date criptate).
Să fie un set de atribute. O multime se numeste monotona daca:
.
Structura de acces (structură de acces monotonă) este un set (mult monoton) de subseturi nevide , adică . Seturi de atribute care sunt incluse în - seturi autorizate, utilizatorilor cu acestea li se permite accesul la date; seturile care nu aparțin sunt seturi de atribute neautorizate.
Schema de criptare bazată pe atribute în forma sa originală este limitată la structurile de acces monotone. În 2007, a fost propusă o generalizare [3] a schemei pentru cazul structurilor nemonotone, dar nu este eficientă [4] .
Structura de acces poate fi reprezentată ca un arbore , în care nodurile frunză sunt atribute, iar nodurile rămase sunt caracterizate prin nodurile lor fii și valorile pragului. Să fie, de exemplu, un nod să aibă vârfuri copil; valoarea sa de prag , . Dacă valoarea de prag a acestui nod este , atunci este un element logic „SAU” , deoarece prezența unuia dintre atributele copil în utilizator este suficientă pentru a atinge valoarea de prag. Dacă valoarea pragului este , atunci în mod evident implementează elementul „ȘI”.
Fie , să fie grupuri biliniare de ordin ( este simplu), să fie generatorul grupului ;
este o mapare biliniară ;
— valoarea pragului.
Schema generală constă din patru etape, pentru fiecare dintre ele există un algoritm corespunzător.
Centrul de încredere alege aleatoriu dintr -un câmp finit și calculează cheia publică , unde este generatorul unui grup de ordine biliniar ( este un prim). Acest pas generează, de asemenea, o cheie universală .
Centrul de încredere generează o cheie privată pentru fiecare utilizator ; — set de atribute utilizator. Un polinom de grad este ales la întâmplare astfel încât . Cheia privată a utilizatorului .
Proprietarul datelor criptează mesajul folosind un set de atribute și un număr ales aleatoriu :
Dacă , din atributele sunt selectate pentru a calcula valorile , .
mesaj original .
Cheile private din această schemă sunt generate conform principiului partajării secrete: părți din secretul y sunt incluse în componentele cheii private a utilizatorului; cheia privată corespunde unui polinom aleatoriu . Ca urmare a combinării mai multor chei private, o nouă cheie privată nu poate fi obținută, ceea ce previne posibilitatea unui atac de coluziune.
În 2006, Goyal [2] a propus o schemă de criptare ABE cu o regulă de acces bazată pe o cheie privată (Key-policy Attribute-based Encryption). În ea, datele criptate sunt descrise de un set de atribute, iar regula de acces la date este conținută în cheia privată a utilizatorului. Dacă setul de atribute de date se potrivește cu structura de acces din cheia privată a utilizatorului, datele pot fi decriptate. De exemplu, datele sunt criptate cu atributele {"Department of Radio Engineering" "Student"}, iar cheia privată a utilizatorului corespunde structurii de acces {"Department of Radio Engineering" ("Profesor" "Student")}. Atributele datelor criptate se potrivesc cu structura de acces a cheii private a utilizatorului, astfel încât utilizatorul va putea decripta datele.
Algoritmul de criptare diferă de versiunea originală a ABE în etapele de generare a cheilor private și, în consecință, de decriptare: cheia privată a utilizatorului este generată în funcție de structura de acces necesară. Când se separă secretul pentru vârfuri de la rădăcină la fiecare vârf final x, se alege un polinom astfel încât , unde este nodul părinte față de , și este numărul vârfurilor dintre vârfurile aparținând aceluiași părinte. Astfel, corespunde cheii universale , care este distribuită între frunzele arborelui corespunzătoare componentelor cheii private.
În 2007, Bethencourt și colaboratorii au propus în lucrarea lor [5] o schemă de criptare ABE cu o regulă de acces bazată pe text cifrat. Controlul accesului se realizează într-o manieră similară cu CK-ABE, cu toate acestea, regula de acces la date nu este conținută în cheia privată a utilizatorului, ci în datele criptate în sine (text cifrat); cheia privată a utilizatorului corespunde în același timp unui set de atribute. Dacă atributele conținute în cheia privată a utilizatorului se potrivesc cu structura de acces al textului cifrat, utilizatorul poate decripta datele. Dacă, de exemplu, structura de acces conținută în date este {"Department of Radio Engineering" ("Profesor" "Student")}, iar setul de atribute din cheia privată a utilizatorului este {"Department of Radio Engineering" "Teacher" "}, utilizatorul va putea accesa datele .
Inițial, schemele de criptare bazate pe atribute au impus restricții asupra structurilor de acces, și anume, a fost implicată monotonitatea acestor structuri. Arborele corespunzător structurii putea conține elementele logice „ȘI”, „SAU”, dar nu și elementul logic „NU”, ceea ce a impus unele restricții asupra posibilelor reguli de acces.
De exemplu, dacă un profesor din cadrul Departamentului de Inginerie Radio dorește să partajeze anumite date studenților, dar nu absolvenților, structura de acces ar trebui să arate ca {"Department of Radio Engineering" "Student" "NOT_Graduate"}.
O modalitate de extindere a algoritmului la cazul structurilor de acces nemonotone a fost propusă în 2007 de Ostrovsky et al. [3] . Negația sa este adăugată spațiului de atribute împreună cu fiecare element; astfel, numărul total de atribute posibile este dublat față de schema clasică. În caz contrar, principiul algoritmului rămâne același.
Această schemă are dezavantaje semnificative. Dacă structura de acces ar trebui să indice în mod explicit negarea tuturor atributelor pentru care nu ar trebui să deschidă accesul la date, atunci, ca rezultat, textul cifrat poate conține un număr mare de negații ale atributelor care nu au importanță practică pentru decriptarea date; ca urmare, dimensiunea textului cifrat este mult crescută. În plus, după criptarea datelor, pot apărea noi atribute în sistem, iar criptarea va trebui reluată.
Criptosisteme simetrice | |
---|---|
Cifruri în flux | |
Rețeaua Feistel | |
Rețeaua SP | |
Alte |
Funcții hash | |
---|---|
scop general | |
Criptografic | |
Funcții de generare a cheilor | |
Numărul de verificare ( comparație ) | |
Hashes |
|