Łamanie xor

0

Witam
mam napisac programik, który odszyfruje wiadomosc juz zaszyfrowana przez xor (dla jasnosci mam prog: podaje klucz i mam plik.txt z dowolnym tekstem program poprzez operacje xor szyfruje mi ten plik przy pomocy klucza) Problem jest w tym jak bez znajomosci klucza mozna odszyfrowac tekst.

za wszelka pomoc z góry dzieki (algorytm, opis, cokolwiek)

0

W sumie po jest kodowanie żeby bez klucza nie odszyfrować wiadomosci.
Może chodzi o deszyfrowanie metodą brute force?
Co dokładnie wiadomo o tym kluczu?

0

Ech, mastahy...

Najprościej:
P - plain text
C - cipher text
C = P xor Key

Atak z tekstem zaszyfrowanym:
Hmmm, One Time Pad nie do złamania :)
ale znając C1 i C2 z tym samym kluczem już lepiej -> http://www.ipsec.pl/leksykon/xor.php

Atak ze znanym tekstem jawnym (znamy parę P i C):
P xor C = Key

Atak z wybranym tekstem jawnym (możemy uzyskać C z P):
P xor Key = C => Key = P xor C

Atak z wybranym tekstem zaszyfrowanym (możemy uzyskać P z C):
C xor Key = P => Key = P xor C

[jeśli się gdzieś walnąłem to proszę poprawić...]

0

Kiedyś czytałem o metodzie, która polegała na liczeniu występowania poszczególnych znaków, po czym wybierało ten najczęstszy, xor'owało go ze spacją co dawało klucz, ALE przy założeniu, że spacja to najczęstszy znak w tekscie. Albo właśnie brutalnie, tzn. xor'ujesz ten plik używając klucza o wartości 1..255 i potem w wynikach szukasz spodziewanego fragmentu tekstu (np. jakiś wyraz). Jest wiele metod, bardziej lub mniej profesjonalnych.

0
Brak napisał(a)

Kiedyś czytałem o metodzie, która polegała na liczeniu występowania poszczególnych znaków, po czym wybierało ten najczęstszy, xor'owało go ze spacją co dawało klucz, ALE przy założeniu, że spacja to najczęstszy znak w tekscie. Albo właśnie brutalnie, tzn. xor'ujesz ten plik używając klucza o wartości 1..255 i potem w wynikach szukasz spodziewanego fragmentu tekstu (np. jakiś wyraz). Jest wiele metod, bardziej lub mniej profesjonalnych.

To jest atak z tekstem zaszyfrowanym. Tyle, że dla jedno znakowego klucza... Metoda częstościowa nie ma sensu dla OTP i sensownie zakodowanych danych. Atak brute-force też nie ma większego sensu dla xor, chyba, że mamy wiadomości C1,C2,itd. z tym samym kluczem albo krótki klucz (chociaż czy na pewno? ;) ). Dlaczego? Ano proszę złamać tekst zaszyfrowany xorem (OTP - klucz: 3 znaki) "ABC", znaleźć klucz i wiadomość jawną.
Czy wiadomość jawna to "TAK", "NIE", "ASS", itd. wszystkie kombinacje trzech liter :) A więc która jest poprawną jawną wiadomością?
Czy nadal XOR to taki prosty szyfr :D

Ale wracając do postu synka:
mając program szyfrujący/deszyfrujący używasz ataku z wybranym tekstem jawnym albo z wybranym tekstem zaszyfrowanym, aby poznać klucz. Zauważ też, że XOR jest odwracalny, także program szyfrujący, który posiadasz, jest także programem deszyfrującym :)

0

A jesli on ma tylko wiadomośc zaszyfrowaną?A program szyfrujący/deszyfrujący ma dopiero napisać?

0

Witam
Dla sprostowania jest tak: mam napisany programik ktory koduje mi jakis tekst i dekoduje oczywiscie przy uzyciu tego samego klucza ale chodzi mi o odszyfrowanie (zaszyfrowanego tekstu) bez znajomosci klucza (jest taka metoda jak koincydencja znaków) ale mam za mało informacji na ten temat a google przeszukane!

0

:D A jak bez klucza chcesz odszyfrować wiadomość? Złamanie szyfru polega na znalezieniu klucza, żeby odszyfrować wiadomość.

Czego tak naprawdę potrzebujesz? Informacji o koincydencji znaków czy gotowego programu do łamania z atakiem na szyfrogram oczywiście? Całkowita automatyzacja raczej nie jest możliwa, najwyżej wspomaganie części ataku (np. porównywanie części kryptogramu z innymi częściami, czy obliczenie częstości znaków, statystyk, itp.).

Ogólnie atak na xor tylko z tekstem zaszyfrowanym jest ciężki ale oczywiście brute-force na 8 znakowy klucz (256^8) też można sobie przeprowadzać w domku :).
Ze znanym tekstem jawnym to już bułka z masłem.

0

"...bez znajomości klucza..." chodziło mi o to że nie znam klucza a mam tekst zaszyfrowany xor'em, a czego potrzebuje to informacji może ktoś ma coś na temat tej metody z koincydencją znaków
Dzieki

ok zróbmy tak trochę łatwiej: znam długosc hasla (3 znaki ;-) ) i mam plik zakodowany. Program szuka hasła metodą brute-force dodatkowo zakładamy ze w tekscie użyte były standardowe znaki [A-Z][a-z]np[spacja , . ? ! ][0-9] Program sam powinien generowac sobie hasła i sprawdzac jakie znaki wychodza z tego zakodowanego tekstu po xorowaniu (wygenerowanym hasłem!) i np. jesli powyżej 30% stanowia jakies krzaczki to zakłada ze to nie to hasło i szuka nastepnego.

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