Puncte:0

Există un criptosistem cu cheie publică, „fără acord”, totul sau nimic, „mesaj de lungime secretă” sau vreo modalitate ușoară de a-l deriva?

drapel br

Vreau să creez un algoritm de criptare care să fie sigur în multe moduri, ceea ce văd greu, așa că am venit cu câteva idei despre cum să-l implementez folosind niște primitive pe care le cunosc și chiar am descoperit unele online care seamănă cu asta, dar m-am gândit că este timpul să consult forumul despre asta.

În primul rând, ar trebui să-mi definesc scopul. Toți participanții au cheile lor private și publice. Comunicarea trebuie să fie posibilă fără nicio înțelegere prealabilă (fără chei secrete, simetrice). Acest lucru nu este de neglijat din cauza unei alte proprietăți...Practic, vreau ca participanții care găsesc mesaje direcționate către ei, aleatoriu, neașteptat, să le poată decripta, păstrând în același timp toate nivelurile de securitate.

Să presupunem că avem S, emițătorul și R, receptorul. Când spun că cineva „nu poate”, vreau să spun că totuși poate să pună întrebări și să ghicească în modul și în cantitate, așa cum este descris pentru IND-CCA2. Diferențiez informațiile despre sfârșitul textului simplu sau cifrat, de orice altă informație despre ele (acesta fiind conținut, și la care mă voi referi ca informații despre text simplu). Cunoașterea conținutului este mai puternică în sensul că aș permite oricui să deducă măcar ceva despre capete, dacă știe măcar ceva despre conținut. As dori aceste proprietati:

  1. Doar R poate distinge textul cifrat de zgomotul aleatoriu.
  2. Doar S poate genera un text cifrat corect.
  3. Doar R poate decripta.
  4. Doar S poate cripta.
  5. Doar R și S pot distinge textul cifrat de zgomotul aleatoriu, având în vedere textul simplu.
  6. Având în vedere un text cifrat cu biți corupți în mijlocul unui flux de date aleatorii, nimeni nu poate afla informații despre sfârșitul textului cifrat sau orice informații despre textul simplu.
  7. Având în vedere un text cifrat cu biți corupți la începutul sau la sfârșitul unui flux de date aleatorii, nimeni nu poate afla informații despre celălalt capăt al textului cifrat sau orice informații despre textul simplu.
  8. Având în vedere un text cifrat cu biți corupti, cunoscându-i ambele capete, nimeni nu poate afla informații despre textul simplu.
  9. Având în vedere un text cifrat corect la începutul unui flux de date aleatorii, doar R poate (și eficient, în timp liniar) să găsească sfârșitul textului cifrat și nimeni altcineva nu o poate face.
  10. Diferența dintre lungimile textului cifrat și textului simplu este constantă.

Este în regulă dacă îmi puteți spune despre un criptosistem care oferă unele și poate nu toate aceste proprietăți. Poate îmi dau seama cum să-l termin. Și este ok să adăugați propria interpretare a diferenței de informații despre capete și text simplu.

Mi-ar trebui ceva timp să traduc în engleză fișierele mele cu ideile mele actuale de algoritmi, dar abia există nimic. Am observat OAEP++ și am văzut unele asemănări cu ideile mele, dar asta-i tot. Nu reușesc constant să țin atât de multe detalii în capul meu...

Aici este încercarea mea.

SAI Peregrinus avatar
drapel si
Cerințele 2, 4 și indistinguirea de aleatoriu fac acest lucru destul de complex. Probabil că aș ajunge cu ceva care să folosească Elligator pentru ascunderea cheilor, Ristretto pentru schimbul de chei și grupuri de semnături și un sistem de semnare, apoi criptare, în care textul simplu este semnat, apoi criptat cu o schemă de criptare acoperită autentificată cu date asociate cu semnarea cheie publică și un hash al cheii secrete efemere în datele asociate. Pad cu PADMÃ. Asta i-ar permite lui R să respingă mesajele de la oricine altcineva decât S, să ofere un mesaj cu aspect aleatoriu etc. Foarte greu de înțeles totuși.
kodlu avatar
drapel sa
Care este diferența dintre 2 și 4? Nu sunt echivalente?
poncho avatar
drapel my
Dacă cerința 9 înseamnă „timp liniar în lungimea textului simplu” (care poate fi considerabil mai scurt decât textul cifrat), atunci există o contradicție între aceasta și 8. Pentru ca 9 să fie adevărat, decriptorul nu poate examina întregul text cifrat pentru a determina lungimea textului simplu; 8 afirmă că modificarea unor biți de text cifrat împiedică pe oricine să învețe ceva despre textul simplu (inclusiv lungimea); ce se întâmplă dacă biții care sunt modificați nu sunt cei examinați la determinarea lungimii textului simplu?
donaastor avatar
drapel br
@SAIPeregrinus Mulțumesc mult! Aceasta este o mulțime de perspectivă pe care îmi voi lua cu plăcere timp să le privesc și să revin la sarcina mea și la acest post.
donaastor avatar
drapel br
@kodlu Nu chiar. În teorie, cineva ar putea fi capabil să producă un text cifrat pornind de la ceva care nu este text simplu și totuși să fie convins că ceea ce a creat el este un text cifrat propriu-zis, dar, pe de altă parte, nu poate produce text cifrat, pornind de la text simplu. Deci, 4 implică 2, dar nu sunt sigur că 2 implică 4.
donaastor avatar
drapel br
@poncho Ai dreptate, răul meu. Mi-a fost greu să scriu ultimele 3 proprietăți, pentru că nu am putut vedea clar cum să împart informațiile despre lungime în afară de toate celelalte informații (cum ar fi conținutul mesajului). Ai observat o contradicție în prima mea încercare, voi încerca să o repar acum.

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.