![]() |
Problema 59
Decriptare XOR
Fiecărui caracter din calculator îi este atribuit un cod unic iar standardul preferat e ASCII (American Standard Code for Information Interchange). De exemplu, A = 65, asteriscul (*) = 42, și k = 107.
O metodă modernă de criptare presupune luarea unui fișier text, conversia octeților în ASCII, apoi aplicarea funcției XOR pe fiecare octet împreună cu o valoare luată dintr-o cheie secretă. Avantajul dat de funcția XOR este dat de faptul că, folosind aceeași cheie de criptare pe cifru, se poate restaura textul original; de exemplu, 65 XOR 42 = 107, apoi 107 XOR 42 = 65.
Pentru o criptare care nu poate fi spartă, cheia are aceeași lungime ca și mesajul și e compusă din octeți aleatorii. Utilizatorul ar ține mesajul criptat și cheia în locații diferite și, fără ambele "jumătăți", e imposibil de decriptat mesajul.
Din păcate, această metodă e impractică pentru majoritatea utilizatorilor, așa că metoda modificată este folosirea unei parole drept cheie. Dacă parola e mai scurtă decât mesajul, ceea ce e probabil, cheia e repetată ciclic de-a lungul mesajului. Un bun echilibru pentru această metodă e de a folosi o parolă suficient de lungă pentru a fi sigură, dar suficient de scurtă pentru a putea fi memorată.
Problema ta tocmai a fost facută ușoară, deoarece cheia de criptare constă din 3 litere mici. Folosind cipher1.txt (click dreapta și 'Save Link/Target As...'), un fișier conținând codurile ASCII criptate, și faptul că mesajul decriptat trebuie să conțină cuvinte comune limbii engleze, decriptează mesajul și află suma valorilor ASCII din mesajul original.