Puncte:1

Generați perechi de chei asimetrice pe baza cuvintelor cheie, astfel încât orice cheie publică bazată pe setul care conține subsetul generator să fie validă

drapel tk
Fly

Să presupunem că avem o mulțime de utilizatori și fiecare utilizator are o listă de fructe care le plac - Acestea vor fi cuvinte cheie. Vreau ca utilizatorii mei să poată codifica orice date pe care le stochează (să spunem, locația pomilor lor fructiferi preferați), precum și să le decodeze: Prin urmare, vreau să pot genera o pereche de chei publice/private pe baza lor. anumită listă de cuvinte cheie.

Acest lucru implică, de asemenea, că orice utilizator cu aceeași listă de cuvinte cheie ar trebui să poată accesa datele care au fost codificate anterior. Cu toate acestea, aș dori să fac acest pas mai departe: vreau ca toți utilizatorii, care au o listă de cuvinte cheie care conține lista de cuvinte cheie folosită pentru a codifica datele ca subset, să aibă și acces la acele date codificate.

În exemplul meu, aceasta ar însemna următoarele: toți oamenii cărora le plac aceleași fructe sau mai multe ca altcineva ar trebui să poată decoda locațiile pomilor fructiferi ale acelei persoane.

În esență, vreau ca perechile mele de chei să se încapsuleze într-un fel una pe cealaltă: o cheie publică generată de o anumită listă de cuvinte cheie ar trebui să fie capabilă să se potrivească cu toate cheile private generate de orice subset al acelei liste de cuvinte cheie.

Din păcate, nu sunt un expert în domeniul criptografiei, așa că mă întrebam: știe cineva cum pot realiza generarea perechilor de chei cu proprietățile descrise mai sus?

Mulțumiri!

knaccc avatar
drapel es
Serverul trebuie să aibă vizibilitate zero asupra fructelor pe care le plac cuiva? Sau are voie serverului să cunoască fructele pe care le plac fiecărei persoane, dar nu și datele criptate pentru acea listă? Și ceva împiedică pe cineva să adauge doar toate fructele posibile, astfel încât să poată avea acces la toate? Lista tuturor fructelor posibile este un secret? Poate cineva să placă orice fruct sau trebuie să i se permită „accesul” să-i placă un fruct? Și ce se întâmplă dacă serverul creează doar un cont de utilizator căruia îi plac toate fructele posibile pentru a vedea toate datele?
drapel tk
Fly
@knaccc Serverul știe (și, de fapt, chiar îl stochează necodat) exact cui îi plac ce fructe. Restul întrebărilor dvs. sunt cu siguranță relevante pentru cazurile reale de utilizare ale unui astfel de sistem, dar cred că nu ar trebui să afecteze algoritmul de generare a cheilor în sine; dar in cazul meu, doar cineva caruia ii place un anumit fruct poate anunta altcuiva ca acest fruct exista, caz in care apoi i se permite sa ii placa. Un cont de utilizator căruia îi plac toate fructele este practic un cont principal, care apoi are într-adevăr acces la toate datele.
knaccc avatar
drapel es
Se pare că serverul va avea acces la lista tuturor fructelor posibile și, prin urmare, poate decripta și vizualiza cu ușurință orice informație pe care orice utilizator le-a stocat. Deci, ce rost are cineva să aibă o pereche de chei și să facă orice criptare, dacă serverul poate vedea totul oricum?
drapel tk
Fly
@knaccc Ei bine, scurgerile bazei de date nu ar produce date din cauza criptării.
knaccc avatar
drapel es
Dacă serverul poate vedea toate datele, atunci un compromis de server va scurge toate datele. Ai putea cripta întreaga bază de date în repaus cu o criptare simetrică obișnuită, iar asta ar fi echivalent cu ceea ce propui. Singurul mod în care o schemă de criptare elaborată precum cea pe care o propuneți ar avea sens este dacă ar fi făcută astfel încât administratorul serverului să nu aibă vizibilitate asupra niciunei date, deoarece numai utilizatorii ar avea cheile private pentru a decripta date.
drapel cn
Practic, descrieți se numește [criptare bazată pe atribute](https://en.wikipedia.org/wiki/Attribute-based_encryption).
Puncte:1
drapel es

Un fruct va fi creat de un utilizator și îi va atribui o cheie secretă $x$. Utilizatorul va informa serverul despre existența acestui fruct, identificându-l doar printr-o etichetă, și păstrând $x$ secret.

Toți utilizatorii au propriile perechi de chei EC personale, în care cheia lor secretă personală nu este dezvăluită serverului. Când cineva este invitat să-i placă un fruct, o invitație va cripta cheia secretă a acelui fruct $x$ cu cheia publică personală a invitatului pentru a le comunica acestuia.

Când un utilizator dorește să cripteze informații vizibile numai pentru utilizatorii care cunosc cheile secrete pentru un set de fructe ale căror chei secrete sunt $\{x_1 , x_2 , x_3\}$, utilizatorul pur și simplu îl criptează folosind criptarea simetrică AEAD cu cheia secretă $H(x_1 | x_2 | x_3)$, Unde $H$ este o construcție hash sigură criptografic, imună la atacurile de extensie de lungime. Listele de chei secrete ale fructelor ar trebui să fie întotdeauna concatenate în ordinea lor lexicografică.Utilizatorul va eticheta datele criptate, astfel încât alții să știe de ce subset de chei vor avea nevoie pentru a le decripta. Este posibil ca utilizatorul să dorească să semneze datele pe care le-a criptat cu cheia publică personală.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.