Puncte:1

Este XORing un șir codificat Base64 sigur?

drapel cz

Teoretic, este sigur să codificați mai întâi un șir folosind Base64 și apoi să îl XOR cu o cheie aleatorie sau există potențiale puncte slabe care ar putea fi exploatate?

Evident, acest lucru nu are niciun sens în practică, dar eram curios dacă ar fi la fel de sigur ca XORing și apoi Base64ing.

Puncte:2
drapel cn

Dacă iei un text simplu secret $P$ de lungime $n$ și o cheie de unică folosință $K$, tot de lungime $n$, care este generat aleatoriu (în sensul criptografic al termenului), textul cifrat $C = P \oplus K$ obtinut prin xorarea lor nu dezvaluie nimic despre $P$ unui adversar care nu știe $K$, altele decât lungimea de $P$. În ceea ce îl privește pe adversar, $P$ ar putea fi oricare dintre șirurile de lungime $n$.

Dacă mai întâi codificați textul simplu în Base64 și utilizați o cheie $K'$ de lungime $n' = \mathsf{lungime}(\mathsf{Base64}(P))$, textul cifrat $C' = \mathsf{Base64}(P) \oplus K'$ nu dezvăluie altceva decât lungimea de $\mathsf{Base64}(P)$, care se află într-o corespondență unu-la-unu cu lungimea de $P$. Deci, xoring codificarea Base64 este la fel de bun ca xoring mesajul original.

Rețineți că este esențial ca cheia să fie aleatorie. Dacă cheia în sine este codificată în Base64, adică dacă publicați un text cifrat $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$, aceasta va scurge destul de multe informații despre mesaj. Xorarea unei chei aleatoare funcționează deoarece pentru fiecare poziție din textul cifrat, fiecare caracter este posibil pentru textul simplu, corespunzător fiecărui caracter pentru cheie. Dar, de exemplu, dacă un personaj în $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$ are bit 0x40 setat (presupunând o codificare bazată pe ASCII), există un $52/64$ sansa ca personajul corespunzator in $\mathsf{Base64}(P)$ este unul din 0123456789-/, pentru că există o $52/64$ sansa ca personajul corespunzator in $\mathsf{Base64}(P)$ este o scrisoare.

În timp ce criptați rezultat de codificare Base64 nu scurge mai multe informații decât criptarea mesajului original, proces de a face codificarea sau decodificarea Base64 poate scurge informații despre mesaj prin canale secundare.

Puncte:2
drapel in

Teoretic, este sigur să codificați mai întâi un șir folosind Base64 și apoi să îl XOR cu o cheie aleatorie sau există potențiale puncte slabe care ar putea fi exploatate?

Nu, acest lucru este sigur. Poate chiar să fie puțin mai sigur dacă codarea elimină unele informații despre dimensiune.

in orice caz, XOR criptare este sigur doar dacă se potrivește îndeaproape cu un pad unic, cu siguranță nu cu un pad de mai multe ori; adică fluxul cheie care este XOR acum trebuie să fie atâta timp cât mesajul codificat în baza 64. În cazul în care este utilizat un pad de mai multe ori, codificarea de bază 64 va oferi probabil Mai mult informații despre textul clar pentru atacator.

Evident, acest lucru nu are niciun sens în practică, dar eram curios dacă ar fi la fel de sigur ca XORing și apoi Base64ing.

Ei bine, dacă are sens depinde, uneori lucruri precum șirurile XML și JSON trebuie criptate, iar asta înseamnă practic criptarea codării de bază 64 încorporată (dacă există).

Cu toate acestea, practic nu există niciun motiv pentru a codifica baza 64 înainte de criptare dacă aveți deja un format de mesaj binar. În afară de asta, este mult mai bine să folosești o schemă AEAD bună decât un cifru bazat pe XOR, chiar dacă seamănă cu un pad unic.

hhhhhhhh avatar
drapel cz
Dacă se folosește un tampon de mai multe ori, care sunt exact punctele slabe? eu e. de ce folosirea unuia dezvăluie mai multe informații atacatorului?
Maarten Bodewes avatar
drapel in
Există multe întrebări aici despre asta, dar [acesta din 2012](https://crypto.stackexchange.com/q/2249/1172) este probabil cel mai bun punct de plecare.

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.