**# RIVEST–SHAMIR–ADLEMAN (RSA)

cifrario asimmetrico che sfrutta il problema della fattorizzazione di un numero primo. La chiave pubblica e formata da due numeri (noti) e la privata da (privati)

GENERAZIONE DELLE CHIAVI

viene scelto essere: con e numeri primi molto grandi

si calcola poi un numero coprimo di , a questo punto viene scelto fra i coprimi di : infine viene calcolato : Le chiavi finali risultano essere:

La cifratura e la decifratura sono implementate come esponenziazoini modulari

E molto importante che nel caso questo venga frammentato per garantire una cifratura corretta

RICERCA NUMERI PRIMI

Per implementare correttamente queste soluzioni e necessario trovare un’ implementazione efficiente per la ricerca di numeri primi

una possibile soluzione può essere

# numero random grande
int x = random.gen()
while(! primo(x)){ // test di primalita
x= x+2
}
return x

questa soluzione ha un tempo di esecuzione

TEST DI PRIMALITÀ

Ci sono 2 metodologie per eseguire un test di primalità:

  • deterministico più oneroso ma garantisce di trovare un numero primo
  • probabilistico meno oneroso ma non c’e certezza di trovare un numero primo

ATTACCHI A RSA

  • Forza bruta: attacchi che sfruttano il numero n, la fattorizzazione del numeri primi, per evitare dobbiamo dividere in modo corretto la chiave.
  • Attacchi matematici
  • Attacchi a tempo: difficilissima da fare ma è stata dimostrata, esistono contromisure che possono essere adottate (es tecniche di padding)
  • Attacchi a testo cifrato scelto: posso evitare se utilizzo il padding oaet (probabilistico)

FIRMA CON RSA

RSA e un algoritmo di cifratura con recupero (e.g. che necessita di frammentare il messaggio e firmare i singoli pezzi), questo lo rende meno adatto a eseguire la firma di testi in quanto essa può essere trasportata da un file ad un altro se i blocchi sono identici.

PERCHÉ FIRMARE CON RSA: AUTENTICAZIONE A OCCHI CHIUSI

grazie alla proprietà moltiplicativa di RSA e vero che:

questo consente di implementare la cosiddetta autenticazione ad occhi chiusi, dove un nodo e in grado di firmare un messaggio senza conoscerne il contenuto

  • X sceglie a caso un numero coprimo con
  • Invia a T il testo cifrato
  • T firma e restituisce a X
  • X moltiplica per :
  • Il destinatario di può verificare che è autenticato da T:

questa proprietà può essere sfruttata da un attaccante per far firmare messaggi a una destinazione che altrimenti non li firmerebbe

PREVIOUS NEXT