Da pojasnim kako sam došao do rešenja:
Kada sam otvorio prvi file "1encrypt.txt" odmah mi je bilo jasno da se radi o kljucu duzine dva bajta, zbog repeticije karaktera.
Posto si stavio enkriptovan fajl, resenje, i kljuc, onda sam sastavio sledecu tabelu sa decimalnim ASCII vrednostima
Code:
A - Key
B - Tekst
C - Šifra
A 76 80 76 80 76 80 ...
B 76 105 110 105 110 32 ...
C 152 57 186 57 186 240 ...
Posmatrajuci tabelu izvukao sam pravilnost:
Prvi karakter kljuca se uvek samo dodaje na originalnu vrednost i time se dobija sifra. Drugi karakter kljuca se dodaje na originalnu vrednost, potom se dodaje 128. Ako ukupna suma prelazi 256, od nje se oduzima 256. Ako je suma manja od 256 vrednost se ostavlja kao takva.
Formule:
k1 -> C = A + B
k2 -> if(A+B+128 > 256) then A+B+128-256 else A+B+128
Reverznu proceduru nije bilo tesko napisati.
Za drugi fajl je postojao problem jer je bilo ocito da je nacin kriptovanja promenjen, odnosno za drugi karakter kljuca nisu izlazile korektne vrednosti.
Prvo sam pomislio da si 128 ubacio eto jer si mislio da time postizes 'dobijanje' 128-bitnog kljuca. Medjutim provalio sam da tu ima jos neka 'fora' a koju nisi naveo prvobitno. Pogledao sam u kakvoj je relaciji broj 128 sa decimalnim vrednostima kljuca i dosao sam do broja 28 (ASCII vrednost za FS - File Separator), predpostavio sam da je to vezano a kljuc pa sam onda isprobao vrednosti 146, 118, 90,
62, od kojih je ova poslednja bila kljuc kojim sam dekriptovao vrednost "It's not a big secret!".