Perché c’è una conoscenza asimmetrica delle chiavi, ma oggi giorno è un po’ confusa la faccenda e usiamo parlare di un certo sotto insieme di primitive e costruzioni di basso livello che derivano da conoscenze diverse dalla simmetrica.

Iniziamo chiamando coppie di chiavi come pubblica e privata. Una public key è vincolata in maniera forte alla private key. IN qualsiasi sistema simmetrico considero di distribuire una chiave almeno a due persone, in asimmetrico la chiave privata è conosciuta solamente ad nua entità, mentre la pubblica è disponibile virtualmente per tutti, dipende da noi come la andiamo a distribuire.

Vedremo alcuni aspetti del tipo:

  1. firme digitali
  2. cifratura asimmetrica
  3. key exchange (protocolli di scambi di chiavi), che ha una sua valenza

Questi sono 3 schemi primitivi che possiamo ricondurre a schemi matematici. Nel secondo caso possiamo pensare alla key incapsulation, per cui abbiamo uno schema che serve a cifrare una chiave simmetrica. Molto spesso nel mondo reale usiamo asimmetrica ibrida in cui c’è asym per ey encaps e poi simmetrica per parlarci.

In cifratura simmetrica chiunque conosca la chiave pubblica può decifrare i dati, ma per cifrarli c’è bisogno della chiave privata ovviamente. La cifratura asimmetrica ha questo setting.

Untitled

Poi solitamente vado tutto con ibrido:

Untitled

Crittografia asimmetrica è confidenzialità, mentre firma digitale è autenticità come preconcetto.

Untitled

Il receiver può andare a verificare che il sender abbia firmato correttamente il tutto. E’ un sistema molto simile ad un mac, ma aggiunge due garanzie importanti ed ulteriori:

  1. verificabilità pubblica, chiunque ha la public key può andare a verificare la firma digitale
  2. non negabilità, ma possiamo non garantire la deniability! E’ per certi versi un peso, dipende ovviamente dai contesti ecco

In black box in un contesto di key exchange voglio andare ad avere una chiave comune essenzialmente! Il protocollo nativamente assume attaccanti passivi che possono solamente leggere, ma non fanno manipolazione, altrimenti key exchange non autenticato potrebbe essere facilmente violato. Assumo che non via sia per altro alcuna terza parte. Il key exchange potrebbe estendersi, ma dal punto di vista di sicurezza eve potrebbe anche provare ad avere attacchi attivi. Se ha accesso al canale fisico potrebbe fare quel che vuole, ma l’autenticità potrebbe andare a rilevare questo tipo di interventi lato alice e bob! E quindi non andare ad accettare certi messaggi! Quando parliamo di autenticazione non parliamo di autenticazione uguale: potrebbe essere sia una autenticazione da entrambi le parti ma potremmo parlare anche di autenticazione solamente server side. Vogliamo sapere chi sta autenticando i messaggi di chi.

One Way Functions and Trapdoor One Way functions

Dobbiamo capire che un concetto fondamentale che ci serve è un oggetto che ci sembra simile a qualcosa che abbiamo già visto. Una funzione one way è quella funzione in cui possiamo calcolare in un modo efficiente in verso e poco efficiente nell’altro (costi polinomiali - costi esponenziali). Abbiamo già visto delle funzioni one way nelle funzioni hash. Quello che vorremmo usare sarebbe funzioni con una struttura tra input e output e usano dei principi di diffusione e confusione. Meno legami ci sono tra chiavi e output, input eoutput meglio è. Così vado forte senza essere critto analizzabile. Vogliamo realizzare delle one way functions senza andare a rompere tutta la struttura interna dei dati. Non usiamo operazioni binarie, ma dei problemi matematici per cui ho delle soluzioni e delle strutture, ma che sappiamo non essere trattabili computazionalmente. I crittografi che lavorano in questo ambito sono spesso matematici. Nella crittografia asimmetrica (standard e consolidata), ho tre tipi di costruzioni di cui 2 riconduco ad una unica categoria:

  1. RSA