vuoi
o PayPal
tutte le volte che vuoi
Usi della crittografia asimmetrica
Due degli usi più conosciuti della crittografia asimmetrica sono:
- Crittografia a chiave pubblica: i messaggi vengono crittografati con la chiave pubblica del destinatario. Il messaggio non può essere decriptato da chi non possiede la chiave privata corrispondente, garantendo così la riservatezza.
- Firma digitale: un messaggio viene firmato con la chiave privata del mittente e può essere verificato da chiunque abbia accesso alla chiave pubblica del mittente. Questo assicura che il messaggio non sia stato manomesso, poiché ogni manipolazione comporterebbe modifiche al digest, che altrimenti rimarrebbe invariato tra il mittente e il ricevente.
Lo scambio delle chiavi asimmetriche avviene in una fase iniziale di negoziazione, in cui gli utenti adottano temporaneamente una chiave di sessione simmetrica per supportare la fase di handshake. Durante questa fase, viene avviata una sessione con crittografia simmetrica per negoziare la chiave di sessione, il protocollo e altri parametri.
Gli altri aspetti della connessione cifrata. La chiave di sessione è temporanea e "usa e getta".
Vantaggi:
- Lo scambio della chiave non è più un problema
Svantaggi:
- Algoritmi molto complessi e lenti
- Spazio delle chiavi meno ampio: la chiave pubblica e privata devono essere collegate, per cui si limita il range dei possibili valori da scegliere
- Algoritmo di decifratura asimmetrico rispetto a quello di cifratura: si ha maggiore complessità nell'implementazione software
- Numero di chiavi cresce linearmente
- Introduce un ente terzo, ossia una Certification Authority (CA)
Uno degli algoritmi a chiave pubblica più noti è RSA.
Come ne esco? (Legame tra crittografia simmetrica e asimmetrica)
In sintesi, si usa l'algoritmo asimmetrico a chiave pubblica per scambiare la chiave segreta dell'algoritmo simmetrico, poi si usa l'algoritmo simmetrico per la cifratura del testo.
L'algoritmo di crittografia asimmetrica
presuppone che le due parti siano già in possesso delle chiavi, richiesta che non rende possibile uno scambio di chiavi con questo genere di algoritmi. Lo scambio avviene attraverso algoritmi a chiave asimmetrica o pubblica, più complessi sia da implementare che da eseguire, ma che permettono lo scambio in modo sicuro. Dopodiché la comunicazione verrà criptata usando solo algoritmi a chiave simmetrica per garantire una comunicazione sicura, ma veloce. In questo genere di algoritmi si suppone quindi che entrambe le parti conoscano già la chiave con cui crittare e decrittare il messaggio: il mittente cripta il messaggio con la chiave pubblica del destinatario usando un algoritmo di crittografia simmetrica, al destinatario arriva un messaggio cifrato che riesce a decriptare poiché è in possesso della sua chiave privata. Ora il ricevente applica l'algoritmo di decrittazione con la stessa chiave che ha usato il mittente, ossia la chiave disessione.Nel caso di un attacco man in the middle, se l'attaccante ha intercettato il messaggio lungo il mezzo di comunicazione, avrà il messaggio criptato ma non la chiave che è stata scambiata in modo sicuro dai due interlocutori.
Attacchi alla crittografia 2 NPrincipalmente attacchi "brute force" con numero di tentativi pari a dove N è la lunghezza della chiave crittografica in bit. Le lunghezze che sono ritenute "sicure" oggi sono 192-256 bit per le chiavi simmetriche e 2048 bit per le chiavi asimmetriche.
"Sicure" si intende a fronte di attacchi normali, non da criminalità organizzata, servizi segreti ecc. "Oggi" perché, grazie ai miglioramenti di hardware e software, domani quanto detto potrebbe non essere più vero.
Lo sviluppo e l'utilizzo di computer quantistici sono in grado di cambiare completamente questi accorgimenti in quanto essi aumentano esponenzialmente la velocità di
computazione con piccole operazioni altamente parallelizzabili (algoritmo di fattorizzazione di Shor). Servono nuovi algoritmi di crittografia post-quantistica.
Altri tipi di crittografia:
- Crittografia simmetrica
- Crittografia asimmetrica
- Crittografia ellittica
La crittografia ellittica è una tipologia di crittografia a chiave pubblica basata sulle curve ellittiche definite su campi finiti. Le chiavi pubbliche si basano sulla creazione di un problema matematico molto difficile da risolvere senza informazioni, ma che con l'utilizzo di alcune informazioni (la chiave) diventa di semplice e rapida risoluzione. L'utente distribuisce pubblicamente il problema (la chiave pubblica) e tiene nascoste le informazioni aggiuntive (la chiave privata).
Steganografia è una tecnica che si prefigge di nascondere la comunicazione tra due interlocutori. Generalmente, i messaggi nascosti sembrano essere (o fanno parte di) qualcos'altro: immagini, documenti o un altro testo di copertura. La steganografia, al contrario della crittografia, consente di
nascondere un messaggio all'interno di un vettore che possa consentirne il trasporto senza destare sospetti. I file multimediali sono ideali per la trasmissione steganografica a causa della loro grande dimensione. Ad esempio, un mittente potrebbe inviare un file di immagine innocuo e regolare il colore di un pixel ogni cento per farlo corrispondere a un carattere alfabetico: la modifica è così sottile che qualcuno che non lo cerca in modo specifico è improbabile che noti la modifica. La chiave è l'immagine originale da cui, per differenza, ricavo il messaggio.
La steganografia si pone come obiettivo di mantenere nascosta l'esistenza di dati a chi non conosce il protocollo di occultamento, mentre per la crittografia è non rendere accessibili i dati nascosti a chi non conosce la chiave, cioè di nascondere il contenuto del messaggio. La steganografia può trovare uso in ogni forma di comunicazione: è sufficiente che mittente e
destinatario abbiano concordato un codice non vincolato ai normali simboli alfabetici. Esempio: Alice e Bob si accordano sull'uso di un sistema steganografico in cui il numero di virgole presente in una singola pagina sarà tra 1 e 26 e questo numero corrisponderà a una lettera dell'alfabeto (le lettere, concatenate tra loro, costituiscono il messaggio reale).
Nella steganografia si hanno due tipi di messaggi: il primo detto messaggio contenitore e il secondo detto messaggio segreto, dove rispettivamente uno ha il compito di nascondere il contenuto dell'altro, in modo tale da renderlo nascosto e non visibile agli altri.
10. Crittografia 7
Una prima classificazione dei modelli steganografici si divide in steganografia iniettiva e steganografia generativa:
Steganografia iniettiva: è la più utilizzata, consiste nell'inserire (iniettare) il messaggio segreto all'interno di un altro messaggio che funge da contenitore, in modo tale da non risultare
visibile all'occhio umano.
Steganografia generativa: consiste nel prendere il messaggio segreto e costruirgli un opportuno contenitore in modo tale da nascondere il messaggio nel miglior modo possibile.
LSB (Least Significant Bit) è la tipologia di steganografia più diffusa. Si basa sulla teoria secondo la quale l'aspetto di un'immagine digitale ad alta definizione non cambia se i colori vengono modificati in modo impercettibile.
Ogni pixel è rappresentato da un colore differente: cambiando il bit meno significativo di ogni pixel, il singolo colore non risulterà variato in modo significativo e il contenuto dell'immagine sarà preservato nonostante questa manipolazione.
Chi analizzerà il dato steganografico avrà davanti a sé un'immagine plausibile e, pur conoscendo l'algoritmo, avrà bisogno del dato originale per verificare se c'è un messaggio nascosto. È sempre possibile un attacco di
tipo forza bruta, avendo chiaro l'algoritmo e il dato da forzare, come avviene nella crittografia. Un software di steganografia può ricevere in input la chiave (K) e il dato (D) e generare autonomamente un dato steganografato.
Watermark
Watermark è il termine che si riferisce all'inclusione di informazioni all'interno di un file multimediale o di altro genere, che può essere successivamente rilevato o estratto per trarre informazioni sulla sua origine e provenienza. Le informazioni possono essere evidenti per l'utente del file (per esempio nel caso di una indicazione di copyright applicata in sovraimpressione su una immagine digitale) o latenti (nascoste all'interno del file); in quest'ultimo caso il watermarking può essere considerato una forma di steganografia.
Certificato digitale
Un certificato digitale è un documento elettronico che attesta l'associazione univoca tra una chiave pubblica e
l'identità di un soggetto. Il certificato digitale contiene: Informazioni sulla chiave Informazioni sull'identità del proprietario (soggetto) La firma digitale di un'entità che ha verificato i contenuti del certificato (emittente) Se la firma è valida e l'applicazione che esamina il certificato si affida all'emittente, allora può utilizzare tale chiave per comunicare in modo sicuro con il soggetto del certificato. Tale certificato, fornito da un ente terzo fidato e riconosciuto (trusted) come certification authority (CA), è a sua volta autenticato per evitarne la falsificazione sempre attraverso firma digitale, ovvero cifrato con la chiave privata della CA, la quale fornisce poi la rispettiva chiave pubblica associata per verificarlo. Il formato più comune per i certificati di chiave pubblica è definito da X.509, che prevede la presenza dei seguenti campi: Periodo di validità: fondamentale, in quantoun'entità potrebbe non esistere più (azienda chiusa/fallita) oppure non si sia preoccupata di rinnovare il certificato. Un certificato viene pagato per un certo numero di anni. Soggetto: - Nome dell'autorità pubblica - Chiave pubblica - Firma digitale dell'autorità emittente - Scopi d'uso del certificato - Nomi alternativi del soggetto (email, IP, URL, etc.) - Estensioni private utilizzabili, ad esempio, a livello di azienda: un'azienda può emettere certificati utilizzabili solo al suo interno, non venendo riconosciuto a livello di CA. Il certificato digitale è impossibile da duplicare o falsificare e può essere facilmente verificato online dal possibile acquirente. 10. Crittografia 9PKI (Public Key Infrastructure) Registration Authority (RA): identifica il soggetto. Certification Authority (CA): genera i certificati, garantendo la corrispondenza tra una