Rsa -gauss jordan

24
A.A. 2013-14 Franco Alberti, Valeria Dotti, Luisa Lovisetti, Ester Mancini, Chiara Tognassi

description

Presentation of Gauss jordan algoritm, and RSA algorithm

Transcript of Rsa -gauss jordan

Page 1: Rsa -gauss jordan

A.A. 2013-14

Franco Alberti, Valeria Dotti, Luisa Lovisetti,

Ester Mancini, Chiara Tognassi

Page 2: Rsa -gauss jordan

ALGORITMOConsiderando la base canonica {ei}i di Rn ogni matrice invertibile risolve il sistema:

Ax=ei per ogni i= 1,…….,n

Quindi raggruppando gli n sistemi si ricava l’espressione:

AX=I dove X=A-1 (1)

Page 3: Rsa -gauss jordan

Effettuando delle combinazioni lineari sulle equazioni del sistema (1) siricava:

DX=B dove D è una matrice diagonale (2)

Su questa proprietà si fonda l’algoritmo di Gauss-Jordan, applicando lecombinazioni che permettono di passare dal sistema (1) al sistema (2).

Page 4: Rsa -gauss jordan

Per applicare queste combinazioni affianchiamo alla matrice A una matriceidentica I della stessa dimensione di A e otteniamo:

[A|I]n x 2n

Adesso su questa matrice rettangolare svolgiamo essenzialmente 3 passaggi:

1. Applicare l’eliminazione di Gauss e ricavare una matrice a scala superiore;

2. Moltiplicare ogni riga della matrice per l’elemento sulla diagonale di A;

3. Riapplicare l’eliminazione di Gauss per rendere la matrice di sinistra ugualealla matrice identica annullando gli elementi rimanenti sopra la diagonale.

Page 5: Rsa -gauss jordan

Applicando questi passaggi la matrice I che avevamo affiancato allamatrice A diventa la matrice A-1 .

Ora mostriamo come abbiamo riportato questo algoritmo in linguaggioSmallTalk.

Pharo3.0

Page 6: Rsa -gauss jordan
Page 7: Rsa -gauss jordan

La crittografia è la scrittura di un testo in modo tale che lepersone estranee al codice non possano comprenderlo, ma illettore desiderato sia in grado di decifrarlo per leggere ilmessaggio contenuto in esso.

Page 8: Rsa -gauss jordan

In tempi di guerra, ad esempio, è essenziale che il nemico nonsappia cosa voi e i vostri alleati stiate tramando, perché vincere operdere una guerra può dipendere dalla segretezza delleoperazioni belliche e dalle strategie, atte a sorprendere il nemicoquando meno se lo aspetta.

Page 9: Rsa -gauss jordan

Sistemi crittografici antecedenti a RSA

La codifica e la decodifica dovevano conoscere il metodo dicrittografia e la chiave per decifrare il messaggio;

Le chiavi erano simmetriche.

Nel 1977 si arrivò alla formalizzazione di un nuovoalgoritmo, chiamato RSA, dalle iniziali di Rivest, Shamir eAdleman.

Page 10: Rsa -gauss jordan

Elementi di baseSfrutta la difficoltà di fattorizzare un numero n molto

grande;

Chiave asimmetrica (pubblica e privata);

Teorema di Eulero;

Piccolo teorema di Fermat.

Page 11: Rsa -gauss jordan

Supponiamo che Alice voglia mandare un messaggio a Bob eimpedire a Colin di sapere ciò che dice. Per farlo, utilizzando ilsistema crittografico RSA, Bob deve innanzi tutto produrre unachiave secondo la seguente ricetta:

Funzionamento

Page 12: Rsa -gauss jordan

Generazione di una chiave RSA

1. Si producono due primi p e q in modo che:

a. p e q abbiano lo stesso numero di cifre;

b. p e q siano “random”.

2. Si calcola n=pq e j(n)=(p-1)(q-1)=n-p-q+1.

3. Si sceglie un numero e coprimo con j(n) e più piccolo di j(n).

4. Si calcola d tale che ed=1 mod(j(n)).

5. Si trasmette la chiave pubblica e e si conserva la chiave privatad.

Page 13: Rsa -gauss jordan

Nella pratica oggi si usano p, q dell’ordine di 10150, in modo taleche n=pq sia un numero a 1024 bit.

Il numero e si chiama esponente di codifica (o cifratura) mentreil numero d si chiama esponente di decodifica (o decifratura).

Notiamo che, una volta creata, la chiave RSA può essereutilizzata indeterminatamente. Il suo utilizzo continuato di persé non la svela.

Page 14: Rsa -gauss jordan

Per mandare il messaggio a Bob, Alice rappresenterà il suomessaggio attraverso un numero P (testo in chiaro) multiplo din e lo cifrerà secondo la seguente regola:

Cifratura del messaggio

Ee,n(p)=pemod(n)

E si chiama funzione di cifratura (o codifica, o crittatura).c=E(p) si chiama testo cifrato.

Page 15: Rsa -gauss jordan

Il testo cifrato viene trasmesso da Alice a Bob, il quale lo decifrasecondo la seguente regola:

Decifratura del messaggio

Dd,n(c)=cdmod(n).

La funzione D si chiama funzione di decifratura (o decodifica, odecrittatura).

Page 16: Rsa -gauss jordan

Tempi necessari a svolgere le tre operazioni:

Generazione della chiave;

Cifratura;

Decifratura.

Per quanto riguarda le ultime due operazioni è dell’ordine diO(log3n).

Un risultato simile si ottiene per la generazione della chiave.

Page 17: Rsa -gauss jordan

Pur trattandosi di tempi polinomiali, essi rispecchiano ilmaggiore inconveniente di RSA. Si tratta di un sistema lento,poco adatto a cifrare messaggi lunghi.

Page 18: Rsa -gauss jordan

Assumiamo ora il punto di vista di Colin. Per sapere il contenuto del messaggio (cioè calcolare il valore di P), Colin deve risolvere l’equazione di congruenza:

Xe=c mod(n)

I valori di e, n, c sono infatti pubblici.

Page 19: Rsa -gauss jordan

Colin potrebbe:

Fattorizzare n;

Calcolare j(n);

Calcolare d=e mod(j(n));

Decifrare proprio come farebbe Bob.

Page 20: Rsa -gauss jordan

Attacchi all’RSA

•Common Modulus

•Blinding

Page 21: Rsa -gauss jordan

Common Modulus

Fissiamo n una volta per tutte, che verrà utilizzato da tutti gliutenti. L’utente 1 (Alice) avrà una coppia unica e₁, d₁ dallaquale ricaverà una chiave pubblica (n,e₁) e una chiave segreta(n,d₁).

Page 22: Rsa -gauss jordan

Common Modulus

Tuttavia, questo non è vero e il sistema risultante non èsicuro. Infatti, Bob può utilizzare i suoi valori e₂ e d₂ perfattorizzare il modulo n. Dopodiché Bob può ricavare la

chiave privata di Alice dalla sua chiave pubblica.

Page 23: Rsa -gauss jordan

Siano d la chiave privata di Bob ed e la sua corrispondentechiave pubblica. Supponiamo che un antagonista (Colin)voglia la firma di Bob su un messaggio M. Dal momento chenon è uno sprovveduto, Bob si rifiuta di firmarlo.

Colin può allora fare questo tentativo: prende un numerorandom r e pone M’=reM mod(n). Dopodiché chiede a Bobdi firmare il messaggio M’.

Blinding

Page 24: Rsa -gauss jordan

Bob potrebbe essere convinto ad apporre la sua firma S’,fidandosi dell’aspetto innocuo di M’.

Ma S’=(M’)dmod(n). A Colin basterà quindi calcolareS=(S’/r)mod(n) per ottenere la firma S di Bob sull’originaleM e cioè (dopo alcuni calcoli) Se=M mod(n).

Blinding