Witam, czy moglbym prosic o pomoc w algorytmie łamania szyfru xor?? Zalozenie jest takie, ze znamy jedynie dlugosc klucza i mamy tekst zaszyfrowany. klucz jest nie znany!! Prosze nie pisac, ze odszyfrowanie xora to to samo co zaszyfrowanie, ale chodzi o zlamanie szyfru bez znajomosci klucza! Dzieki za pomoc z gory
Ale chyba masz tekst niezaszyfrowany?
tekst_niezaszyfrowany ^ klucz = tekst_zaszyfrowany
tekst_niezaszyfrwaony ^ tekst_zaszyfrowany = klucz
Jak nie masz tekstu niezaszyfrowanego, to sorry. Nic nie zrobisz.
Da się zrobić, przy odpowiednio długim tekscie można spróbować chociażby analizy statystycznej - xor można sprowadzić do prostego podstawienia. Jeżeli o dane binarne chodzi to można posłużyć się informacjami o formacie aby fragmenty klucza odtworzyć, mając fragmenty można postarać się o odtworzenie całości. Metod jest baardzo dużo, xor jest na tle prosty, że można go sprowadzić z powodzeniem do zwykłej permutacji i jak permutację łamać.
jeżeli klucz ma n bajtów to tekst zaszyfrowany trzeba traktować jak n jednobajtowych przeplatanych kanałów. tzn. jeśli klucz ma 3 bajty to tekst abcdefghijkl trzeba rozłożyć na ciągi adgj, befk, cfgl i na tych ciągach zrobić analizę statystczną. pomocne mogą być takie dane jak:
- jakie jest prawdopodobieństwo poszczególnych znaków w tekście źródłowym (do analizy statystycznej) - zazwyczaj największe prawdopodobieństwo ma spacja i literki e i t. trzeba posprawdzać wszystkie 256 wartości danej pozycji klucza i wybrać tą dla której suma częsttliwości tych znaków jest największa,
- jakie znaki nie mogą wystąpić w tekście niezaszyfrowanym - dzięki temu wiemy jakie wartości nie mogą wystąpić w kluczu,
Moze jakis algorytm??
Nie istnieje ogólny algorytm łamania algorytmów szyfrujących. Są różne metody, masz niektóre wspomniane wyżej. 'Jakiś'... bardzo zabawne, kryptoanaliza zna kilkadziesiąt metod postępowania z podobnymi algorytmami, wybór konkretnej zależy od tego, jakie informacje posiadamy i jakie algo atakujemy.
Podaj konkrety, może się coś wymyśli, atak statystyczny nie sprawdzi się przy odpowiednio długim kluczu, atak tekstem jawnym juz prędzej.
PS. @darkjames - co za sztuka lamac xora z tekstem zaszyfrowanym i jawnym na tacy? ;)
Możesz jeszcze spróbować zxorować szyfrogram sam ze sobą przesunięty o długość klucza, wtedy w wyniku otrzymasz to samo, co gdybyś zxorował tak samo przesunięty tekst jawny ze soba, to powinno być już bardzo łatwe do odczytania.
// oj, raczej wiele to nie daje... może to dać co najwyżej podstawy do dalszej analizy. (dop. deus)
A masz pewność, że nie ma modyfikacji typu:
for (int i=0; i<zrodlo.length; i++)
wynik[i] = zrodlo[i] klucz[i%klucz.length] i;
? [diabel]
chodzi oczywiscie o te koncowe ^i lub podobne mutacje - taka banalna zmiana i dlugosc klucza psu na bude ;]