RC2
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 | |
Progettisti | Ronald Rivest |
Prima pubblicazione | sviluppato nel 1987, svelato nel 1996 |
Dettagli | |
Dimensione chiave | da 8 a 128 bit, con incrementi di 8 bit (default: 64 bit) |
Dimensione blocco | 64 bit |
Struttura | Rete di Feistel |
Numero di passaggi | 18 (16+2) |
Migliore crittanalisi | |
Un attacco correlato alla chiave è attuabile con 234 testi in chiaro scelti (Kelsey ed aa.vv., 1997) | |
Storia
modificaLo 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
modificaL'RC2 lavora su blocchi dati di 64 bit con una chiave di lunghezza variabile da 8 a 128 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
modificaL'RC2 è vulnerabile ad un attacco correlato alla chiave attuato con 234 testi in chiaro scelti[1].
Note
modificaBibliografia
modifica- Lars Knudsen, Vincent Rijmen, Ronald Rivest, Matt Robshaw: On the Design and Security of RC2 - Fast Software Encryption 1998
- John Kelsey, Bruce Schneier, David Wagner: Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X, NewDES, RC2 e TEA - ICICS 1997
- Steven Levy: Crypto: How the Code Rebels Beat the Government Saving Privacy in the Digital Age - 2001 - ISBN 0-14-024432-8
Voci correlate
modificaCollegamenti esterni
modifica- RFC 2268 - Una descrizione dell'algoritmo di cifratura RC2
- RSA FAQ: What is RC2?, su rsasecurity.com (archiviato dall'url originale il 30 dicembre 2006).
- Il post originale su sci.crypt che mostrava l'algoritmo RC2, su groups.google.com.