17-10-2021
Bine ai venit,
adresa ta IP asociata
este 3.236.239.91
ESI

Anunturi


  • 18 iun.: rezultatele finale

  • pentru orice tema de casa care presupune predarea unui material scris se vor adauga doua pagini la inceput; prima este pagina de garda care va contine titlul temei, numele studentului si adresa de email si anul curent, iar pagina a 2-a va contine enuntul temei;

  • printre cerintele preliminare ale disciplinei sunt cunoasterea notiunilor elementare de teoria probabilitatilor si teoria informatiei;

  • 19 feb. Nota := 35%Tema + 20%Colocviu_laborator + 45%Examen; Bonus = Participare_Curs [NEW]

  • 19 feb. Pentru studentii care colaboreaza cu mine la cercetare/dizertatie participarea la partea 2-a a cursului este obligatorie(vezi urmatorul anunt de mai jos).


  • Curs


    Seminar


    Laborator


    Proiect de Dizertatie


    Teoria Numerelor, Algebra Abstracta, Statistica si Teoria Informatiei


    Def: Daca a, b intregi, spunem ca a este congruent cu b modulo n,scris a ≡ b (mod n) daca n divide (a-b)
    Proprietati: pentru orice a, a 1, b, b 1 ∈ Z:

    Proprietati ale aritmeticii modulare(I): daca a = b mod n si c = d mod n, atunci:


    Proprietati ale aritmeticii modulare(II) fie numerele intregi x, y, n ≠ 0 cu c.m.m.d.c(y, n) = 1 atunci:

    Teorema chineza a resturilor (CRT): daca intregii n1,n2,...,nk sunt relativ primi 2 cate 2, atunci sistemul de congruente:

    { x a1 mod   n1 x a2 mod  n2 ... x ak mod  nk    are solutie x unica calculata modulo n= n1*n2*...*nk.
    NOTA: determinarea solutiei unice se efectueaza cu ajutorul algoritmului lui Gauss.



    Def:se numeste grup multiplicativ peste Zn, si se noteaza: Zn* = { a ∈Zn | c.m.m.d.c(a, n) = 1}

    Def: pentru n ∈ N si n ≥ 1, functia Euler, notata φ(n), reprezinta numarul de intregi k cu 0 ≤ k < n si c.m.m.d.c(k, n) = 1.
    Daca φ(n) este functia Euler, atunci:

    i) φ(1) = 1;
    ii) daca c.m.m.d.c (m, n) = 1, atunci φ(m*n) = φ(m)*φ(n); (φ - omomorfica)
    iii) daca n = p1e1 p2e2 ... pkek este descompunerea in factori primi a lui n, atunci φ(n) = n ( 1 - 1 p1 ) ( 1 - 1 p2 ) ... ( 1 - 1 pk )

    Def: Daca exista un element α ∈ G-grup ciclic, astfel incat ∀ b ∈ G, ∃ i ∈ Z astfel incat b = α i mod p atunci α se mai numeste generator (radacina primitiva) al grupului.

    Def: ordinul unui grup este definit de numarul de elemente ale grupului.

    Def: ordinul unui element a ∈ G-grup, este definit de cel mai mic intreg, pozitiv t astfel incat at = 1. Daca nu exista atunci ord(a)=∞.

    Teorema lui Fermat daca p - prim, atunci ap-1 ≡ 1 (mod p).
    NOTA: se mai numeste mica teorema a lui Fermat

    Teorema lui Euler daca a ∈ Zn*, atunci  aφ(n) ≡ 1 (mod n).


    Omomorfism de grup
    Fie doua grupuri (G, +) si (H, #). O functie f(.) : G → H este omomorfica daca: ∀ a,b ∈ G, f(a+b) = f(a)#f(b)
    Daca exista o functie omomorfica, atunci G si H au aceasi structura.


    Izomorfism de grup
    Daca functia f(.) este omomorfica si bijectiva atunci este izomorfica.
    Daca exista o functie izomorfica, atunci G si H sunt echivalente (nu egale).



    Paradoxul "Birthday"
    Fie o functie surjectiva oarecare f : X → Y, unde |Y| = n elemente si o constanta 0 < ε < 1, se cere sa se determine un numar k, astfel incat daca sunt selectate k valori distincte x1x2, ..., xk ∈ X, Prob[f( xi ) = f( xj )] ≥ ε, cu i ≠ j. S-a constatat (si demonstrat) chiar in cazul in care ε este mare (foarte aproape de 1), k ramane proportional cu   n . In general, pentru a determina o coliziune cu probabilitatea de aprox 0.5 sunt necesare 1.1774* n incercari.
    De exemplu, intr-o clasa cu 23 de studenti, probabilitatea ca doi dintre ei sa aiba aceasi zi de nastere (din cele 365 ale unui an) este aproximativ 0.5. Daca sunt 30 de studenti probabilitatea creste la aproximativ 0.7 (de unde si denumirea).
    Aplicatii ale paradoxului Birthday: atacul Birthday (tot din categoria FB) pentru determinarea coliziunilor unei functii hash, evaluarea proprietatii de difuzie a unei functii hash (o fct. hash ideala asociaza in mod echiprobabil oricare dintre valorile posibile de iesire atunci cand valorile de intrare sunt alese dupa o distributie uniform aleatoare);

    Legea numerelor mari
    Fie X1, X2, ..., Xn o secventa de variabile aleatoare i.i.d cu valoarea asteptata E(X1) = E(X2) = ... = E(Xn) = μ. Media aritmetica a unui esantion (en. sample) dintre variabile converge catre μ atunci cand dimensiunea esantionului n → ∞

    Problema celor 2 maestri sahisti:
    Un sahist amator angajat simultan in doua jocuri cu 2 maestri diferiti, ce joaca cu negru intr-un joc, respectiv cu alb in celalalt si copiaza miscarile maestrilor in celalalt joc, va avea urmatoarele rezultate: fie remiza in ambele jocuri, fie un castig si o pierdere in cele doua jocuri.

    picoManual de Scapy (cheatsheet)


    - Scapy este o extensie a limbajului python care faciliteaza(prin abstractizare) interactiunea cu subsistemul local de comunicatie Internet;
    - biblioteca Scapy include atat functii pentru generarea si interceptarea cu suport pentru filtrarea (BPF)de trafic cat si functii orientate pe tranzactie (asociaza mesajele cere-raspuns), functii specializate pentru diagnoza retelei;
    - dezvoltarea programelor cu biblioteca de functii Scapy se poate face in doua moduri: interactiv sub interpretorul cu acelasi nume sau script prin importarea bibliotecii in programul python (ex. from scapy.all import *);
    - in modul script, specificarea interpretorului python se face adaugand in prima linie: #!/usr/bin/env python . Lansarea in executie a scriptului din shell se poate face invocand python <scriptname.py> [args] sau
    atribuind permisiuni de executie fisierului <scriptname>.py apoi ^CR
    - in continuare, pentru prezentare a fost folosit interpretorul Scapy;

    Util de memorat

    Atunci cand este necesara clarificarea unor detalii urmatoarele comenzi pot fi de un real folos:
       • ptr. listarea tuturor protocoalelor suportate de Scapy:
    >>>ls()

       • ptr. identificarea membrilor unei clase si sintaxa:
    >>>ls(nume_proto)

       • ptr. identificarea comenzilor disponibile:
    >>>lsc()

       • ptr. sintaxa unei comenzi:
    >>>help(nume_cmd)

    Obiecte Scapy

    N.b. pentru fiecare antet TCP/IP a fost definita o clasa;de ex. Ether(), ARP(), IP(), ICMP(), UDP(), TCP(), s.a.;

    Pentru a lista toti membrii unei clase impreuna cu valorile lor implicite, se va folosi metoda supraincarcata "show()":
    >>>IP.show()
    sau echivalent
    >>>proto = IP()
    >>>proto.show()

    N.b. cu operatorul "/" putem construi o "ruta" in stiva TCP/IP;

    >>>ip = IP(dst="141.85.43.*")
    >>>tcp = TCP(sport=RandShort(), dport=(1024, 1500), flags="SRAFPU")/"Hello World!"
    >>>(Dot1Q(vlan=1)/Dot1Q(vlan=2)/ip/tcp).show()

    Functii de transmisie/receptionare

       • ptr. transmisia pachetelor pe socket RAW de nivel 3, respectiv de nivel 2:
    >>>send(IP(dst="141.85.43.1-100")/tcp [, verbose])
    >>>sendp(Ether(dst="00:19:90:ae:b5:c1", ...)/ip/TCP(dport=[80,21])/DNS(rd=1, DNSQR(qtype="NS", qname="k.ro")) )

       • functii orientate pe tranzactie pe socket RAW de nivel 3, respectiv de nivel 2, si variantele lor iterative:
    >>>[answered, unanswered =] sr(ip/tcp [, retry=..., timeout=..., inter=RandNum(20,80)])
    >>>[answered, unanswered =] srloop(ip/tcp [, count=...])
    >>>[answered, unanswered =] srp(Ether(...)/ip/tcp)
    >>>[answered, unanswered =] srploop(Ether(...)/ip/tcp)
    #get last in the list:
    >>>answered, unanswered=_

    Functia pt. captura de trafic

    >>>pkt = sniffer([iface=eth0, filter="tcp", count=0, ..., prn=callback])
    >>>print len(pkt)    #no. of captured packets
    >>>pkt[5:20].summary()
    >>>pkt[6].dst
    >>>pkt[6][Ether]
    >>>pkt[7][TCP].sprintf("%flags%")
    >>>pkt[7].sprintf("%TCP.dport%\t%TCP.flags%")


    Suport pentru implementarea automatelor

    documentatia cu exemplu

    Alte functii

       • verifica daca este pachet ICMP cu functia: pkt.haslayer(ICMP)
       • pentru a procesa payload-ul unui pachet de la nivelul TCP: pkt[TCP].payload()
       • conversia adr.IP->adr.MAC: getmacbyIP(...)
       • generarea de pachete UDP cu campuri aleatoare: fuzz(UDP())    • (non-scapy)conversia adr.IP->nume de domeniu: gethostbyaddr(...)
       • (non-scapy)conversia din format intreg -> format ASCII si concatenare siruri: str(response[TCP].seq) + ":\tseq number"
       • (non-scapy)generarea unui numar aleator intr-un interval dat: randint(1, 65535)
       • (non-scapy)generarea unui MAC aleator: randMAC()
       • (non-scapy)generarea unei adrese IP aleatoare: randIP()

    ... si parasirea interpretorului scapy cu comanda

    >>>quit()



    Powered by Debian Linux

    Info Linux
    Kernel.Org
    Browse the code
    TLDP
    Debian Home
    Debian Help
    Linux Online
    LinuxQuestions.org
    Linux Journal
    Linux Gazette
    Gnome Desktop

    Linux Guides
    Bash Guide for Beginners
    Bash Programming Introduction
    Advanced Bash Scripting