Pokaż wyniki 1 do 7 z 7

Temat: XOR kryptoanaliza

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie XOR kryptoanaliza

    Cześć mam taki problem,
    algorytm szyfrowania XOR wygląda następująco:


    var dane= 47;
    var klucz = "abc";
    var szyfr ="";
    var i =0


    for(i =0;i<klucz.length;i++){

    dane = dane ^ klucz.charCodeAt(i);
    }
    trace("szyfrogram: " +dane); //wynik 79


    żeby odszyfrować należy:

    dane = 79;

    for(i =0;i<klucz.length;i++){

    dane = dane ^ klucz.charCodeAt(i);
    }
    trace("dane: " +dane); //wynik 47



    Chodzi o to, czy da się mając daną orginalną i szyfrogram, znaleźć klucz ?
    W tym przypadku: dana oryginalna: 47, szyfrogram: 79. Klucz(abc) chcę znaleźć na podstawie tych danych. Da sie to zrobić ?

  2. #2
    Zarejestrowany
    Mar 2008
    Skąd
    tu i teraz
    Postów
    28

    Domyślnie

    Napewno da się to zrobić metodą "brute force", powolij, ale skutecznie.

  3. #3
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    text_jawny xor klucz = kryptogram
    kryptogram xor klucz = text_jawny
    kryptogram xor text_jawny = klucz

    ... podstawowe zasady XOR'owania
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  4. #4

    Domyślnie

    Cytat Napisał tqm Zobacz post
    text_jawny xor klucz = kryptogram
    kryptogram xor klucz = text_jawny
    kryptogram xor text_jawny = klucz

    ... podstawowe zasady XOR'owania
    Prawie zgadłeś.. tylko tu jest taki mały problem to nie jest taki standardowy XOR, bo tu każda dana np. liczba jest XOROWANA z kluczem.
    Popatrz w mój kod...

    Brute force... no tak chyba tylko to pozostaje... ale myślałem, że jest jakaś prostsza metoda.

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Talking

    Racja - nie spojrzalem dokladnie w kod... W algorytmie 1 znak XORujesz N razy z roznym kluczem gdzien N to dlugosc hasla... wiec dekodowanie mozna odwrocic chyba tylko brute force - tak jak szukanie wspolnego dzielnika.
    Mozna uproscic i szukac sekwencyjnie dla rosnacej dlugosci klucza - przy XOR istnieje jak mi sie wydaje (choc nie sprawdzalem i nie wiem tego na pewno) spora szansa na kolizje, czyli na przyklad:

    Kod:
    P ^ "abc" = C
    C ^ "abc" = P       # co jest oczywiste
    P ^ "abc" == P ^ "\0x12\0x135"     # istnieje taka mozliwosc
    Wtedy klucz znaleziony przez brute-force wcale nie musi byc tym samym co klucz uzyty do zakodowania materialu. Wazne aby produkt xor'owania byl ten sam...
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6

    Domyślnie

    Cytat Napisał tqm Zobacz post
    Racja - nie spojrzalem dokladnie w kod... W algorytmie 1 znak XORujesz N razy z roznym kluczem gdzien N to dlugosc hasla... wiec dekodowanie mozna odwrocic chyba tylko brute force - tak jak szukanie wspolnego dzielnika.
    Mozna uproscic i szukac sekwencyjnie dla rosnacej dlugosci klucza - przy XOR istnieje jak mi sie wydaje (choc nie sprawdzalem i nie wiem tego na pewno) spora szansa na kolizje, czyli na przyklad:

    Kod:
    P ^ "abc" = C
    C ^ "abc" = P       # co jest oczywiste
    P ^ "abc" == P ^ "\0x12\0x135"     # istnieje taka mozliwosc
    Wtedy klucz znaleziony przez brute-force wcale nie musi byc tym samym co klucz uzyty do zakodowania materialu. Wazne aby produkt xor'owania byl ten sam...
    Masz rację, też natrafię na ten problem, że znalazłem klucz, który pasował ale nie był to prawdziwy klucz i sie zastanawiam czy możliwe jest, że można dopasować kilka kluczy, które będą poprawnie odszyfrowały wszystkie dane.

Podobne wątki

  1. Odpowiedzi: 12
    Autor: 02-02-2008, 15:48

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj