Tuesday, November 29, 2005
Memento teoria numerelor
- divizibilitate
- d|n, d divide n (d este un divizor al lui n, d este un factor al lui n, n este un multiplu al lui d), d, n ∈ Z ⇔ ∃ k ∈ Z ai n = d * k
- teorema impartirii
- a ∈ Z, b ∈ Z* at ∃ q, r ∈ Z, unici, ai a = b * q + r si 0 ≦ r < b
- a ∈ Z, b ≠ 0 at ∃ q, r ∈ Z, unici, ai a = b * q + r si 0 ≦ r < | b |
- modulo
- a mod b = { b / a ∈ Z, b ∈ Z*, a = b * q + r }
- cmmdc
- cmmdc(a, b) ⇔ a, b ∈ Z*, D = {d | d|a ∧ d|b}, cmmdc(a, b) = sup D
- proprietati
- ∀ a, b ∈ Z*, ∃ cmmdc(a, b) si 0 < cmmdc(a, b) ≦ min ( | a |, | b |)
- ∀ a ∈ Z* at cmmmdc(a, 0) = 0
- ∀ a, b ∈ Z+, cmmdc(a, b) = cmmdc (b, r) unde a = b * q +r
- Lema Bezout: ∀ a, b ∈ Z ∃ s, t ai cmmdc(a, b) = s * a + t * b
- numar prim
- p ∈ Z, p ≧ 2, se numeste prim ⇔ D = { d / d | p} contine numai pe 1 si pe p (altfel se numeste numar compozit)
- T
- n ∈ Z+ este compozit ⇔ ∃ a, b , 1 < a < n, 1 < b < n ai n = a * b
- ∀ n > 1, ∃ p, un numar prim, ai p | n
- (Euclid) exista un numar infinit de numere prime
- daca n > 1, este un numar compozit at. ∃ p, un numar prim, ai p | n si p ≦ n1/2
- π ( x )
- reprezinta cardinalul multimiii numerelor prime mai mici decat x ∈ R+
- T
- π ( x ) ~ x / ln ( x ), x ∈ R+
- Teorema fundamentala a aritmeticii (descompunerea in factori primi)
- ∀ n intreg, n > 1, poate fi scris sub forma n = p1p2...ps unde s este un intreg pozitiv si p1p2...ps sunt prime ce satisfac relatia p1≦p2≦...≦ps
descompunerea in factori primi exista si este unica
daca a si b sunt doua numere supraunitare cu descompunerile in factori primi a = p1a1p2a2...pkak si b = p1b1p2b2...pkbk at. cmmdc( a , b ) = p1min ( a1 , b1 )p2min ( a2 , b2 )...pkmin ( ak , bk )- numere relativ prime
- a, b sunt relativ prime ⇔ cmmdc ( a , b ) = 1
- T
- fie a > 1 si n > 1
- an-1 este prim ⇒ a = 2 si n este prim
- an+1 este prim ⇒ a este impar si ∃ k > 1 ai n = 2k
- numere Mersenne
- Daca un numar este de forma Mn = 2n-1 se numeste numar Mersenne. Daca Mn este prim se numeste prim Mersenne
- numere Fermat
- Daca un numar este de forma Fn = 22n-1 se numeste numar Fermat. Daca Fn este prim se numeste prim Fermat
- T
- Daca Mn este prim at. n este prim
- (Lucas-Lehmer)
- functiile σ si τ
- fie n > 0; se noteaza
- τ ( n ) cardinalul multimii formate de divizorii pozitiv ai lui n
- σ ( n ) suma divizorilor pozitiv ai lui n
- T
- fie descompunerea in factori a lui n = p1e1p2e2...prer unde r ≧ 1 , p1≦p2≦...≦pr sunt prime si ei ≧ 0, ∀ i ∈ { 1 , 2, ... , r }. At.
- τ ( n ) = ( e1 + 1 )( e2 + 1 ) ... ( er + 1 )
- σ ( n ) = ( p1e1 + 1 - 1 ) / ( p1 - 1) ( p2e2 + 1 - 1 ) / ( p2 - 1) ... ( prer + 1 - 1 ) / ( pr - 1)
- numere perfecte
- se noteaza σ*( n ) suma divizorilor pozitivi mai mici ca n, ai lui n
- ptr n ≧ 2, σ*( n ) = σ( n ) -n un numar este perfect daca σ*( n ) = n
- congruente
- a congruent cu b modulo m
- a ≡ b (mod m) ⇔ ptr m ≧ 0, m | a - b
- m > 0, ∀ a, b : a ≡ b (mod m) ⇔ a mod m = b mod m ptr m ≧
- proprietati relatie congruenta
- (reflexivitate) a ≡ a ( mod m)
- (simetrie) a ≡ b (mod m) ⇒ b ≡ a (mod m)
- (tranzitivitate) a ≡ b (mod m) si b ≡ c (mod m) ⇒ a ≡ c (mod m)
- element invers
- daca cmmdc( a , m ) = 1 at ∃ a', 0 < a' < m , unic, ai aa' ≡ (mod m)
- T operatii
- a ≡ b ( mod m) si a ≡ b ( mod m) ⇒
- a ± b ≡ c ± d ( mod m)
- ac ≡ bd ( mod m)
- an ≡ bn ( mod m ) ∀ n ≧ 1
- f ( a ) ≡ f ( b ) , ∀ f ( x) , polinom cu coeficienti intregi
- T
- ptr c > 0 , m > 0 : a ≡ b ( mod m) ⇔ ca ≡ cb ( mod cm)
- ptr. m > 0 si d = cmmdc ( c , m) : ca ≡ cb ( mod m) ⇒ a ≡ b ( mod m/d)
- m > 0 , a ≡ b ( mod m) ⇒ cmmdc ( a, m) = cmmdc ( b , m)
- clase de resturi
- clasa de resturi a modulo m
- pt. m > o fixat si ptr a intreg se defineste [a] = { x / x ≡ a ( mod m) }
- ptr. m > 0: [ a ] = { mq + a / q ∈ Z }
- ptr. m > 0 : [ a ] = [ b ] ⇔ a ≡ b ( mod m)
- ptr. m > 0, ∀ a, ∃ r, 0 ≦ r < m, unic, ai [ a ] = [ r ]
- ptr. m > 0 sunt exact m clase distincte de resturi, [ 0 ] , [ 1 ] , ... , [ m - 1 ]
- sisteme de resturi
- m > 0
- inelul intregilor modulo m
- Zm = { [ a ] / a ∈ Z}
- sistem complet de resturi modulo m
- multimea de intregi { a1 , a2 , ... , am } se numeste sistem complet de resturi modulo m daca Zm = { [ a1 ] , [ a2 ] , ... , [ am ] }
- daca m = 2k at. {0, 1, 2, ..., k-1, k, -(k-1), ..., -2, -1} este un sistem complet de resturi modulo m
- daca m = 2k + 1 at. {0, 1, 2, ..., k, -k, ..., -2, -1} este un sistem complet de resturi modulo m
- adunarea si inmultirea in Zm
- fie [ a ], [ b ] ∈ Zm, se definesc: [ a ] + [ b ] = [ a + b } si [ a ][ b ] = [ ab ]
- Jm = {0, 1, ... m - 1} cu operatiile a ⊕ b = ( a + b) mod m si a ⊙ b = ( ab ) mod m formeaza un inel izomorf cu Zm
- o clasa de resturi [ a ] ∈ Zm este unitara daca nu este inversabila ⇔ cmmdc ( a , m) = 1
- grupul unitatilor
- Um = { [ i ] / 1 ≦ i ≦ m si cmmmdc( i , m) = 1} impreuna cu inmultirea (din Zm) formeaza un grup abelian
- daca p este prim, at. ∃ a ∈ Up ai Up = <a>
- daca n ≧ 2 , at. ∃ a ∈ Up ai Up = <a> ⇔ a este de froma 2, 4, pk, 2 p k unde p ≧ 2, p este prim si k ∈ N
- functia φ Euler
- ordinul lui Um
- proprietati φ Euler
- ptr. a > 0, b > 0 si cmmdc ( a , b ) = 1 : φ( ab ) = φ( a )φ( b )
- ptr. p, prim, si n > 0 : φ( pn ) = pn - pn-1
- ptr. p1, p2, ..., pk, prime distincte, si n1, n2, ..., nk, intregi pozitivi : φ(p1n1 p2n2 ... pknk) = ( p1n1 - p1n1-1 ) ... ( pknk - pknk-1 )
- T
- fie a, b ∈ Z+, cmmdc( a , b ) = 1 si n = ab. Se defineste f ( [ x ]n ) = ( [ x ]a , [ x ]b )
- (teorema chineza a resturilor) f : Zn → Za x Zb este bijectiva
- f : Un → Ua x Ub este bijectiva
- teste primalitate
- mica teorma a lui Fermat
- daca p este prim si a, cmmdc( a , p) = 1 at. ap-1 ≡ 1 ( mod p)
- teorema lui Euler
- ptr. m > 0 si a, cmmdc( a , m ) = 1 : aφ(m) ≡ 1 ( mod m )
- ap ≡ a ( mod p), ∀ a si p prim
- ptr. m ≧ 2, ∀ a, 1 ≦ a ≦ m -1, am-1 ≡ 1 ( mod m) ⇒ m prim
- reprezentarea lui n in baza b
- ptr. b ≧ 2, n > 0 , n = [ak, ak-1, ..., a1, a0]b este reprezentarea in baza b a lui n ⇔ ∃ k ≧ 0 ai n = akbk + ak-1bk-1 + ... + a1b + a0 unde ai ∈ {0, 1, ..., b-1}, i ∈ {0, 1, ..., k}
reprezentarea este unica- metoda binara pentru calculul lui xn, x ∈ R, n ∈ Z+
- se gaseste reprezentarea binara n = [ ar , ... , a1 ,a0 ]2
- se calculeaza puterile x2 , x22 , ... , x2r
- se calculeaza produsul xn = xar2r xar-12r-1 xa12 xa0
- metoda binara pentru calculul lui xn ( mod m) , x ∈ R, n ∈ Z+
- se gaseste reprezentarea binara n = [ ar , ... , a1 ,a0 ]2
- se calculeaza redusele modulo m ale puterilor x2 , x22 , ... , x2r , m1 = x2 mod m , m2 = x22 mod m , ... , mr = x2r mod m
- se calculeaza produsul xn mod m = mrmr-1 ... m1 m0
Monday, November 28, 2005
Functii cu trapa
- functie cu trapa
- f : N → R este o functie cu trapa ⇔
- f este o functie cu sens unic
- ∃ p, o functie polinomiala, si ∃ A, un algoritm PTP ai
- ∀ k, ∃ tk ∈ {0, 1}* cu | tk | ≦ p ( k )
- ∀ x ∈ {0, 1}*, A( f ( x) , tk) = y ai f ( y ) = f ( x)
- familie de functii puternice cu trapa si cu sens unic
- F = { fi : Di → Di }i∈I, unde i ∈ I, ,multimea indicilor, este o familie de functii puternice cu trapa si cu sens unic daca:
probabilitatea este luata peste alegerile lui i si x pentru A echiprobabila- ∃ S1, o MTP, si p, o functie polinomiala, ai ( i , ti ) ← S1 ( x ∈ {0, 1}k ), i ∈ {0, 1}k ∩ I si | ti | < p ( k ); ti se numeste trapa pentru i
- ∃ S2, o MTP, ai x ← S2 ( i ∈ I ), x∈ Di
- ∃ A1, o MTP, ai A1 ( i , x ) = fi( x ), unde i ∈ I, x ∈ Di
- ∀ A, un algoritm PTP, ∃ mA, o functie neglijabila, ai P [ fi ( z ) = y ; x ∈ Di; i ∈ I ; y ← fi ( x ) ; z ← A ( i , y ) ] ≦ mA pentru k suficient de mare
Friday, November 25, 2005
Functii cu sens unic
- functie neglijabila
- f : N → R este neglijabila ⇔ ∀ c > 0, ∃ kc, ai f(k) < k-c, ∀ k > kc
- functie puternica cu sens unic
- f : {0, 1}* → {0, 1}* este puternica, cu sens unic ⇔:
- ∃ A, un algoritm PTP (probabilstic de timp polinomial), care obtine y = f(x), pentru x dat
- ∀ A, ∃ mA, o functie neglijabila, ai P [ f ( z ) = y ; x ∈ {0, 1}* ; y ← f ( x ) ; z ← A ( y ) ] ≦ mA pentru k suficient de mare
- functie slaba cu sens unic
- f : {0, 1}* → {0, 1}* este slaba, cu sens unic ⇔:
- ∃ A, un algoritm PTP, care obtine y = f(x), pentru x dat
- ∀ A, ∃ Q, o functie polinomiala, ai P [ f ( z ) ≠ y ; x ∈ {0, 1}* ; y ← f ( x ) ; z ← A ( y ) ] ≧ mA pentru k suficient de mare
∃ functii slabe ⇔ ∃ functii puternice- familie de functii puternice cu sens unic
- F = { fi : Di → Ri }i∈I, unde i ∈ I, ,multimea indicilor, este o familie de functii puternice cu sens unic daca:
probabilitatea este luata peste alegerile lui i si x pentru A echiprobabil- ∃ S1, un algoritm PTP, ai i ← S1 ( x ∈ {0, 1}k ), i∈ {0, 1}k ∩ I
- ∃ S2, un algoritm PTP, ai x ← S2 ( i ∈ I ), x∈ Di
- ∃ A1, un algoritm PTP, ai A1 ( i , x ) = fi( x ), unde i ∈ I, x ∈ Di
- ∀ A, un algoritm PTP, ∃ mA, o functie neglijabila, ai P [ fi ( z ) = y ; x ∈ Di; i ∈ I ; y ← fi ( x ) ; z ← A ( i , y ) ] ≦ mA pentru k suficient de mare
∃ o familie de functii puternice cu sens unic ⇔ ∃ functii puternice
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
- Limite
- Echivalenta
- ∀ functie g(n), Θ(g(n)) = { f(n) / ∃c1 >0, c1 >0 ai 0 ≦ c1g(n) ≦ f(n) ≦ c2G(n), ∀ n ≧ n0 } reprezinta multimea functiilor asimptotic echivalente cu g(n)
- Limita inferioara
- ∀ functie g(n), Ω(g(n)) = { f(n) / ∃c >0 ai 0 ≦ cg(n) ≦ f(n) , ∀ n ≧ n0 } reprezinta multimea functiilor marginite asimptotic inferior de g(n)
- Limita superioara
- ∀ functie g(n), O(g(n)) = { f(n) / ∃c >0 ai 0 ≦ f(n) ≦ cg(n) , ∀ n ≧ n0 } reprezinta multimea functiilor marginite asimptotic superior de g(n)
- Clase
- Limbaje
- P
- multimea limbajelor acceptate de o MTD in timp polinomial
Limbajul L ∈ P ⇔ ∃ M o MTD, ∃ Q(y), o functie polinomiala ai- v ∈ L ⇔ M accepta v
- M termina dupa cel mult Q(|v|) pasi
- NP
- multimea limbajelor acceptate de o MTN in timp polinomial
- co-NP
multimea limbajelor neacceptate de o MTN in timp polinomial- PSPACE
- multimea limbajelor acceptate de o MTD in spatiu polinomial
- NPSPACE
- multimea limbajelor acceptate de o MTN in spatiu polinomial
- LOGSPACE
- multimea limbajelor acceptate de o MTD in spatiu logaritmic
- NLOGSPACE
- multimea limbajelor acceptate de o MTN in spatiu logaritmic
- EXP
- multimea limbajelor acceptate de o MTD in t(n)=2cn
- NEXP
- multimea limbajelor acceptate de o MTN in t(n)=2cn
- PEXP
- multimea limbajelor acceptate de o MTD in t(n)=2p(n)
- NPEXP
- multimea limbajelor acceptate de o MTN in t(n)=2p(n)
- UP
- multimea limbajelor acceptate de o MTN neambigua, care are cel putin o acceptare pentru orice intrare, in timp polinomial
- PP
- multimea limbajelor acceptate de o MTP (pseudo-aleatoare) in timp polinomial
- BPP (bounded error, probabilistic, polynomial time)
- multimea limbajelor acceptate de o MTP (echiprobabila) in timp polinomial
- RP
- multimea limbajelor acceptate de o MTP () in timp polinomial
- co-RP
- multimea limbajelor acceptate de MTP-RP la care probilitatiel de acceptare si neacceptare sunt inversate
- ZPP
- multimea limbajelor acceptate este intersectia RP si co-RP
- Functii
- PF
- Multimes functiilor calculate de o MTD in timp polinomial
- NPF
- Multimes functiilor calculate de o MTN in timp polinomial
- PSPACEF
- Multimes functiilor calculate de o MTD in spatiu polinomial
- #P
- Multimes functiilor care enumera calculele ale MTN-urilor
Wednesday, November 16, 2005
Modele calcul - automate
- Clasificare
Clasificarea Chomsky Gramatica Limbajul Automatul minimal Forma normala tip 0 fara restrictie recursiv enumerabil MTN - - fara restrictie recursiv decidor - tip 1 dependenta de context dependent de context marginit liniar KURODA tip 2 independenta de context independent de context push down CHOMSKY, GREIBACH tip 3 regulara regular finit - - 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
- 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 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
- 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
- Alte notatii
- spatiul mesajelor, P
- multimea mesajelor
- spatiul de semnare, Ps
- multimea mesajelor ce pot fi semnate
- functie redundanta, r
- o functie injectiva r:P→Pr
- spatiul valorilor de hash, Ph
- codomeniul unei functii de dispersie, h:P→Ph
Ph⊂Ps- multimea index de semnare, I
- Criterii
- utilizarea mesajului original de catre algoritmul de verificare
- numarul transformarilor
- Clasificare
- criteriul 1
- scheme pentru semnatura digitala cu anexa
necesita mesajul original; fiecare entitate creeaza o cheie privata pentru semnare si o cheie publica pentru verificare- utilizatorul U selecteaza o multime {semU,k; k∈I} care este cheia secreta a lui U; fiecare semU,k este o aplicatie injectiva de la Ph la S
- ∀ p∈Ph, s*∈S, verA(p,s*)=adevarat daca semU,k(p)=s*, altfel verA(p,s*)=fals; verA este cheia publica; transformarea se calculeaza fara a cunoaste cheia secreta
- scheme pentru semnatura digitala cu recuperare de mesaj
mesajul original este recuperat din semnatura insasi- utilizatorul U selecteaza o multime {semU,k; k∈I} care este cheia secreta a lui U; fiecare semU,k este o aplicatie injectiva de la Ps la S
- ∀k∈I, verA ○ semU,k=1Ps, verA este cheia publica; transformarea se calculeaza fara a cunoaste cheia secreta
- criteriul 2
- schema aleatoare pentru semnatura digitala
Card(I)>1 - schema determinista pentru semnatura digitala
Card(I)=1
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:Ps→S 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
- context fara chei
- rezistenta preimagine(sens unic, neinversabila)
- ∀ y nu este fezabila computational gasirea lui x ai h(x)=y
- rezistenta preimagine ord. 2(rezistenta slaba la coliziune)
- ∀ x nu este fezabila computational gasirea lui x' ai x≠x' ∧ h(x)=h(x')
- rezistenta la coliziune(rezistenta puternica la coliziune)
- nu este fezabila computational gasirea lui x si x' ai x≠x' ∧ h(x)=h(x')
- context cu chei
- 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))
Functia de hash este o familie indexata dupa cheie. Valoarea de hash se numeste valoare MAC
- Context fara chei
- MDC(coduri detectoare modificare)
- OWHF(functii hash cu sens unic, functie slaba hash cu sens unic)
- prezinta proprietatile de rezistenta preimagine si rezistenta preimagine ord.2
- CRHF(functii hash rezistente la coliziune, functie puternica hash cu sens unic)
- prezinta proprietatile de rezistenta preimagine ord.2 si rezistenta la coliziune
- alte aplicatii
- Context cu chei
- MAC(coduri autentificare mesaj)
- prezinta proprietatea de rezistenta la calcul
- alte aplicatii
Aplicatia | rezistenta preimagine | rezistenta preimagine ord. 2 | rezistenta la coliziune |
MDC+semnatura asimetrica | da | da | da |
MDC+canal autentic | da | da | |
MDC+criptare simetrica | |||
fisier parole cu sens unic | da | ||
MAC(cheia necunoscuta atacatorului) | da | da | da |
MAC(cheia cunoscuta atacatorului) | da |
Functii hash
- 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
- 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- Semnaturi digitale
Emitentul semneaza valoarea de hash a mesajului. Receptorul recalculeaza valoarea de hash a mesajului si o compara cu valoarea hash semnata. - 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
- Semnaturi digitale
Cifru flux
Cifruri flux (fluide)
- 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).
- 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)…
- 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
- Cifru flux asincron (autosincronizabil)
- Fluxul de chei este generat ca o functie de cheie si un numar fixat de cifre ale mesajului criptat anterior
- 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- "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.
- Cifruri de substitutie
- Cifrurile de substitutie inlocuiesc simbolurile/bloc de simboluri cu alte simboluri/blocuri de simboluri
- 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
- homofonice
- ∀ a ∈ P i se asociaza o multime H de subsiruri din C a.i. H(a) ∩ H(b) = ∅ ⇔ a ≠ b
- polialfabetice
- Fie A un alfabet cu Card(A)=q, P multimea sirurilor de lungime t peste A.
- spatiul cheilor K este format din multimile ordonate cu t elemente, elementele fiind permutarile peste A
- 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
- 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
- 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:
Daca ek este bijectiva, sistemul de criptare se numeste simetric.
- P= {w | w ∈ V*} este multimea "textelor clare", scrise peste un alfabet nevid V
- C= {w | w ∈ W*} este multimea "textelor criptate", scrise peste un alfabet nevid W (uzual W = V ).
- K este o multime de elemente numite chei.
- Fiecare cheie K ∈ K determina o metoda de criptare eK ∈ E si o metoda de decriptare dK ∈ D . eK : P → C si dK : C → P sunt functii cu proprietatea dK(eK(w)) = w, ∀ w ∈ P.
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
- Primitive generale
- Permutari cu sens unic
- Secvente aleatoare
- Functii hash de lungime variabila
- Primitive pentru criptografia cu chei simetrice
- Cifruri cu chei simetrice
- Cifruri bloc
- Cifruri flux
- Functii hash de lungime variabila
- Semnaturi
- Secvente pseudoalaeatoare
- Primitive de identificare
- Primitive pentru criptografia cu chei publice
- Cifruri cu chei publice
- Semnaturi
- 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
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
- Sumar teoretic al criptografiei
- Obiectivele criptografiei
- Primitive criptografice
- Criptografie cu chei secrete
- Criptografie cu chei publice
- Modele de securitate
- Patente si standarde
- Sumar JCE
- 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