Jak złamać szyfr fbi
Trafiłem dziś na stronkę fbi gdzie można spróbować swoich sił w kryptografii. I udało mi się pokonać ten ich „szyfr” :)
Zaczynamy mając takie coś:
vfwtdlcswv. yd
nslmijfwejfd gsw sl
nijnqblm fobv ejfdvf
dlnigtfbsl. kbvbf
yyy.ahb.msk/nscdc.ofz
fs edf wv qlsy sa
gswi vwnndvv.
I za moment pokażę wszystkim jak to najłatwiej rozwiązać, bez żadnych super narzędzi. Zwykłym notatnikiem :)
Po pierwsze, ciąg yyy.ahb.msk/nscdc.ofz wygląda jak adres strony. 3 litery, kropka, 3 litery, kropka, 3 litery. Pierwsze 3 litery są takie same (choć w kryptografii to nie jest żadna reguła, aż się dziwię że to zadziałało). Cóż to może być jeśli nie www.fbi.gov?
Najpierw musimy nieco przygotować plik źródłowy. Wklej go do notatnika i każdą literę poprzedź jakimś znakiem, na przykład wykrzyknikiem. Będzie to niezbędne przy zamianach, żeby nie popsuć sobie źródła.
Mamy więc
!v!f!w!t!d!l!c!s!w!v. !y!d
!n!s!l!m!i!j!f!w!e!j!f!d !g!s!w !s!l
!n!i!j!n!q!b!l!m !f!o!b!v !e!j!f!d!v!f
!d!l!n!i!g!t!f!b!s!l. !k!b!v!b!f
!y!y!y.!a!h!b.!m!s!k/!n!s!c!d!c.!o!f!z
!f!s !e!d!f !w!v !q!l!s!y !s!a
!g!s!w!i !v!w!n!n!d!v!v.
Teraz robimy zamianę – wszystkie !y należy zastąpić w. Co dostajemy? Ano to:
!v!f!w!t!d!l!c!s!w!v. w!d
!n!s!l!m!i!j!f!w!e!j!f!d !g!s!w !s!l
!n!i!j!n!q!b!l!m !f!o!b!v !e!j!f!d!v!f
!d!l!n!i!g!t!f!b!s!l. !k!b!v!b!f
www.!a!h!b.!m!s!k/!n!s!c!d!c.!o!f!z
!f!s !e!d!f !w!v !q!l!sw !s!a
!g!s!w!i !v!w!n!n!d!v!v.
Można zauważyć że jeszcze kilka liter się zmieniło – to dobrze. Możemy przyjąć, że wszystkie litery przy których nie ma wykrzyknika są już „prawdziwe”.
Podobnie należy zamienić !a, !h, !b, !m, !s, !k by powstał tam adres www.fbi.gov.
!v!f!w!t!d!l!co!w!v. w!d
!no!lg!i!j!f!w!e!j!f!d !go!w o!l
!n!i!j!n!qi!lg !f!oi!v !e!j!f!d!v!f
!d!l!n!i!g!t!fio!l. vi!vi!f
www.fbi.gov/!no!c!d!c.!o!f!z
!fo !e!d!f !w!v !q!low of
!go!w!i !v!w!n!n!d!v!v.
Co dalej widzimy? Po slashu przy adresie jest jakiś plik. Możemy chyba przyjąć że będzie tam „htm”, prawda? A więc otrzymujemy
!vt!w!t!d!l!co!w!v. w!d
!no!lg!i!jt!w!e!jt!d !go!w o!l
!n!i!j!n!qi!lg thi!v !e!jt!d!vt
!d!l!n!i!g!ttio!l. vi!vit
www.fbi.gov/!no!c!d!c.htm
to !e!dt !w!v !q!low of
!go!w!i !v!w!n!n!d!v!v.
Coraz lepiej, trzeba przyznać. Teraz proponuję sprawdzić angielski słownik w poszukiwaniu odpowiedniego ciągu liter, słowo !no!lg!i!jt!w!e!jt!d jest długie i ma już odkrytych kilka liter. Przy moim prostym słowniku daje to:
# grep -e '.o.g..t...t.' Wordlist.txt
conglutinate
congratulate
congratulatory
noncongratulatory
precongratulate
precongratulation
recongratulate
recongratulation
unconglutinated
uncongratulate
uncongratulated
uncongratulating
Oczywiście słowo ma określoną ilość liter – od razu odrzucamy te które mają inną długość niż 12:
conglutinate
congratulate
Zostają dwa… myślę że to drugie :P Zamieniamy więc!
!vtu!ten!cou!v. we
congratulate !gou on
crac!qing thi!v late!vt
encr!g!ttion. vi!vit
www.fbi.gov/co!ce!c.htm
to let u!v !qnow of
!gour !vucce!v!v.
Już teraz, gołym okiem można poznać co należy pozamieniać na co. Cały szyfr się idealnie złożył i ułożył. Gratulacje! Właśnie złamałeś szyfr FBI, teraz jesteś poszukiwanym terrorystą ;)
Proste, prawda? Jeśli ktoś chce trudny szyfr, to niech lepiej zobaczy "co ja przygotowałem":http://crypto.nomicon.pl/ :)
Ciekawe…od kiedy to „grep” jako „notatnik” robi?
Możesz ręcznie wertować słownik, a takie czepianie się słówek jest złe :P
puppy: „czepianie się słówek jest złe”... szczególnie w kryptografii :-D
Szkoda, że tą metodą nie rozszyfrujesz nie tylko bardziej skomplikowanego szyfru, ale nawet dłuższej notki zaszyfrowanej w ten sposób.
pfff, szyfr polegajacy na podmianie, po FBI spodziewalem sie czegos wiecej. rownie dobrze mogles sie podniecac, ze zlamales szyfr cezara :|
Grzegorz: Niezależnie jak długa będzie notka, nie będzie to wymagało więcej kombinacji niż ilość występujących liter. Robimy zamianę na całym tekście. Jeśli ktoś stosuję tę metodę to tak samo dobrze będzie działała przy krótkich i długich tekstach. Oczywiście tych wykrzykników ręcznie nie wstawiamy, tylko z automatu.
D4rky: Skoro taki jesteś kozak, to zobacz ostatni akapit, może tobie się uda choć jedno zadanie rozwiązać :) oh czekaj, przecież już coś o nich mówiłeś, jak to było? Potrafiłbyś tylko bejsbolem złamać te szyfry? :)
(a poza tym: polecam detektor ironii, do kupienia na allegro)
Przy dłuższych notkach może być nawet łatwiej ponieważ można skorzystać z częstości występowania danej litery i z zaimków albo,lub,ponieważ które występują często i program można by nauczyć nawet tego bo może on mieć słownik z odmianami słowa tylko że przy nazwach własnych soft który sprawdza czy może być dane słowo i czy będzie gdzie indziej pasowało.
„Gratuluję”
Dla lepszej czytelności proponowałbym, zgodnie z kodeksem pracy kryptoanalityka, stosować standardowe przedstawienie alfabetu jawnego i tajnego, odpowiednio jako małych i dużych liter ;-) Wykrzykniki IMHO strasznie psują jasność ćwiczenia.
Prawie, jak szyfr Cezara :P Ale jako zachęta dla początkujących może być – sukces motywuje ;]
„Po slashu przy adresie jest jakiś plik. Możemy chyba przyjąć że będzie tam „htm”, prawda?”
Nie, możnaby równie dobrze przyjąć cgi, lub png/jpg/gif :P
A tak, to oczywiste. Tyle że patrzyłem wcześniej (ty pewnie też jako potencjalny łamacz ;)) na ich stronę, większośc linków to .htm. Zatem jako pierwsze sprawdziliśmy wersje z .htm. I zadziałało!