Note de curs, clasele 11-12, 15 martie 2013
From Algopedia
Jump to navigationJump to search
Problemă de logică
- Ești un împărat. Ai 240 de butoaie de vin, din care unul este otrăvit. Otrava își face efectul în maxim 24h. Ai 5 sclavi pe care ești dispus să-i sacrifici. Cum depistezi butoiul otrăvit în maxim 48h?
- Întrebare ajutătoare: 1000 de butoaie, 10 sclavi la dispoziție, maxim 24h
Criptografie
- Alice vrea să-i trimită un cufăr lui Bob, dar nu are încredere în curier. Alice și Bob au fiecare lacăte și chei
- Metoda 1: Bob îi trimite un lacăt lui Alice; Alice îi trimite cufărul închis cu acel lacăt
- Metoda 2: Alice pune un lacăt; Bob pune și el un lacăt; Alice scoate lacătul; Bob scoate lacătul
- Dorim să realizăm unul sau ambele din două lucruri:
- semnături: Alice să poată dovedi că ea a trimis mesajul
- securitate: numai Bob să poată citi mesajul
- Criptare cu cheie simetrică:
- Alice și Bob aleg chei publice / secrete: PA, SA, PB, SB.
- numele se referă și la funcțiile respective
- funcțiile trebuie să fie bijective și inverse: PA(SA(M)) = SA(PA(M)) = M
- cum funcționează criptarea și semnarea
- semnarea face mesajul ilizibil, dar putem publica mesajul în clar împreună cu cel semnat
- directoare de chei publice, web of trust, trusted party
- exemplu (prost): PA = rot+k, SA = rot-k
- rot13 e simetric și s-a bucurat de oarecare notorietate pe forumuri
- Algoritmul RSA
- Alice alege p, q prime de circa 1000 biți, calculează n = pq
- Alice alege e impar prim cu ϕ(n), calculează d = e-1 (mod n)
- notă: de aceea este bine ca p, q să nu aibă mulți divizori
- PA = (e, n); SA = (d, n)
- criptare: P(M) = Me (mod n)
- decriptare: S(C) = Cd (mod n)
- de ce merge: DLP, factorizare
- Criptare cu cheie publică
- Mai rapidă, dar partenerii trebuie să aibă aceeași cheie
- Diffie-Hellman - protocol pentru schimb de chei
- cum ajungem la un secret comun pe un canal public?
- Alice și Bob aleg p prim, g generator modulo p, ambele publice
- Alice alege a secret, Bob alege b secret
- Alice îi trimite lui Bob A = ga mod p
- Bob îi trimite lui Alice B = gb mod p
- Alice calculează s = Ba mod p
- Bob calculează s = Ab mod p
- de ce merge: DLP
- combinație: criptăm datele cu cheie simetrică, iar cheia însăși cu o cheie publică
- diagramă PGP
Aritmetică modulară
- clase de resturi modulo n
- grup (definiția celor patru proprietăți, exemple)
- dacă este și comutativ, se numește grup abelian
- propoziție: dacă d | a și d | b ⇒ d | (ax + by)
- teoremă: gcd(a, b) este cel mai mic element pozitiv al mulțimii {ax + by}
- corolar: d | a și d | b ⇒ d | gcd(a, b)
- corolar: gcd(na, nb) = n gcd(a, b)
- corolar: n | ab și gcd(n, a) = 1 ⇒ n | b
- algoritmul lui Euclid extins (AEE)
- aflarea inverselor în Zn* cu AEE
- mica teoremă a lui Fermat: pentru orice p prim, ap ≡ a (mod p)
- demonstrație cu șiragurile de p mărgele rotite circular
- teorema chinezească a resturilor
- să se găsească x astfel încât x ≡ 4 modulo 5, x ≡ 7 modulo 11
- foarte pe fugă, am construit tabloul de 5x7 cu resturi modulo 5, modulo 7 și modulo 35
- demonstrația că RSA merge: Med ≡ M (mod p, mod q, apoi mod n)