RC2
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) | |
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").
Storia
[modifica | modifica wikitesto]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 | modifica wikitesto]L'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
[modifica | modifica wikitesto]L'RC2 è vulnerabile ad un attacco correlato alla chiave attuato con 234 testi in chiaro scelti[1].
Note
[modifica | modifica wikitesto]Bibliografia
[modifica | modifica wikitesto]- 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
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- 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.