Deszyfrowanie hex-a

0

Mam takie zadanie na studiach:
Muszę rozszyfrować 32-bit hex, nie ma żadnego klucza, nie jest podany typ szyfrowania. Wiem tylko, że musi wyjść adres mailowy.
Zamieniałem na bajty w Pythonie, wynik chciałem rozszyfrować przy pomocy tablicy ASCII ale wyszły jakieś dziwne znaki. Jak można to "rozgryźć"?

1

pokaż dane wejściowe, bez tego ciężko coś podpowiedzieć. ogólnie takie zadanie to trochę zgadywanka.

0

32-bit? 4 bajty? To trochę mało jak na adres mailowy ;] ASCII to 7 bitów per znak, więc wyszłoby z tego może z 5 znaków...
Pokaż te dane.

0

Jeśli to jest jedna wartość to raczej musisz to rozwiązywać na kartce papieru.

Jedna z możliwych opcji zakodowania:

  • do zakodowania adresu wystarczy 32-znakowy alfabet (26 alfa, małpa, kropka = 28 znaków)
  • czyli jeden znak adresu to 5 bitów
  • czyli na 32 bitach mieści się 6 i 2/5 znaku
  • przykładowy krótki adres długości 6 znaków: [email protected]

Dłuższe adresy można by spróbować generować przy pomocy alfabetu o zmiennej długości znaku, ale to już by trzeba było się bawić w jakąś analizę i chyba by jeden przypadek nie wystarczył do złamania szyfru.

6

Mając tylko jeden przypadek możesz równie dobrze z góry uznać, że całość została zaszyfrowana xorem i dobrać dowolny adres mailowy jako wynik oraz wybrany_adres xor szyfr jako klucz ;-)

0
Patryk27 napisał(a):

Mając tylko jeden przypadek możesz równie dobrze z góry uznać, że całość została zaszyfrowana xorem i dobrać dowolny adres mailowy jako wynik oraz wybrany_adres xor szyfr jako klucz ;-)

No właśnie, gdyby był jeden adres to może było nie było takiego problemu. Ale tych przypadków mam ok. 50. Poniżej pierwsze trzy:

ea5f238e8300b595866ca38442c8afbc
6352af793bd1b583e43cb16c72401dd2
c87e4cbb36ef6a040327d6a3a324bf02

Nie może to być jakieś skomplikowane szyfrowanie, bo to zadanie dla studentów bez doświadczenia w kryptografii :)

Zamieniłem to w Pythonie na bajty i wyszły mi takie wyniki.
b'\xea_#\x8e\x83\x00\xb5\x95\x86l\xa3\x84B\xc8\xaf\xbc'
b'cR\xafy;\xd1\xb5\x83\xe4<\xb1lr@\x1d\xd2'
b"\xc8~L\xbb6\xefj\x04\x03'\xd6\xa3\xa3$\xbf\x02"

2
  1. Można to rozgryźć jak podasz nam PEŁNĄ TREŚĆ i WSZYSTKIE DANE. Nie pierwsze trzy, bo skoro dali ci 50 to pewnie potrzeba 50...
  2. Moja szklana kula mówi że to będzie np. XOR/stream cipher z takim samym kluczem dla każdego inputu, chociaż fakt że wszystkie dane mają po 16 bajtów (srsly, studiujesz jakąś informatykę i nie umiesz odróżnić 32 bitów od 16 bajtów? WTF?) sugeruje raczej jakiś szyfr blokowy z 8/16 bajtowymi blokami. Może przynajmniej pochwalisz się o czym już mówiliście na zajęciach, bo to trochę może ułatwić sprawę...
1
vojtk napisał(a):
Patryk27 napisał(a):

Mając tylko jeden przypadek możesz równie dobrze z góry uznać, że całość została zaszyfrowana xorem i dobrać dowolny adres mailowy jako wynik oraz wybrany_adres xor szyfr jako klucz ;-)

No właśnie, gdyby był jeden adres to może było nie było takiego problemu.

Jest dokładnie na odwrót. Im mniej danych szyfrogramu tym trudniej złamać szyfr.
Dalej nie opisałeś jasno i jednoznacznie swojego zadania.
Jak wyglądają dane wejściowe?
Co wiesz na temat szyfru, poza tym, że jest 32 bitowy? Czy to jest szyfr podstawieniowy? Bo jeśli jest polialfabetyczny, to sprawa jest dużo bardziej skomplikowana.
Musisz coś więcej wiedzieć, bo długość wiadomość na 50 emaili bez dodatkowej wiedzy to raczej mało.

Metoda jest prosta znając długość hasła (32 bity) robisz statystyki danych wejściowych (w grupkach co czwarty bajt). A następnie próbujesz na tej podstawie robić wnioskowanie. Jeśli to nie wystarczy to robisz statystykę korelacji znaków i porównujesz ją do danych sttystycznych innej znanej wiadomości i podobnym charterze).

0

Otóż zadanie brzmi następująco:

Rozszyfruj poniższe frazy korzystając z poznanych szyfrów (szyfry podstawieniowe / szyfry przestawieniowe) oraz wiedząc, że wynikiem są wartości adresów stron internetowych, adresów e-mail ("cookies").

n wartość
200 88e592740b6a6de1c013b998ac133a5d
201 4955f09f87dda586edce4172ba13a53c
202 0d31f3400d489c559e9a9702b782a77a
203 03ccba3986632602d1d9eae9aeda0bd0
204 59a29db5f479c414f5e7e36174e53f78
205 2d25045bf147feed3df58e73717559b0
206 5b02cf10d4dbb77d42892c9af75eb3e1
207 c54dcd98885b83c000544df5b9a38a22
208 5c0501e335cc473cb6d6581b92d700c5
209 ccc8cd4a4c62a436147a4de0a4f716ea
210 25b2fa3bb3a19b039a0e40fc119e2e3b
211 5e0cce8a9e18e6831b7ca4565bed6a41
212 3fb2452daa003e770507f03448781f3b
213 35b6e887c08e87764700965add516929
214 98d6ce4db1cb7207c643b38224f8ea96
215 1c97ee214dad3148b2a02fad85996ef5
216 12df5bb4af685d6674e25daa9e183a77
217 1c09148ed860413e6f7233c892928fc6
218 e599541256be59d5c192255e956a825a
219 d07e5894e3a306d71b0f2ef581db182a
220 a56c175db42303ea9eacdf9ec81dfa84
221 0acbee8b2d9b6cb8e3f874f3de2e2c3a
222 53d8f916805d32a7a60ee8ae3fc30242
223 7d5aaaa62c6b64c89444ca0ca10f83bc
224 6dfeba04b24f93c9d72a2196d611c37b
225 03e20dc107696aafb0a154a8dada0038
226 e16d8aa4cd14af086302a20aec38bf89
227 66b356131ae61e64a71e0932a9ce2eae
228 58e392fc002b5971f5914160d8a5917a
229 7e32217b4ec08bcb5016c57f40a56810
230 746fa1b3d7e14051dbc5bec7eac14943
231 d965b02f122ed3991f2abd2d27dfaefa
232 27223f9cebe9ef0dc1b337b8dc7e6e6e
233 c32cc09aab85316bdad5c65e4c271dce
234 41fbf0706d2fbc1ae849a9c786704646
235 e380fae944786c9e26e366a3b9af6100
236 ac32d16a06696e192a709b49b46d144d
237 6be76b8891d8f80d6d879c75f4069cb5
238 692e8cf8ee3c1ae6e5f72c02c1b18d90
239 60aa65f47d7fe907e45f0747c58bf798
240 200ef66a89fdf866b0eb5658d7199850
241 9c45b8217e290aa761596edad4e5ce05
242 115c68cb0f361a4a71eb0a127a9ac7fb
243 1d56a1ea925d05d0d0747f46b4b5f115
244 245b5db74b7824fda6496a537f7faac7
245 f31ac78bd1998be9bb54e49f1e0b3d0c
246 fc09aebffd346aad64587cdbf5c913fd
247 2bf07288b327dcb4693350fcce315ea7
248 afa7b1105c2246ffd94cd267874ce66b
249 c28bb82d43ca7cedacb106dbb85d9abe
250 6ea13a620fe107298ebbc898598b07c5
251 9d92fba392d6f1b9154d9e4da0024f60
252 dfaf7653470691e773ba7641b6adf80a
253 0662d48b67fd66c691332b84977c35c3
254 ea5f238e8300b595866ca38442c8afbc
255 6352af793bd1b583e43cb16c72401dd2
256 c87e4cbb36ef6a040327d6a3a324bf02

1 użytkowników online, w tym zalogowanych: 0, gości: 1