Principi dei sistemi crittografici a chiave pubblica

Il concetto di chiave pubblica nasce da un tentativo di attaccare due dei più complicati problemi associati con la cifratura simmetrica.
Il primo problema riguarda la distribuzione della chiave, in particolare distribuire la chiave grazie alla stessa cifratura simmetrica, esso richiede che:

  1. i due estremi della comunicazione abbiano già condiviso una chiave,
  2. oppure sfruttare un distributore di chiavi centralizzato.

Whitfield Diffie*, colui che inventò la cifratura a chiave pubblica (con l'aiuto di Martin Hellman) pensava che utilizzare un distributore centralizzato di chiave, andasse contro il principio della crittografia, ovvero mettere le chiavi delle proprie comunicazioni private nella mani di terzi, non era la soluzione più adatta.

Una seconda questione su cui Diffie meditò furono le digital signatures (firme digitali). Se l'uso della crittografia doveva iniziare a estendersi, fuori dal campo militare, per scopi privati e commerciali, allora i messaggi e i documenti elettronici avrebbero necessitato dell'equivalente firma usata nei documenti cartacei.

Diffie e Hellman giunsero ad un svolta sorprendente nel 1976, trovando un metodo che risolvevfa entrami i problemi e il cui approccio era completamente diverso da quello usato fino a quel momento.

Approccio diverso

Nei cifrari convenzionali la difficoltà della lettura di un messaggio cifrato consiste nel fatto che
la trasformazione realizzata dal cifrario non è nota. In questo caso invece, il funzionamento
dell'algoritmo è noto, ma è troppo difficile da calcolare se non si conosce l'informazione segreta (trapdoor) utilizzata per generare le chiavi e/o per decifrare.

Critto-sistemi a chiave pubblica
...

Algoritmi asimmetrici fanno affidamento su una chiave per la cifratura e una chiave per la decifratura. Essi devono avere le seguenti caratteristiche:

  • deve essere difficile a livello computazionale determinare la chiave di decifratura data la conoscenza dell'algoritmo di cifratura e la chiave di cifratura.
    In aggiunta, alcuni algoritmi, esibiscono le seguenti caratteristiche:
  • una della due chiavi può essere usata per la cifratura, mentre l'altra è usata per la decifratura.

Una cifratura a chiave asimmetrica ha sei ingredienti:

  • Plaintext
  • Algoritmo di cifratura
  • Chiave pubblica e privata: un paio di chiavi selezionate in modo che una sia usata per la cifratura e l'altra per la decifratura. Le trasformazioni effettuate dall'algoritmo dipendono dalla chiave passata all'algoritmo.
  • Ciphertext
  • Algoritmo di decifratura

I passi essenziali sono i seguenti:

  1. Ogni utente genera un paio di chiavi da utilizzare per cifrare e decifrare i messaggi;
  2. ogni utente posiziona una delle due chiavi (quella pubblica) in un registro pubblico o in un file accessibile agli altri. L'altra chiave viene mantenuta in privato;
  3. se Bob vuole inviare un messaggio privato ad Alice, Bob cifra il messaggio lo chiave pubblica di Alice;
  4. quando Alice riceve il messaggio, lei lo decritta usando la sua chiave privata, che solo lei possiede, e solo lei conosce. Nessun'altro può decifrare quel messaggio, se Alice ha mantenuto per sé la sua chiave privata.

Le due chiavi utilizzate sono definite come: chiave pubblica e chiave privata.

Pasted image 20230726103633.png
Nella parte alta della figura (a) abbiamo ai due estremi due utenti: Bob e Alice. Bob detiene un messaggio in plaintext (). Bob possiede anche una lista di chiavi pubbliche, tra quelle c'è quella di Alice, allora, Bob, utilizza l'algoritmo di cifratura, per trasformare il messaggio in , utilizzando la chiave pubblica di Alice. Dopo trasmette il messaggio. Alice riceve il messaggio e utilizza la sua chiave privata per decifrare un messaggio.

Nella parte bassa della figura (b) abbiamo la stessa situazione. Questa volta però Bob utilizza per cifrare il messaggio la sua chiave privata. Quando invia il messaggio cifrato (), Alice utilizzerà la chiave pubblica di Bob, per decifrarlo. In questo contesto, si noti, che non vi è alcuna sicurezza. Chiunque possiede la chiave pubblica di Bob può decifrare il messaggio, tuttavia la cifratura da parte di Bob garantisce che è lui l'autore del messaggio. Questo procedimento è noto come firma digitale.

Lo scopo del primo procedimento è quello di garantire la riservatezza dei dati.

Perché i cifrari asimmetrici rappresentano una novità, con notevoli conseguenze applicative?

Perché diventa possibile cifrare un messaggio, senza condividere un segreto con il destinatario, la distribuzione delle chiavi è facilitata. Inoltre solo chi detiene la chiave di cifratura è in grado di produrre un dato messaggio cifrato diverso. Dato un messaggio, la cifratura con chiavi pubbliche diverse produce messaggi cifrati differenti.

Un'occhiata più da vicino
...

Diciamo che c'è una sorgente A che produce messaggi in plaintext, . Gli elementi di sono lettere in un qualche alfabeto finito. Il messaggio è per una destinazione B. B genera un paio di chiavi: una pubblica e una privata . La chiave privata viene mantenuta segreta da B ed è nota solo a B. è invece disponibile per gli utente che vogliono inviare messaggi a B.

Quando il messaggio viene crittato usando la chiave da parte di A, viene prodotto un ciphertext . Il ricevente, B, decritta usando la sua chiave privata. Un avversario, che osserva il risultato della cifratura , e ha accesso a , ma non ha accesso a o al messaggio in chiaro , deve tentare di recuperare stesso e/o . Si assume che l'avversario conosca l'algoritmo di cifratura e decifratura. Se l'avversario volesse leggere solo un particolare ciphertext , allora deve concentrare i suoi sforzi per recuperare (il plaintext) generando una stima del plaintext: . Spesso, tuttavia, l'avversario è interessato a tutti i messaggi di una comunicazione, in qual caso deve tentare di recuperare la chiave privata di B generando una stima di : .

Pasted image 20230726113728.png

Classificazione degli usi che si possono fare dei critto-sistemi a chiave pubblica
...

  • Encryption/Decryption: il mittente cifra un messaggio con la chiave pubblica del destinatario, quest'ultimo decifra usando la sua chiave privata.
  • Digital Signature (firma digitale): il mittente firma un messaggio con la sua chiave privata.
  • Key exchange (scambio di chiavi): i due estremi cooperando per scambiarsi una chiave, che è una chiave segreta per una futura comunicazione con chiave simmetrica, generata per utilizzarla in una particolare transazione (o sessione) e valida solo per un breve periodo di tempo.
Esistono cifrari asimmetrici sicuri e utilizzabili in pratica?

Si ritiene che vari cifrari a chiave pubblica presentati nella letteratura siano sicura anche rispetto ad attacchi molto sofisticati. Il cifrario asimmetrico più conosciuto e utilizzato è RSA. Tuttavia, i cifrari asimmetrici conosciuti sono tutti abbastanza lenti e devono essere combinati con cifrari simmetrici e funzioni di hash.

Combinazione fra cifrari simmetrici e asimmetrici
...

Per inviare un messaggio cifrato si prepara un digital envelope (busta digitale), un contenitore sicuro per proteggere il messaggio durante la sua trasmissione. Il mittente cifra il messaggio originale utilizzando una chiave simmetrica K. La cifratura simmetrica è più veloce. Successivamente, il mittente cifra la chiave simmetrica K utilizzando la chiave pubblica del destinatario. Il mittente invia il digital envelope al destinatario, ovvero il messaggio cifrato (con la chiave asimmetrica) e la chiave K stessa cifrata con la chiave pubblica del destinatario. Il destinatario, per prima cosa dovrà decifrare con la sua chiave privata, la chiave K (cifrata dal mittente con la chiave pubblica del destinatario stesso), in secondo luogo dovrà utilizzare la chiave simmetrica ottenuta dalla decifratura, per decifrare (in maniera simmetrica) il resto del messaggio.