SlideShare a Scribd company logo
1 of 24
Download to read offline
A.A. 2013-14
Franco Alberti, Valeria Dotti, Luisa Lovisetti,
Ester Mancini, Chiara Tognassi
ALGORITMO
Considerando 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)
Effettuando delle combinazioni lineari sulle equazioni del sistema (1) si
ricava:
DX=B dove D è una matrice diagonale (2)
Su questa proprietà si fonda l’algoritmo di Gauss-Jordan, applicando le
combinazioni che permettono di passare dal sistema (1) al sistema (2).
Per applicare queste combinazioni affianchiamo alla matrice A una matrice
identica 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 uguale
alla matrice identica annullando gli elementi rimanenti sopra la diagonale.
Applicando questi passaggi la matrice I che avevamo affiancato alla
matrice A diventa la matrice A-1 .
Ora mostriamo come abbiamo riportato questo algoritmo in linguaggio
SmallTalk.
Pharo3.0
Rsa -gauss jordan
La crittografia è la scrittura di un testo in modo tale che le
persone estranee al codice non possano comprenderlo, ma il
lettore desiderato sia in grado di decifrarlo per leggere il
messaggio contenuto in esso.
In tempi di guerra, ad esempio, è essenziale che il nemico non
sappia cosa voi e i vostri alleati stiate tramando, perché vincere o
perdere una guerra può dipendere dalla segretezza delle
operazioni belliche e dalle strategie, atte a sorprendere il nemico
quando meno se lo aspetta.
 Sistemi crittografici antecedenti a RSA
La codifica e la decodifica dovevano conoscere il metodo di
crittografia e la chiave per decifrare il messaggio;
Le chiavi erano simmetriche.
 Nel 1977 si arrivò alla formalizzazione di un nuovo
algoritmo, chiamato RSA, dalle iniziali di Rivest, Shamir e
Adleman.
Elementi di base
 Sfrutta la difficoltà di fattorizzare un numero n molto
grande;
 Chiave asimmetrica (pubblica e privata);
 Teorema di Eulero;
 Piccolo teorema di Fermat.
Supponiamo che Alice voglia mandare un messaggio a Bob e
impedire a Colin di sapere ciò che dice. Per farlo, utilizzando il
sistema crittografico RSA, Bob deve innanzi tutto produrre una
chiave secondo la seguente ricetta:
Funzionamento
 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 privata
d.
 Nella pratica oggi si usano p, q dell’ordine di 10150, in modo tale
che n=pq sia un numero a 1024 bit.
 Il numero e si chiama esponente di codifica (o cifratura) mentre
il numero d si chiama esponente di decodifica (o decifratura).
 Notiamo che, una volta creata, la chiave RSA può essere
utilizzata indeterminatamente. Il suo utilizzo continuato di per
sé non la svela.
 Per mandare il messaggio a Bob, Alice rappresenterà il suo
messaggio attraverso un numero P (testo in chiaro) multiplo di
n 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.
 Il testo cifrato viene trasmesso da Alice a Bob, il quale lo decifra
secondo la seguente regola:
 Decifratura del messaggio
Dd,n(c)=cdmod(n).
 La funzione D si chiama funzione di decifratura (o decodifica, o
decrittatura).
Tempi necessari a svolgere le tre operazioni:
 Generazione della chiave;
 Cifratura;
 Decifratura.
 Per quanto riguarda le ultime due operazioni è dell’ordine di
O(log3n).
 Un risultato simile si ottiene per la generazione della chiave.
Pur trattandosi di tempi polinomiali, essi rispecchiano il
maggiore inconveniente di RSA. Si tratta di un sistema lento,
poco adatto a cifrare messaggi lunghi.
 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.
Colin potrebbe:
Fattorizzare n;
Calcolare j(n);
Calcolare d=e mod(j(n));
Decifrare proprio come farebbe Bob.
Attacchi all’RSA
•Common Modulus
•Blinding
Common Modulus
Fissiamo n una volta per tutte, che verrà utilizzato da tutti gli
utenti. L’utente 1 (Alice) avrà una coppia unica e₁, d₁ dalla
quale ricaverà una chiave pubblica (n,e₁) e una chiave segreta
(n,d₁).
Common Modulus
Tuttavia, questo non è vero e il sistema risultante non è
sicuro. Infatti, Bob può utilizzare i suoi valori e₂ e d₂ per
fattorizzare il modulo n. Dopodiché Bob può ricavare la
chiave privata di Alice dalla sua chiave pubblica.
 Siano d la chiave privata di Bob ed e la sua corrispondente
chiave pubblica. Supponiamo che un antagonista (Colin)
voglia la firma di Bob su un messaggio M. Dal momento che
non è uno sprovveduto, Bob si rifiuta di firmarlo.
 Colin può allora fare questo tentativo: prende un numero
random r e pone M’=reM mod(n). Dopodiché chiede a Bob
di firmare il messaggio M’.
Blinding
 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 calcolare
S=(S’/r)mod(n) per ottenere la firma S di Bob sull’originale
M e cioè (dopo alcuni calcoli) Se=M mod(n).
Blinding

More Related Content

Viewers also liked

Евгений Атанов. Осознанность - ключ к здоровью
Евгений Атанов. Осознанность - ключ к здоровьюЕвгений Атанов. Осознанность - ключ к здоровью
Евгений Атанов. Осознанность - ключ к здоровьюNatalia Dolgopolova
 
values education 4
values education 4values education 4
values education 4Jenie Juatco
 
Contrucción de subjetividades
Contrucción de subjetividadesContrucción de subjetividades
Contrucción de subjetividadesPaulis Alvarez
 
Ajk terkini
Ajk terkiniAjk terkini
Ajk terkininjw21
 
Task 4 - Advertising Campaigns
Task 4  - Advertising CampaignsTask 4  - Advertising Campaigns
Task 4 - Advertising CampaignsKatyBoal1997x
 
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...Allison Jai O'Dell
 
pharmocogenomics and genetics in relation with molecular therapeutics and di...
 pharmocogenomics and genetics in relation with molecular therapeutics and di... pharmocogenomics and genetics in relation with molecular therapeutics and di...
pharmocogenomics and genetics in relation with molecular therapeutics and di...NARRANAGAPAVANKUMAR
 

Viewers also liked (12)

Act 6
Act 6Act 6
Act 6
 
Евгений Атанов. Осознанность - ключ к здоровью
Евгений Атанов. Осознанность - ключ к здоровьюЕвгений Атанов. Осознанность - ключ к здоровью
Евгений Атанов. Осознанность - ключ к здоровью
 
values education 4
values education 4values education 4
values education 4
 
Contrucción de subjetividades
Contrucción de subjetividadesContrucción de subjetividades
Contrucción de subjetividades
 
Ajk terkini
Ajk terkiniAjk terkini
Ajk terkini
 
Using EAC-CPF
Using EAC-CPFUsing EAC-CPF
Using EAC-CPF
 
LA AMISTAD
LA AMISTADLA AMISTAD
LA AMISTAD
 
Task 4 - Advertising Campaigns
Task 4  - Advertising CampaignsTask 4  - Advertising Campaigns
Task 4 - Advertising Campaigns
 
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...
Special Collections, Special Thesauri: Managing and Publishing Local Vocabula...
 
Gaceta6.122
Gaceta6.122Gaceta6.122
Gaceta6.122
 
Ajk
AjkAjk
Ajk
 
pharmocogenomics and genetics in relation with molecular therapeutics and di...
 pharmocogenomics and genetics in relation with molecular therapeutics and di... pharmocogenomics and genetics in relation with molecular therapeutics and di...
pharmocogenomics and genetics in relation with molecular therapeutics and di...
 

Similar to Rsa -gauss jordan

Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Gianluca Grimaldi
 
6_crittografia_firma_digitale
6_crittografia_firma_digitale6_crittografia_firma_digitale
6_crittografia_firma_digitaleJacques Bottel
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingdanielenicassio
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozartfede
 
Sistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneSistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneDavide Ciambelli
 

Similar to Rsa -gauss jordan (10)

Codici di Reed-Solomon
Codici di Reed-SolomonCodici di Reed-Solomon
Codici di Reed-Solomon
 
Crittografia
CrittografiaCrittografia
Crittografia
 
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
 
6_crittografia_firma_digitale
6_crittografia_firma_digitale6_crittografia_firma_digitale
6_crittografia_firma_digitale
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decoding
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozart
 
Sistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneSistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazione
 

Rsa -gauss jordan

  • 1. A.A. 2013-14 Franco Alberti, Valeria Dotti, Luisa Lovisetti, Ester Mancini, Chiara Tognassi
  • 2. ALGORITMO Considerando 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)
  • 3. Effettuando delle combinazioni lineari sulle equazioni del sistema (1) si ricava: DX=B dove D è una matrice diagonale (2) Su questa proprietà si fonda l’algoritmo di Gauss-Jordan, applicando le combinazioni che permettono di passare dal sistema (1) al sistema (2).
  • 4. Per applicare queste combinazioni affianchiamo alla matrice A una matrice identica 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 uguale alla matrice identica annullando gli elementi rimanenti sopra la diagonale.
  • 5. Applicando questi passaggi la matrice I che avevamo affiancato alla matrice A diventa la matrice A-1 . Ora mostriamo come abbiamo riportato questo algoritmo in linguaggio SmallTalk. Pharo3.0
  • 7. La crittografia è la scrittura di un testo in modo tale che le persone estranee al codice non possano comprenderlo, ma il lettore desiderato sia in grado di decifrarlo per leggere il messaggio contenuto in esso.
  • 8. In tempi di guerra, ad esempio, è essenziale che il nemico non sappia cosa voi e i vostri alleati stiate tramando, perché vincere o perdere una guerra può dipendere dalla segretezza delle operazioni belliche e dalle strategie, atte a sorprendere il nemico quando meno se lo aspetta.
  • 9.  Sistemi crittografici antecedenti a RSA La codifica e la decodifica dovevano conoscere il metodo di crittografia e la chiave per decifrare il messaggio; Le chiavi erano simmetriche.  Nel 1977 si arrivò alla formalizzazione di un nuovo algoritmo, chiamato RSA, dalle iniziali di Rivest, Shamir e Adleman.
  • 10. Elementi di base  Sfrutta la difficoltà di fattorizzare un numero n molto grande;  Chiave asimmetrica (pubblica e privata);  Teorema di Eulero;  Piccolo teorema di Fermat.
  • 11. Supponiamo che Alice voglia mandare un messaggio a Bob e impedire a Colin di sapere ciò che dice. Per farlo, utilizzando il sistema crittografico RSA, Bob deve innanzi tutto produrre una chiave secondo la seguente ricetta: Funzionamento
  • 12.  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 privata d.
  • 13.  Nella pratica oggi si usano p, q dell’ordine di 10150, in modo tale che n=pq sia un numero a 1024 bit.  Il numero e si chiama esponente di codifica (o cifratura) mentre il numero d si chiama esponente di decodifica (o decifratura).  Notiamo che, una volta creata, la chiave RSA può essere utilizzata indeterminatamente. Il suo utilizzo continuato di per sé non la svela.
  • 14.  Per mandare il messaggio a Bob, Alice rappresenterà il suo messaggio attraverso un numero P (testo in chiaro) multiplo di n 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.
  • 15.  Il testo cifrato viene trasmesso da Alice a Bob, il quale lo decifra secondo la seguente regola:  Decifratura del messaggio Dd,n(c)=cdmod(n).  La funzione D si chiama funzione di decifratura (o decodifica, o decrittatura).
  • 16. Tempi necessari a svolgere le tre operazioni:  Generazione della chiave;  Cifratura;  Decifratura.  Per quanto riguarda le ultime due operazioni è dell’ordine di O(log3n).  Un risultato simile si ottiene per la generazione della chiave.
  • 17. Pur trattandosi di tempi polinomiali, essi rispecchiano il maggiore inconveniente di RSA. Si tratta di un sistema lento, poco adatto a cifrare messaggi lunghi.
  • 18.  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.
  • 19. Colin potrebbe: Fattorizzare n; Calcolare j(n); Calcolare d=e mod(j(n)); Decifrare proprio come farebbe Bob.
  • 21. Common Modulus Fissiamo n una volta per tutte, che verrà utilizzato da tutti gli utenti. L’utente 1 (Alice) avrà una coppia unica e₁, d₁ dalla quale ricaverà una chiave pubblica (n,e₁) e una chiave segreta (n,d₁).
  • 22. Common Modulus Tuttavia, questo non è vero e il sistema risultante non è sicuro. Infatti, Bob può utilizzare i suoi valori e₂ e d₂ per fattorizzare il modulo n. Dopodiché Bob può ricavare la chiave privata di Alice dalla sua chiave pubblica.
  • 23.  Siano d la chiave privata di Bob ed e la sua corrispondente chiave pubblica. Supponiamo che un antagonista (Colin) voglia la firma di Bob su un messaggio M. Dal momento che non è uno sprovveduto, Bob si rifiuta di firmarlo.  Colin può allora fare questo tentativo: prende un numero random r e pone M’=reM mod(n). Dopodiché chiede a Bob di firmare il messaggio M’. Blinding
  • 24.  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 calcolare S=(S’/r)mod(n) per ottenere la firma S di Bob sull’originale M e cioè (dopo alcuni calcoli) Se=M mod(n). Blinding