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:
- Doar R poate distinge textul cifrat de zgomotul aleatoriu.
- Doar S poate genera un text cifrat corect.
- Doar R poate decripta.
- Doar S poate cripta.
- Doar R și S pot distinge textul cifrat de zgomotul aleatoriu, având în vedere textul simplu.
- 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.
- 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.
- 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.
- 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.
- 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.