Moltiplicazione mod n

Documenti analoghi
Introduzione alla Crittografia

4 0 = 4 2 = 4 4 = 4 6 = 0.

Un po di teoria dei numeri

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

= < < < < < Matematica 1

DIARIO DEL CORSO DI ALGEBRA A.A. 2010/11 DOCENTE: ANDREA CARANTI

DIARIO DEL CORSO DI ALGEBRA A.A. 2012/13 DOCENTE: ANDREA CARANTI

DIARIO DEL CORSO DI ALGEBRA A.A. 2013/14 DOCENTE: ANDREA CARANTI

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Crittografia a chiave pubblica

m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Don Bosco, A.S. 2013/14 Compiti per le vacanze - 1C

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Corso PAS Anno ESEMPIO. Per n = 3, Z 3 contiene 3 elementi:

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

PRIMAVERA IN BICOCCA

1. riconoscere la risolubilità di equazioni e disequazioni in casi particolari

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Liceo scientifico Pascal Manerbio Esercizi di matematica per le vacanze estive

Funzioni Pari e Dispari

Monomi e Polinomi. Monomio Si dice monomio un espressione letterale in cui figurano solo operazioni di moltiplicazione.

1 Multipli di un numero

La matematica dell orologio

1 Relazione di congruenza in Z

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

La divisione esatta fra a e b è l operazione che dati i numeri a e b (con a multiplo di b) permette di trovare un terzo numero c tale che c b = a.

ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA

Esercizio. Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a. [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m

Algebra di Boole Algebra di Boole

M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI

I RADICALI QUADRATICI

LICEO SCIENTIFICO STATALE Enrico Fermi Anno Scolastico 2008/09. Scomposizioni in fattori dei polinomi. Frazioni algebriche

5 Radici primitive dell unità e congruenze del tipo

04 - Numeri Complessi

Congruenze. Trovare la cifra dell unità dei seguenti numeri [3] [6] [5]

Note sull implementazione in virgola fissa di filtri numerici

Studio di funzione. Tutti i diritti sono riservati. E vietata la riproduzione, anche parziale, senza il consenso dell autore. Funzioni elementari 2

LEZIONE 1. del 10 ottobre 2011

Potenziamento formativo, Infermieristica, M. Ruspa RIPASSO DI MATEMATICA

METODI E TECNOLOGIE PER L INSEGNAMENTO DELLA MATEMATICA. Lezione n

B7. Problemi di primo grado

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Anelli a fattorizzazione unica. Domini ad ideali principali. Anelli Euclidei

Strutture di accesso ai dati: B + -tree

ALGEBRA E LOGICA (v1.5)

Esercizi sulle equazioni logaritmiche

Quali condizionisi si possono richiedere sulla funzione interpolante?

Richiami sulla rappresentazione dei numeri in una base fissata

Università degli Studi G. d Annunzio EPG PSICOMETRIA II. Fascia A-H Anno Accademico 2015/2016. Dott. Fedele Cataldi

1. Aritmetica Modulare e Applicazioni

RIPASSO_FRAZIONI. Frazioni Equivalenti. per 2 per 3 per 2 per 3 frazione equivalente frazione equivalente frazione equivalente frazione equivalente

Probabilità 1, laurea triennale in Matematica I prova scritta sessione estiva a.a. 2008/09

Equazioni Polinomiali II Parabola

EQUAZIONI MATRICIALI

STRUTTURE ALGEBRICHE

Matematica e-learning - Corso Zero di Matematica. Gli Insiemi. Prof. Erasmo Modica A.A.

Si dice multiplo di un numero a diverso da zero, ogni numero naturale che si ottiene moltiplicando a per ciascun elemento di N.

SECONDA PROVETTA DI ALGEBRA TRENTO, 6 NOVEMBRE 2015

Rappresentazioni numeriche

I.I.S. G. Brotzu Quartu S. Elena

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

Richiami di aritmetica

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

ISTITUTO DI ISTRUZIONE SUPERIORE LICEO SCIENTIFICO TITO LUCREZIO CARO -CITTADELLA PROGRAMMA DI MATEMATICA ANNO SCOLASTICO 2009/2010 CLASSE 1 D

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

Crittografia. Fabio Stumbo Dipartimento di Matematica Università di Ferrara Ferrara, I

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Accordo su chiavi. (key agreement) Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno

5. Equazioni congruenziali lineari

SISTEMI LINEARI. x 2y 2z = 0. Svolgimento. Procediamo con operazioni elementari di riga sulla matrice del primo sistema: R 2 R 2 3R

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Matematica Discreta per Informatica. Alberto Albano Marco Burzio

DIVISIBILITA, DIVISORI E MULTIPLI. Conoscenze

PROGRAMMAZIONE STRUTTURATA

Definizione: Dato un sottoinsieme non vuoti di. Si chiama funzione identica o identità di in sé la funzione tale che.

Informatica Teorica. Macchine a registri

Aritmetica modulare. Aritmetica modulare. Benvenuto nel wikibook: Autore: Dr Zimbu

PROGRAMMA DI MATEMATICA APPLICATA

SISTEMI LINEARI MATRICI E SISTEMI 1

Anno 3. Funzioni esponenziali e logaritmi: le 4 operazioni

7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi

ax 1 + bx 2 + c = 0, r : 2x 1 3x = 0.

Le frazioni algebriche

NUMERI COMPLESSI. Test di autovalutazione

Le quattro operazioni fondamentali

Transcript:

Aritmetica modulare con modulo composto Moltiplicazione mod n Per ogni n, Z* n e la moltiplicazione modulare costituiscono un gruppo moltiplicativo. chiusura, commutativa, associativa reciproco n = =. Φ()=. = Z* :,,,,,,,

Esponenziazione mod n Se r s (mod Φ(n)), allora a r a s (mod n) per ogni a m = =. Φ()=. = Per minimizzare il tempo di calcolo in RSA gli esponenti di cifratura e di decifrazione devono essere Φ(n) Teorema di Eulero Per ogni intero n, primo o composto, e per ogni x Z* n x Φ(n) (mod n) m = =. Φ()=. = Z* :,,,,,,, si ha

Corollario Per ogni n = p.q, con p e q primi, e per ogni x Z n (x > ) si ha x Φ(n)+ x (mod n) e x kφ(n)+ x (mod n) con k intero Se m = p.q e MCD(x,Φ(m))=, per ogni y Z m y x mod n genera una permutazione di Z n Corollario m = =. Φ()= Z* :,,, Per la decifrabilità di RSA ad ogni testo cifrato c deve corrispondere un solo testo in chiaro m. Ciò è vero se e solo se e Z* Φ(n)

exp n = Φ() = Giustificazione di RSA C: per ogni < m < n si ha: m kφ(n)+ m k(p-)(q-) + (mod n) = m In RSA deve essere: c d mod n = (m e ) d mod n = m m ed m (mod n) Ciò è vero se ed = k(p-)(q-)+ o anche ed - k(p-)(q-) = e quindi MCD (e, Φ(n)) = ed mod Φ(n) = d = e - mod Φ(n) Teorema di Bézout siano a,b interi; allora esistono due interi x,y tali che MCD(a,b) = ax+by proprietà vere per costruzione

MCD(a,b) Sia a Z n. Condizione necessaria e sufficiente per l esistenza di a - (l inverso moltiplicativo di a) è MCD(n,a) = Proprietà del MCD(a,b) Esiste ed è unico Sia a b. Se k a e k b allora k a mod b Segue MCD(a,b) = MCD(b,a mod b) Algoritmo di Euclide e calcolo di e MCD(a,b) a, b interi positivi; a b > Finché b > poni r = a mod b poni a = b poni b = r Restituisci a O((ln n) ) Passo a b r MCD(Φ(n),e) = ; <e<φ(n) NO PRNG x<φ(n) Euclide =? SI Φ(n) Probabilità [MCD(x, Φ(n)) =] = Φ(Φ(n)) / Φ(n) e

La scelta di e N.B. Se il numero binario e contiene pochi uni il calcolo di m e è più efficiente: e deve essere dispari e > minimo numero di uni = e = e = + e = + Se si fissa e, occorre poi scegliere p e q in modo che sia MCD(Φ(n),e) n e n e Il calcolo di d: algoritmo esteso di Euclide MCD(a,b) = c = x a + y b a, b interi positivi; a b > Poni x =, x =, y =, y = Finché b > calcola q = a/b, r = a q.b calcola x = x -q.x, y = y -q.y poni a= b, b= r, x = x, x = x, y = y, y = y Restituisci c = a; x = x ; y = y O((ln n) ) d = e - mod Φ(n) d e + k Φ(n) = b=e Euclide esteso d = y a=φ(n) Passo a b x x y y q r x y - - - - - - - - -

Efficienza di RSA x < n x e mod n e con solo due uni x d mod n CRT (Sun Tsu ~ d.c) Teorema cinese del resto: Se gli interi n,n,..,n k sono a due a due coprimi, allora il sistema di congruenze x a (mod n ), x a (mod n ),, x a k (mod n k ) ha un unica soluzione modulo n = n n. n k. Conseguenze (nel caso n = p, n = q con p,q primi): x v (mod p), x v (mod q), Ogni intero x < n = p.q ha un unica rappresentazione modulare v(x) = (v,v ) = (x mod p, x mod q) Somme e moltiplicazioni modulari possono essere fatte vantaggiosamente sulla rappresentazione modulare degli operandi Esistono algoritmi facili (Gauss, Garner) per ripristinare la rappresentazione originaria dell intero

Decifrazione di RSA con CRT. Rappresentazione modulare di c : v(c) = (c mod p, c mod q). Calcolo della rappresentazione modulare di c d mod n: v(c d ) = ((c mod p) d mod p, (c mod q) d mod q) N.B: numeri di dimensione più piccola (½ log n). Ripristino della rappresentazione usuale di m (Gauss): m = c d mod n = {a [(c mod p) d mod p] + b [(c mod q) d mod q]} mod n Per T a, b devono soddisfare le congruenze a (mod p) b (mod p) a (mod q) b (mod q) Circa quattro volte più veloce Ancora più efficiente se n è il prodotto di più di due primi (PKCS#v) Esempio Sia p =, q =, n =, e =, d =, m = c = m mod = v() = ( mod, mod ) = (,) (c mod p) d mod p = mod = (c mod q) d mod q = mod = a =, b = (mod ) (mod ) (mod ) (mod ) m = c d mod n = {a [(c mod p) d mod p] + b [(c mod q) d mod q]} mod n m = ( + ) mod = mod = (c mod p) d mod p- mod p = mod mod =

Algoritmo e Formula di Garner y < n = p.q v(y) = (y mod p, y mod q) = (v, v ) : C = p - mod q : y = v + u p Esempio: p=, q= v =, v = : C = ; infatti mod = : u = (-) mod = : m = + = : u = ((v v) C) mod q Decifrazione di RSA con Garner Per rendere i calcoli efficienti, in Java la chiave privata è formata da componenti: n, il modulo dell esponenziazione p, il primo fattore di n q, il secondo fattore di n C = p - mod q, la costante chiamata in causa dall algoritmo d= d mod (p-), l esponente più piccolo per il calcolo della prima coordinata (v. T.) d= d mod (q-), l esponente più piccolo per il calcolo della seconda coordinata La decifrazione di un testo cifrato c richiede dunque i seguenti calcoli: v = c d mod p v = c d mod q u = ((v v) C) mod q m = v + u p

Attacchi a RSA Con la chiave pubblica: fattorizzazione log n > d = e - mod Φ(n) Con testo cifrato: Radice e-esima log n > e_ m = c mod n Cycling attack: log n > ((((c e ) e ) e..) e ) e = c, (((c e ) e ) e..) e = m Attacchi a RSA Con testo in chiaro scelto: Blocchi uguali Message unconcealed: m e = m randomizzazione Con testo cifrato scelto: proprietà moltiplicativa di RSA m = m m c = m e mod n = ((m e mod n) (m e mod n))mod n c* = c r e, m = r - m = c* d mod n m = m m

Attacchi a RSA Side-channel attack: Timing attack: T della exp = k n di uni in e c* = c r e, m = r - m = c* d mod n m = m m The RSA Algorithm () λ(n) = mcm(p-, q-) = Φ(n)/MCD(p-, q-) Public key: {n,e} n = p.q con p e q primi e coprimo con λ(n) Private key: {n,d} d = e - mod λ(n) n = p. q. p. q