verificați dacă criptarea literei inversate cu majuscule (deoarece xor-ing cu un spațiu alb întoarce majusculele unei litere) cu k_sub produce c_sub2, dacă o face, ar trebui să știm că k_sub este sub-partea corectă a cheii. Dacă nu, încercați același lucru presupunând că m_sub2 este un spațiu alb
În prezent, asociați două fluxuri de text cifrat, în timp ce aveți 10 dintre ele. Ar trebui să alegeți un flux din 10 și apoi să efectuați XOR cu toate celelalte 9 în aceeași poziție. Dacă majoritatea acestor fluxuri returnează litere (și nicio combinație nevalidă a unui XOR - dar este mai greu de testat), atunci puteți fi destul de sigur că caracterul criptat este un spațiu și puteți găsi cheia după XOR-ul pe care îl efectuați în răspunsul dvs. .
Cred că ar putea fi cazul în sarcina lui Boneh, dar aveți grijă că puteți întâlni combinații de text simplu care împreună pot produce și o scrisoare. Deci nu puteți pur și simplu să efectuați un XOR cu două fluxuri și să vă validați ipoteza în acest fel. Cu cât ai mai multe fluxuri, cu atât ești mai sigur; în cele din urmă, puteți valida, desigur, uitându-vă și la mesajele text simplu și/sau folosiți-vă abilitățile lingvistice pentru a completa spațiile libere.
Dacă îmi amintesc bine, am luat-o puțin diferit. Am luat un flux, am repetat peste toate caracterele din alfabet (notă: caracterele posibile de intrare se numesc aici „alfabetul”, nu mă refer la ABC) pentru fiecare poziție, apoi le-am XOR pe toate trei împreună. Dacă toate fluxurile au rezultat în alfabet, atunci am lovit caracterul potrivit. Acest lucru vă permite să gestionați doar caracterele din alfabet, nu combinațiile XOR ciudate.
Dacă sunt găsite mai multe caractere, atunci utilizați-l pe cel care produce cele mai utilizate caractere în toate fluxurile împreună (analiza de frecvență).
Dacă tot nu dă rezultate, puteți încerca și alte fluxuri (desigur, ar trebui să comparați doar fluxul 2 cu 8 fluxuri, deoarece ați comparat deja #1 și #2).
OK, să presupunem că avem prima poziție (pozițiile nu sunt indicate în numele variabilelor) și un set de fluxuri. Acum să începem cu primul flux și XOR-l cu toate celelalte fluxuri, notate cu $y$ Unde $y != 1$.
Aveți o pereche de două valori criptate care constau în $c_1 = p_1 \oplus k$ și $c_y = p_y \oplus k$. Deci XOR-ul împreună vă oferă $r = c_1 \oplus c_y = p_1 \oplus p_y$ (nimic nou aici). Acum, dacă ghiciți $p_1$ și cheamă-l $p'_1$ ai primi $p'_1 \oplus p_1 \oplus p_y = p'_y$. Acum dacă $p'_y$ este un caracter invalid atunci evident $p'_1$ a fost o presupunere greșită. Dacă aveți ghinion, atunci trebuie să efectuați o analiză de frecvență a tuturor rezultatelor $p'_y$. Dar amintiți-vă că puteți face asta cu toate $\binom{n+1}2$ perechi înainte de a recurge la asta.
Odata ce ai $p'_1 = p_1$ atunci, evident, cheia este doar XOR cu caracterul ciphertext: $c_1 \oplus p_1 = k$. Asta înseamnă că trebuie doar să iterați peste alfabet, mai degrabă decât toate cheile, și puteți respinge rapid încercările proaste.