140 likes | 321 Views
Natuke teooriat. Algoritmid ja andmestruktuurid Loeng 8. Raamat. Bruce Schneier. Applied Cryptography. Protokollid, algoritmid ja lähtekoodid C-s Teine väljaanne (1996). Tagasi keerukuse juurde. Probleemiklassid. Polünoomselt lahenduvad Tractable (kerged) Non Tractable (rasked)
E N D
Natuke teooriat Algoritmid ja andmestruktuurid Loeng 8
Raamat Bruce Schneier. Applied Cryptography. Protokollid, algoritmid ja lähtekoodid C-s Teine väljaanne (1996)
Probleemiklassid Polünoomselt lahenduvad Tractable (kerged) Non Tractable (rasked) Undecible P – polünomiaalsed probleemid NP – polünomiaalsed mitteterministilkud NP-Complete PSPACE ja PSPACE-Complete EXPTIME – exponentsiaalsed (tõestatud: EXPTIME-Complete ei ole P)
NP-Complete Reisiv Müügimees Hamiltoni Tsükkel Abielusõlmimine
Natuke matemaatikat Jääk ja jagamine (jagamine mooduliga) Algarvud SÜT ja VÜK Algtegurid Suhteliselt “algarvud” Pöördmoodul
Matemaatika jätkuks Pöördmoodul a * x = 1 (mod n) a * x = 1 + n * k 1 = ( a * x ) mod n a-1 = x (mod n) PRoovi teha (leida) algoritm (leia a ja n järgi x)
Ikka veel matemaatikat Fermat väike teoreem Kui m on algarv ja a ei jagu m-iga, siis am-1 = 1 (mod m) Euler Totienti Funktsioon Kui n on algarv, siis ø(n) = n – 1 Kui n = p * q, siis ø(n) = ( p - 1 ) * ( q – 1 ) Euleri üldistatud Fermat’ väike teoreem a ø(n) mod n = 1 x = a ø(n) – 1 mod n
Ruutjääk Kui p on algarv ja 0 < a < p, ja kui leidub x, mille puhul x2 = a(mod p) siis a on mod p ruutjääk Näiteid: 7 ruutjäägid on 1, 2, 4
Legendre sümbol a on täisarv ja p > 2 on algarv, siis L(a,p) = 0 // kui a jagub p-ga L(a,p) = 1 // kui a on p ruutjääk L(a,p) = -1 // kui a ei ole p ruutjääk
Jacobi sümbol n on paarisarv ja n on algarv J(0,n) = 0 J(a,n) = 0 // kui n jagub a-ga J(a,n) = 1 // kui a on n-i ruutjääk J(a,n) = -1 // kui a pole n’i ruutjääk kui n ei ole algarv ja n1, n2, n3 ... on tema algtegurid, siis J(a,n) = J(a,n1) * J(a,n2) * J(a,n3) ...
Algtegurite leidmine Nuber field sieve – NFS Quadratic sieve – QS Elliptic curve method – ECM Continued factoring algorithm
Algarvude leidmine tõenäosus, et n on algarv n / (ln n) Kas arv n on algarv? Solovay-Strassen Lehmann Robin-Miller