Introduzione alla crittoanalisi

security

Con il termine crittoanalisi si intende l’analisi di un testo cifrato nel tentativo di decodificarlo senza possedere la chiave, ossia di “effrangere” un sistema crittografico.

È caratterizzata da un’assunzione fondamentale, proposta per la prima volta da Dutchmann A. Kerckhoffs: il crittoanalista conosce l’algoritmo crittografico utilizzato.

Quindi il crittoanalista è libero di utilizzare tutti i mezzi a sua disposizione per risalire al testo in chiaro: un tentativo di “effrazione” prende il nome di attacco.

Continua »

Differenze tra crittografia a chiave simmetrica e pubblica

crittografia

Dopo aver visto alcuni esempio di algoritmi di crittografia a chiave simmetrica e a chiave pubblica, vedremo in questo articolo di fare un confronto tra i due sistemi, partendo comunque dal presupposto che queste operano in due ambiti diversi e che la crittografia a chiave pubblica non rappresenta il sostituto di quella a chiave segreta.

Il primo e più evidente vantaggio portato dalla crittografia a chiave asimmetrica riguarda la gestione delle chiavi (scambio e conservazione).

Nella crittografia a chiave simmetrica, la chiave di decodifica coincide (o può essere facilmente ricavata) da quella di codifica, cosicché questa non può essere di pubblico dominio. I due interlocutori quindi devono necessariamente concordare la chiave da utilizzare. Questo implica una fase di scambio delle chiavi, che può avvenire tramite l’incontro dei due interlocutori o attraverso la spedizione su un canale assolutamente sicuro.

Continua »

L’algoritmo di crittografia Diffie-Hellman

diffie-hellman

In questo articolo presenteremo l’implementazione originale e la più semplice dell’algoritmo di crittografia a chiave pubblica Diffie-Hellman, che porta proprio il nome dei “padri” della crittografia asimmetrica.

Nel 1976 Diffie ed Hellman hanno descritto un protocollo per lo scambio di una chiave segreta sopra un canale insicuro; tale meccanismo era stato inteso essenzialmente per risolvere il problema dell’avvio di un normale sistema di cifratura a chiavi simmetriche, quale il DES, ma in realtà ha posto le basi della crittografia a chiavi pubbliche.

Continua »

L’algoritmo RSA

RSA

Presentiamo in questo articolo un primo esempio di algoritmo di crittografia a chiave pubblica: RSA.

Nel 1978 Ronald Rivest, Adi Shamir e Leonard Adleman, tre giovani professori del MIT, sviluppano la prima applicazione pratica basata sulle tecniche di crittografia a doppia chiave, che prenderà il nome di algoritmo RSA, dalle iniziali dei suoi tre inventori.

L’idea di RSA è molto semplice e si basa sulla difficoltà di fattorizzare “grandi” numeri (”large numbers”): mentre è molto facile moltiplicare tra di loro due “grandi” numeri primi, risulta difficile fattorizzare il loro prodotto. In questo modo, il prodotto può essere reso pubblico insieme alla chiave di codifica.

Continua »

L’algoritmo DES

DES

L’IBM, che per molti anni ha dominato incontrastata il mondo dei computer, introdusse nel 1975, anche se l’algoritmo fu pubblicato nel 1977, un suo cifrario espressamente progettato per l’uso informatico: il Data Encryption Standard o DES.

In realtà, l’algoritmo inizialmente si chiamava DEA (Data Encryption Algorithm) e fu presentato al bando di concorso richiesto dall’NSA (National Security Agency, l’agenzia governativa americana preposta alla sicurezza dei dati governativi) al National Bureau of Standars (NBS), oggi divenuto NIST (National Institute of Standard and Technology) per trovare un algoritmo da adottare come standard per la crittografia dei dati riservati del Governo Americano.

Continua »

La crittografia a chiave pubblica

security

La crittografia a chiave pubblica rappresenta una rivoluzione rispetto alla crittografia tradizionale.

Proprio con queste parole (”Siamo all’inizio di una rivoluzione nella crittografia”) infatti, nel Maggio 1976, Whitfield Diffie e Martin Hellman, due ricercatori della Stanford University, annunciano la nascita della crittografia a chiave pubblica nell’articolo “New Direction in Cryptography“, pubblicato su “IEEE Transactions on Information Theory” del Novembre 1976.

Contrariamente alla crittografia a chiave segreta, la crittografia a chiave pubblica prevede l’utilizzo di due chiavi distinte: una detta chiave pubblica e l’altra detta chiave privata.

Continua »

Il metodo di Vigenere

vigenere

Il metodo di Vigenere è il classico esempio di metodo di sostituzione polialfabetica.

Fu inventato da Blaise de Vigénère nel 1586, anche se creò un codice più sofisticato, ma il suo nome rimase associato a questo codice più debole.

Si può dire che il codice di Vigénere è più sicuro di una semplice sostituzione monoalfabetica. Vigénère propose l’uso della tavola quadrata, composta da alfabeti ordinati spostati. Introdusse poi nel suo uso il verme letterale proposto da Della Porta, ottenendo una cifra in verità più debole e più scomoda delle precedenti.

Il metodo Vigénère ebbe una fortuna immediata e fu molto usato nell’ambito militare anche dopo che ne fu scoperto il metodo di decfratura.

Continua »

Il metodo di Playfair

Lyon_Playfair

Inventato nel 1854 da Sir Charles Wheatstone (anche se porta il nome del suo amico, il barone Playfair di St. Andrews), il metodo di Playfair è indubbiamente il metodo di sostituzione a blocchi (”mutiple-letter encryption“) più conosciuto.

L’algoritmo si basa sull’uso di un vettore 5×5 di lettere, costruita partendo da una parola chiave.

Vediamone un esempio:

Continua »

Il codice di Cesare

Il cifrario di Cesare è sicuramente il più famoso e al tempo stesso il più semplice metodo di crittografia a sostituzione (monoalfabetica).

Come si evince dal nome, fu inventato da Giulio Cesare e grazie all’opera del II secolo d.C. “La vita dei 12 Cesari” di Svetonio, disponiamo della descrizione precisa della scrittura segreta per sostituzione usata dall’imperatore.

L’idea alla base è molto semplice: ogni lettera dell’alfabeto (in italiano nel nostro esempio) viene sostituita con quella che si trova 3 posizioni avanti nell’alfabeto stesso.

Continua »

La crittografia a chiave simmetrica e a chiave pubblica

crittografia

Nell’articolo precedente abbiamo introdotto la crittografia, il suo significato e abbiamo visto la corretta terminologia.

In questo invece introdurremo i due principali sistemi di crittografia.

In generale, i sistemi di crittografia vengono divisi in due grandi classi: la crittografia a chiave simmetrica (o segreta) e a chiave pubblica (o a chiave asimmetrica).

Continua »