Pokaż wyniki 1 do 7 z 7

Temat: Atak urodzinowy - perl

  1. #1
    Zarejestrowany
    Mar 2009
    Postów
    2

    Domyślnie Atak urodzinowy - perl

    Witam.
    Muszę stworzyć dwa dokumenty, których funkcje skrótu (liczba 3-cyfrowa, realizowana przez dzielenie modulo przez 999) będą takie same. Oczywiście treść dokumentów musi być różna. Do tego trzeba wykorzystać paradoks urodzinowy. Ktoś wie jak się za to zabrać?
    Pozdrawiam

  2. #2
    Zarejestrowany
    Jan 2009
    Postów
    216

    Domyślnie

    mozna jasniej?

  3. #3
    Zarejestrowany
    Mar 2009
    Postów
    2

    Domyślnie

    Mam jakąśtam funkcję haszującą. Mam jej dać dwa różne dokumenty, a ona ma mi dać takie same funkcje skrótu. Np. daję "ala ma kota"(pierwszy dokument) i "ola ma psa"(drugi dokument) i dostaję 455 w obu przypadkach (to jest tzw kolizja). Funkcja haszująca bierze każdy znak z dokumentu, zamienia go na liczbę typu int, sumuje liczby i zwraca wynik dzielenia modulo sumy przez 999. Moje zadanie polega na stworzeniu takich dokumentów wykorzystując paradoks urodzinowy (czyli, w tym przypadku, wśród 38 dokumentów szansa, że dwa z nich będą miały takie same funkcje skrótu wynosi nieco ponad 50%). Na marginesie dodam, że mam to napisać w perlu. Mam nadzieję, że było w miarę jasno

  4. #4
    Avatar GSG-9
    GSG-9 jest offline Shapeshifter
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    Cytat Napisał davis166 Zobacz post
    że mam to napisać w perlu.
    w perlu powiadasz znajdz odpowiedni dzial, zacznij cos, z checia pomozemy w miare mozliwosci
    War, war never changes.

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

    Domyślnie

    Temat ciekawy, postaram sie pokombinowac, tym bardziej ze Perl to moje ulubione narzedzie...
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6
    Zarejestrowany
    Oct 2009
    Postów
    8

    Domyślnie

    Witam!
    Chciałbym się przywitać,pierwszy post i z góry przeprosić - wiem że odkopuję temat z przed 7 miesięcy,ale według mnie jest na tyle ciekawy aby go odkopać.
    Zakładamy że mamy funkcję hashującą,która w moim wypadku dla jednej linijki wygląda tak(dla całego pliku wystarczyłoby zliczyć wszystkie znaki):
    Kod:
    sub hash {
    
    $xd = shift;
    	for($i = 0;$i < length($xd);$i++)
    	{
    		$plik += ord(substr $xd,$i,1);
    	}
    return $plik % 999;
    
    }
    Hm,wygląda nadzwyczaj mądrze,jednakże ma jedną podstawową wadę - dzielenie modulo.Co z nim?Jak wiemy,dzielenie modulo to reszta z dzielenia,ok.Nawet gdybyśmy mieli całą biblię,dającą sumę znaków 09582095382093512414,a dzielone modulo wychodziłoby 24,dzielone modulo znów dawałoby...24.
    Idźmy więc tym tropem,może 24 jedynki dawałby radę?
    Niestety,funkcja "ord" dla "1" daje 43,więc zamiast sumy 24*1=24 mielibyśmy 1032,co mod 999 daje 33(dosyć mylące).
    Z pomocą i odsieczą przybyła funkcja chr(),której siostra ord() da w końcu 1.
    Więc jak wyglądałby program generujący plik,który dla powyższej funkcji generowałby określony hash?
    Kod:
    die "brak kodu do odhaszowania" unless($ARGV[0]);
    open $fh,">urodziny.txt" or die "Nie ma takiego pliku";
    use warnings;
    $hash = chr(1) x $ARGV[0];
    if($ARGV[0] == hash($hash))
    {
    print $fh $hash;
    print "atak urodzinowy się udał się,jest w pliku urodziny.txt";
    exit();
    }
    (Wybaczcie,że nie mam zwyczaju pisania tych komentarzy na początku...ale korzystam z ActiveState,więc jak dla mnie jest to zbędne).

    Tak,być może nie jest to atak urodzinowy,ale hasze mamy takie same,więc to tak bardziej haksorsko,heh.
    Pozdrawiam i dziękuję za uwagę,z chęcią posłucham opinii i ew.błędów. ;x

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

    Domyślnie

    Chwile zajelo mi polapanie sie o co chodzi w poscie ale na koniec wszystko staje sie jasne :-) Fajny przyklad no i witamy na forum!
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. [Perl] Kurs Perl - cz.1 - wprowadzenie i podstawy
    By TQM in forum Perl/Python/TCL/Prolog
    Odpowiedzi: 22
    Autor: 10-27-2014, 00:50
  2. Odpowiedzi: 18
    Autor: 07-14-2009, 11:55
  3. Atak DDos
    By xaxes in forum Security
    Odpowiedzi: 2
    Autor: 09-28-2008, 14:32
  4. Odpowiedzi: 31
    Autor: 05-20-2008, 17:01
  5. Atak PTW.
    By k4m3leon in forum Tutoriale
    Odpowiedzi: 2
    Autor: 03-19-2008, 09:24

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52