In crittografia l'RC2 è un cifrario a blocchi progettato da Ronald Rivest nel 1987 (la sigla "RC" sta per "Ron's Code" o "Rivest Cipher").

RC2
La funzione di mescolamento dell'RC2: quattro di esse costituiscono un MIXING round, un passaggio di mescolamento
Generale
ProgettistiRonald Rivest
Prima pubblicazionesviluppato nel 1987, svelato nel 1996
Dettagli
Dimensione chiaveda 8 a 128 bit, con incrementi di 8 bit (default: 64 bit)
Dimensione blocco64 bit
StrutturaRete di Feistel
Numero di passaggi18 (16+2)
Migliore crittanalisi
Un attacco correlato alla chiave è attuabile con 234 testi in chiaro scelti (Kelsey ed aa.vv., 1997)

Storia modifica

Lo sviluppo dell'RC2 fu voluto dalla Lotus Software la quale era alla ricerca di un cifrario da esportato al di fuori degli USA come algoritmo crittografico integrato nel suo Lotus Notes. A causa della ferrea regolamentazione in materia di esportazione della crittografia al di fuori del Paese che vigeva negli USA in quel periodo (e che è durata fino al 1996), Louts dovette presentare il cifrario alla NSA per il suo esame. L'NSA ricevette l'RC2 e suggerì alcune modifiche, tra cui la limitazione della lunghezza della chiave a 40 bit il massimo consentito dalla legge per l'esportazione di primitive crittografiche. Le modifiche furono apportate da Rivest molto velocemente, dato che l'algoritmo supportava già nativamente chiavi di lunghezza variabile, e l'RC2 fu così approvato nel 1989.

Inizialmente i dettagli dell'algoritmo, di proprietà di RSA Security, la società per cui lavorava Rivest, furono tenuti segreti; ma il 29 gennaio 1996 fu pubblicato da un utente anonimo sul forum sci.crypt di Usenet il codice sorgente di un algoritmo crittografico i cui risultati erano identici a quelli ottenuti dall'RC2 originale (una simile scoperta era già stata effettuata nel 1994 quando ad essere pubblicato sullo stesso forum fu il codice sorgente dell'RC4, anch'esso tenuto segreto fino ad allora): non è chiaro se chi pubblicò il codice sorgente ebbe accesso alle specifiche dell'algoritmo oppure lo ottenne mediante ingegneria inversa.

Struttura modifica

L'RC2 lavora su blocchi dati di 64 bit con una chiave di lunghezza variabile da 8 a 1204 bit. La funzione di Feistel opera sui dati con 18 passaggi: 16 sono di un tipo definito MIXING (mescolamento), che consistono di 4 applicazioni di una funzione di trasformazione denominata MIX (mostrata nel diagramma in figura), e 2 di un altro tipo definito MASHING (mescolamento).

Sicurezza modifica

L'RC2 è vulnerabile ad un attacco correlato alla chiave attuato con 234 testi in chiaro scelti[1].

Note modifica

  1. ^ Kelsey e aa.vv. - 1997

Bibliografia modifica

Voci correlate modifica

Collegamenti esterni modifica