Tuesday, November 29, 2005

 

Memento teoria numerelor

Introducere in teoria numerelor, Edwin Clark

Monday, November 28, 2005

 

Functii cu trapa


Friday, November 25, 2005

 

Functii cu sens unic


 

Secvente pseudoaleatoare

Generator bit pseudo-aleator (GBPSA)
Este un algoritm determinist care porneste de la o secventa binara aleatoare de lungime k, numita cheie de generare, si produce o secventa binara de lungime l>>k, numita secventa de biti pseudo-aleatori
Un GBPSA este un program determinist de timp polinomial G:{0, 1}k → {0, 1}l care satisface:
  • l > k
  • distributia de probabilitate Gl se obtine din distributia normala Uk astfel: y=G(x), y ∈ Gl, x ∈ Uk
Teste in timp polinomial
Un generator bit pseudo-aleator trece toate testele statistice in timp polinomal daca un algoritm de timp polinomial nu poate face distinctia intre o secventa de la iesirea generatorului de bit pseudo-aleator si o secventa aleatoare de bit cu o probabilitate semnificativ mai mare ca 1/2
Fie Xn si Yn doua distributii de probabilitate pe {0, 1}n. {Xn} este indistinctibila in timp polinomial de {Yn} daca ∀ MTP, A, ∀ polinom Q, ∃ n>n0 ai | Prt∈Xn (A(t)=1) - Prt∈Yn (A(t)=1) | < 1/Q(n)
Pentru distributia uniforma de probabilitate Un, ∀ a ∈ {0, 1}n, Prx∈Un [x=a] = 1/ 2n
Testul bitului urmator
Un generator bit pseudo-aleator trece testul bitului urmator daca nu exista un algoritm de timp polinomial care sa poata prezice bitul "l+1" cu o probabilitate semnificativ mai mare ca 1/2, in baza primilor "l" biti ai unei secventa de la iesirea generatorului de bit pseudo-aleator
Un generator de bit pseudo-laeator trece testul bitului urmator ⇔ generatorul de bit pseudo-aleator trece testele de timp polinomial
Generator sigur criptografic de bit pseudo-aleator
Este un GBPSA care trece testul bitului urmator, posibil in niste ipoteze matematice plauzibile, dar nedemonstrate

Thursday, November 17, 2005

 

Clase de complexitate


Wednesday, November 16, 2005

 

Modele calcul - automate

Clasificare
Clasificarea ChomskyGramaticaLimbajulAutomatul minimalForma normala
tip 0fara restrictierecursiv enumerabilMTN-
-fara restrictierecursivdecidor-
tip 1dependenta de contextdependent de contextmarginit liniarKURODA
tip 2independenta de contextindependent de contextpush downCHOMSKY, GREIBACH
tip 3regulararegularfinit-
Gramatici si limbaje
  • O multime finita si nevida, Σ, se numeste alfabet iar elementele se numesc simboluri
  • O succesiune de simboluri se numeste secventa si o submultime ordonata a unei secvente se numeste subsecventa
  • Numarul de simboluri care formeaza o secventa s se numeste lungimea secventei si se noteaza |s|
  • Multimea secventelor peste un alfabet Σ se noteaza Σ*
  • *, +) este monoid unde "+" este concatenarea si elementul neutru este secventa vida ε
  • O submultime a lui Σ* se numeste limbaj iar elementele limbajului se numesc cuvinte
  • Se numeste gramatica G un cvadruplu (N, Σ, P, s) unde
    • N este un alfabet de simboluri neterminale
    • Σ este un alfabet de simboluri terminale, N si Σ sunt disjuncte
    • P este o multime finita de productii, P⊂ (N∪Σ)*N(N∪Σ)* X (N∪Σ)*
    • s este simbolul initial, s∈N
  • Pe multimea (N∪Σ)* se definesc relatiile binare
    • derivare directa, ⇒
    • k derivare, ⇒k
      a ⇒k b daca ∃ c1, c2, ..., ck-1 ∈ (N∪Σ)* ai a ⇒ c1 ⇒ c2 ... ck-1 ⇒ b
    • + derivare, ⇒+
      a ⇒+ b daca ∃k ai a ⇒k b
    • * derivare, ⇒*
      a ⇒* b daca a ⇒ b sau a ⇒+ b
  • Limbajul L(G) generat de o gramatica G=(N, Σ, P, s) este {v/ v∈ Σ*, s ⇒* v}
  • Clasificarea Chomsky
    • Gramaticile de tip 0 nu au nici o restrictie referitoare la forma productiilor
    • Gramaticile de tip 1, gramatici dependente de context, au productii de forma αAβ → αγβ unde αβγ ∈ (N∪Σ)* si A ∈ N iar daca productia s → ε ∈ G atunci s nu apare in mebrul drept al nici unei productii (monotone, necontractante)
    • Gramaticile de tip 2, gramatici independente de context, au productii de forma A → α unde A ∈ N si α ∈ (N∪Σ)*
    • Gramaticile de tip 3, gramatici regulare, au productii de forma A → aB sau A → b unde A, B ∈ N si a, b ∈ Σ
Automate
  • Automate finite
    • Automat finit determinist
      Un cvintuplu AFD=(Q, Σ, δ, q0, F) unde:
      • Q este o multime finita nevida; elementele sale se numesc stari
      • Σ este un alfabet de intrare
      • δ este functia de tranzitie, δ : Q X Σ → Q
      • q0 este starea initiala, q0 ∈ Q
      • F este multimea starilor finale, F ⊆ Q
      Daca δ este surjectiva, AFD este total definit
    • Automat finit nedeterminist
      Un cvintuplu AFN=(Q, Σ, δ, q0, F) unde:
      • Q este o multime finita nevida; elementele sale se numesc stari
      • Σ este un alfabet de intrare
      • δ este functia de tranzitie, δ : Q X Σ → P(Q)
      • q0 este starea initiala, q0 ∈ Q
      • F este multimea starilor finale, F ⊆ Q
    • Tranzitii
      Multimea configuratiilor unui automat este Q X Σ. Pe multimea configuratiilor se definesc urmatoarele relatii binare
      • tranzitia directa, →
        (p, as) → (q, v) ⇔ q = δ(p,a) unde p, q ∈ Q, a ∈ Σ, s ∈ Σ*
      • k tranzitia, →k
        (p, s1) → (q, s2) ⇔ de la configuratia (p, s1) se ajunge la configuratia (q, s2) prin k tranzitii directe
      • + tranzitia, →+
        (p, s1) →+ (q, s2) ⇔ ∃ k > 0 ai (p, s1) →k (q, s2)
      • * tranzitia, →*
        (p, s1) →* (q, s2) ⇔ p=q, s1=s2 sau (p, s1) →+ (q, s2)
    • Limbaj acceptat
      Limbajul acceptat de un automat finit AF = (Q, Σ, δ, q0, F) este L(AF) = {s / S ∈ Σ, (p, s) →* (q, ε), q ∈ F }
    • Automate echivalente
      • Doua AF sunt echivalente daca accepta acelasi limbaj
      • ∀ AFN, M1, ∃ AFD, M2 ai L(M1) = L(M2)
  • Automate push down
    Un septuplu APD=(Q, Σ, Γ, δ, q0, Z0, F) unde:
    • Q este o multime finita nevida; elementele sale se numesc stari
    • Σ este un alfabet de intrare
    • Γ este alfabetul memoriei stiva
    • δ este functia de tranzitie, δ : Q x ( Σ ∪ {ε} ) x Γ → P(Q x Γ*)
    • q0 este starea initiala, q0 ∈ Q
    • Z0 este simbolul de start al memoriei stiva
    • F este multimea starilor finale, F ⊆ Q
  • Masini Turing
    • Masina Turing determinista
      Un septuplu MTD=(Q, Σ, Γ, δ, q0, B, F) unde:
      • Q este o multime finita nevida; elementele sale se numesc stari
      • Σ este un alfabet de intrare, Σ ⊂ Γ - {B}
      • Γ este alfabetul benzii
      • δ este functia de tranzitie, δ : Q x Γ → Q x Γ x {miscareStanga, miscareDreapta}
      • q0 este starea initiala, q0 ∈ Q
      • B este simbolul spatiu, B ∈ Γ
      • F este multimea starilor finale, F ⊆ Q
    • Masina Turing nedeterminista
      Un septuplu MTN=(Q, Σ, Γ, δ, q0, B, F) unde:
      • Q este o multime finita nevida; elementele sale se numesc stari
      • Σ este un alfabet de intrare, Σ ⊂ Γ - {B}
      • Γ este alfabetul benzii
      • δ este functia de tranzitie, δ : Q x Γ → P( Q x Γ x {miscareStanga, miscareDreapta} )
      • q0 este starea initiala, q0 ∈ Q
      • B este simbolul spatiu, B ∈ Γ
      • F este multimea starilor finale, F ⊆ Q
    • Masina Turing probibilista
      MTP este o MTN pentru care selectia intre valorile functiei de tranzitie se face probabilistic

Tuesday, November 15, 2005

 

Secvente aleatoare

Generator de bit aleator
Dispozitiv sau algoritm care produce o secventa de cifre binare care sunt independente statistic si fara nici o preferinta pentru vreuna dintre cifre
Obs
Dispozitivele folosesc ca sursa de entropie fenomenele fizice. Generarea print-un algoritm presupune exploatarea unui proces specific platformei de calcul. Este indicata utilizarea mai multor surse naturale de etropie, esantionarea acestora, concatenarea si apoi mixarea (ex: printr-o functie dispersie)
Utilizarea in scopuri criptografice a unui generator aleator implica interzicerea accesului adversarului la generator
Teste statistice
Este imposibil sa se demonstreze matematic ca un generator este cu adevarat aleator. Se folosesc teste statistice pentru detectarea eventualelor slabiciuni dar rezultatul trebuie privit ca o dovada probabilistica ca generatorul produce secvente cu anumite proprietati
  • testul de frecventa (un bit)
    se testeaza daca aparitiile cifrelor "0" si "1" sunt aproximativ egale. Variabila aleatoare X=(n0-n1)2/n trebuie sa prezinte o distributie de probabilitate χ2 cu un grad de libertate daca n>10 (in practica n>>10000)
  • testul serial (doi biti)
    se testeaza daca aparitiile secventelor "00", "01", "11" si "10" sunt aproximativ egale. Variabila aleatoare X=4/(n-1)(n002+n012+n112+n102)-2/n(n02+n12)+1 trebuie sa prezinte o distributie de probabilitate χ2 cu doua de libertate daca n>21
  • testul poker (generalizare test frecventa)
    fie m∈N* ai [n/m] ≥ 5x2m. Se imparte secventa in k=[n/m] intervale disjuncte, de lungime m. Se noteaza ni numarul de aparitii ale secventei a ia, i∈[1, 2m]. Variabila aleatoare X=2m/k (∑i=12mni2) -k trebuie sa prezinte o distributie de probabilitate χ2 cu 2m-1 grade de libertate
  • testul de serie
    se determina aparitiile seriilor de "0" si "1" de diverse lungimi si se compara cu, aparitiile unei secvente de lungime i pentru o secventa aleatoare de lungime n, ei=(n-i+3)/2i+2. Fie k cea mai mare valoare a lui i pentru care ei≥ 5. Zi si Ui reprezinta numerele de secvente de "0" si "1" de lungime i unde i∈[1, k]. Variabila aleatoare X = ∑i=1k((Zi-ei)2/ei) + ∑i=1k((Ui-ei)2/ei)trebuie sa prezinte o distributie de probabilitate χ2 cu 2k-2 grade de libertate
  • testul de autocorelatie
    se testeaza corelatia intre secventa si versiuni alunecate ale sale. Fie d ∈[1, [n/2]]. Numarul de biti din secventa, care nu sunt egali cu biti alunecati-d este A(d) = ∑i=0n-d-1 si ⊕ si+d. Variabila aleatoare X = 2 (A(d)-(n-d)/2)/ (n-d)1/2 trebuie sa prezinte o distributie de probabilitate N(0,1) daca (n-d) ≧ 10
  • testul Maurer (test universal)

 

Taxonomie semnaturi digitale


Monday, November 14, 2005

 

Semnatura digitala

Semnatura digitala
Este un mijloc prin care o entitate isi poate lega identitatea de o informatie. Procesul de semnare consta in transformarea unui mesaj si a unei informatii secrete intr-un marcaj care se numeste semnatura
  • Ps este multimea mesajelor care pot fi semnate
  • S este multimea elementelor numite semnaturi
  • semk este functia semnatura, semk:PsS
  • unde k ∈K
  • verk
  • este functia verificare, verk:PsxS→{adevarat, fals}
Algoritm generare semnatura digitala
algoritm pentru producerea unei semnaturi digitale
Algoritm verificare semnatura digitala
algoritm pentru verificarea unei semnaturi digitale
Schema pentru semnatura digitala
Consta intr-un algoritm generare semnatura digitala si intr-un algoritm verificare semnatura digitala; exista o functie bijectiva de la multimea cheilor, K, la produsul SemxVer cu proprietatea ∀ p ∈ Ps, ∀ s ∈ S, verk(p,s)=adevarat ⇔ s=semk(p)
Procedura pentru semnare digitala
consta intr-un algoritm generare semnatura digitala si o metoda pentru transformarea datelor in mesaje ce pot fi semnate
Procedura pentru verificare semnatura digitala
consta intr-un algoritm pentru verificarea unei semnaturi digitale si o metoda pentru transformarea mesajului in date

Thursday, November 10, 2005

 

Taxonomie functii hash


Criterii
  1. context fara chei
    1. rezistenta preimagine(sens unic, neinversabila)
      ∀ y nu este fezabila computational gasirea lui x ai h(x)=y
    2. rezistenta preimagine ord. 2(rezistenta slaba la coliziune)
      ∀ x nu este fezabila computational gasirea lui x' ai x≠x' ∧ h(x)=h(x')
    3. rezistenta la coliziune(rezistenta puternica la coliziune)
      nu este fezabila computational gasirea lui x si x' ai x≠x' ∧ h(x)=h(x')
  2. context cu chei

  3. Functia de hash este o familie indexata dupa cheie. Valoarea de hash se numeste valoare MAC
    1. rezistenta la calcul
      nu este fezabila computational gasirea lui pi si p' ai pi≠p' ∧ hk(p)=hk(p') unde k este o cheie, avand la dispozitie mai multe perechi (pi, hk(pi))
Clasificare
  1. Context fara chei
    1. MDC(coduri detectoare modificare)
      1. OWHF(functii hash cu sens unic, functie slaba hash cu sens unic)
        prezinta proprietatile de rezistenta preimagine si rezistenta preimagine ord.2
      2. CRHF(functii hash rezistente la coliziune, functie puternica hash cu sens unic)
        prezinta proprietatile de rezistenta preimagine ord.2 si rezistenta la coliziune
    2. alte aplicatii
  2. Context cu chei
    1. MAC(coduri autentificare mesaj)
      prezinta proprietatea de rezistenta la calcul
    2. alte aplicatii
Proprietati necesare in aplicatii specifice integritatii datelor
Aplicatiarezistenta preimaginerezistenta preimagine ord. 2rezistenta la coliziune
MDC+semnatura asimetricadadada
MDC+canal autenticdada
MDC+criptare simetrica
fisier parole cu sens unicda
MAC(cheia necunoscuta atacatorului)dadada
MAC(cheia cunoscuta atacatorului)da

 

Functii hash

  1. Functie hash (functie de dispersie)
    este o functie eficienta computational care pune in corespondenta siruri binare de lungime arbitrara cu siruri binare de lungime fixa. Sirul de lungime fixa se numeste valoare de hash
  2. Utilizarea primitivei
    Utilizarea unei functii hash in criptografie impune restrictia: gasirea a doua siruri de intrare cu aceeasi valoare de hash (coliziune) sa nu fie o operatiune fezabila computational
    1. Semnaturi digitale
      Emitentul semneaza valoarea de hash a mesajului. Receptorul recalculeaza valoarea de hash a mesajului si o compara cu valoarea hash semnata.
    2. Integritatea datelor
      Se calculeaza valoarea de hash a datelor si se stocheaza. La nevoie se recalculeaza valoarea de hash si se compara cu valoarea initiala

 

Cifru flux

Cifruri flux (fluide)
  1. Flux de chei (cheie fluida)
    Fie M= (P, C,K, E,D) un sistem de criptare. O secventa de simboluri k1k2k3… ∈ K+ se numeste cheie flux (cheie fluida).
  2. Cifru flux (cifru fluid)
    Fie A un alfabet cu Card(A)=q si M un cifru de substitutie simpla cu lungimea blocului egala cu 1. Daca k ∈ K+ este o cheie flux atunci mesajul criptat c se obtine din mesajul in clar p=p1p2p3… astfel c=c1c2c3 …=ek1(p1)ek2(p2)ek3(p3)…
    1. Cifru flux sincron
      Fluxul de chei este generat independent de mesajul in clar si de mesajul criptat

      Majoritatea cifrurilor flux existente au urmatorul tip
        Cifru flux aditiv binar
        este un cifru flux sincron in care fluxul de chei, cifrele mesajului in clar si ale mesajululi criptat sunt cifre binare iar functia de criptare realizeaza un XOR intre cifra mesajului in clar si cifra fluxului de chei
    2. Cifru flux asincron (autosincronizabil)
      Fluxul de chei este generat ca o functie de cheie si un numar fixat de cifre ale mesajului criptat anterior
  3. Entropia
    Fie X o variabila aleatoare care ia valorile x1x2…xn cu probabilitatile P(X=xi)=pi
    Se defineste entropia lui X ca fiind H(X)=∑i=1npilg(1/pi) unde prin conventie termenul pentru pi=0 este 0
  4. "One time pad"
    Shannon a demonstrat conditia necesara ca o schema de criptare simetrica sa fie sigura
    H(k)≥H(p)
    adica incertitudinea cheii secrete trebuie sa fie mai mare sau egala cu incertitudinea mesajului clar
    Astfel, pentru o cheie de lungime (in biti) k, conditia devine k ≥H(p)

Wednesday, November 09, 2005

 

Taxonomie cifruri bloc

Cifruri bloc
Un cifru bloc este o schema de criptare care sparge mesajul clar in subsiruri (blocuri) cu o lungime fixata peste un alfabet A si cripteaza un bloc o data.
  1. Cifruri de substitutie
    Cifrurile de substitutie inlocuiesc simbolurile/bloc de simboluri cu alte simboluri/blocuri de simboluri
    1. monoalfabetice (substitutie simpla)
      Fie A un alfabet cu Card(A)=q, P multimea sirurilor de lungime t peste A si K multimea tututror permutarilor peste multimea A. Se defineste ek(p)= (ek(p1)ek(p2)…ek(pt))=(c1c2…ct)=c unde k ∈ K, p ∈ P, c ∈ P
    2. homofonice
      ∀ a ∈ P i se asociaza o multime H de subsiruri din C a.i. H(a) ∩ H(b) = ∅ ⇔ a ≠ b
    3. polialfabetice
      Fie A un alfabet cu Card(A)=q, P multimea sirurilor de lungime t peste A.
      1. spatiul cheilor K este format din multimile ordonate cu t elemente, elementele fiind permutarile peste A
      2. fie cheia k=(k1, k2, …, kt). Se defineste ek(p)= (ek1(p1)ek2(p2) …ekt(pt))= (c1c2…ct)=c unde k ∈ K, p ∈ P, c ∈ P
  2. Cifru de transpozitie
    Fie A un alfabet cu Card(A)=q, P multimea sirurilor de lungime t peste A si K multimea tututror permutarilor peste multimea {1,2,…,t}Se defineste ek(p)= (ek(p1)ek(p2)…ek(pt))=(c1c2…ct)=c unde k ∈ K, p ∈ P, c ∈ P
  3. Cifru produs
    Cifrurile de substitutie simpla si transpozitie nu asigura un nivel satisfacator de securitate. Combinandu-le se pot obtine cifruri puternice si in fapt sistemele de criptare practice sunt cifruri produs

Tuesday, November 08, 2005

 

Cifru

Un sistem de criptare (cifru) este o structura (P, C, K, E, D), unde:Functia ek este injectiva
Daca ek este bijectiva, sistemul de criptare se numeste simetric.

Monday, November 07, 2005

 

Primitive criptografice

Primitivele criptografice constituie caramizile utilizate la constructia sistemelor destinate a indeplini obiectivele criptografiei
  1. Primitive generale
    1. Permutari cu sens unic
    2. Secvente aleatoare
    3. Functii hash de lungime variabila
  2. Primitive pentru criptografia cu chei simetrice
    1. Cifruri cu chei simetrice
      1. Cifruri bloc
      2. Cifruri flux
    2. Functii hash de lungime variabila
    3. Semnaturi
    4. Secvente pseudoalaeatoare
    5. Primitive de identificare
  3. Primitive pentru criptografia cu chei publice
    1. Cifruri cu chei publice
    2. Semnaturi
    3. Primitive de identificare

 

Obiectivele criptografiei

In contextul mai larg al obiectivelor securitatii informatiei, criptografia (cryptos+grafic) se ocupa de aspectele matematice ce privesc urmatoarele:
Confidentialitatea (privat, secret)
informatia este disponibila numai entitatilor autorizate
Integritatea datelor (privat, secret)
permite detectarea modificarilor aduse datelor de catre o terta parte; modificarile sunt: stergere, inserare, substitutie
Autentificarea
se refera atat la identificarea partilor cat si la informatia transmisa (autentificarea entitatii si autentificarea sursei)
Non-repudierea
prevenirea negarii unei actiuni savarsite de catre o entitate

 

Plan de lectura

Introducere in criptografie cu exemple in extensia de criptografie Java
  1. Sumar teoretic al criptografiei
    1. Obiectivele criptografiei
    2. Primitive criptografice
    3. Criptografie cu chei secrete
    4. Criptografie cu chei publice
    5. Modele de securitate
    6. Patente si standarde
  2. Sumar JCE
    1. Arhitectura JCE
    2. Prezentarea cadrului de lucru in JCE
  3. Exemple de utilizare pentru algoritmii implementati in Java

Surse Curs Timsoft Securitate si Platforma Java Handbook Of Applied Cryptography An Overview of Cryptography Curs criptografie de Adrian Atanasiu Lecture Notes on Cryptography Authors: S. Goldwasser and M. Bellare

This page is powered by Blogger. Isn't yours?