Passa al contenuto principale

B.2.4 RC5-CBC-Pad

B.2.4 RC5-CBC-Pad

RC5-CBC-Pad è l'algoritmo di cifratura RC5 [RC5] in modalità CBC con l'operazione di riempimento specificata in RFC 5652 [RFC5652], che è una generalizzazione dell'operazione di riempimento specificata in RFC 1423 [RFC1423]. Lo schema è specificato completamente in [RFC2040]. RC5-CBC-Pad ha una lunghezza della chiave variabile, da 0 a 256 ottetti, e supporta sia una dimensione di blocco di 64 bit che una dimensione di blocco di 128 bit. Per la prima, ha un vettore di inizializzazione di otto ottetti, e per la seconda, un vettore di inizializzazione di 16 ottetti. RC5-CBC-Pad ha anche un numero variabile di "round" nell'operazione di cifratura, da 8 a 127.

Nota: Per RC5 con una dimensione di blocco di 64 bit, la stringa di riempimento è come definita in RFC 1423 [RFC1423]. Per RC5 con una dimensione di blocco di 128 bit, la stringa di riempimento consiste di 16-(||M|| mod 16) ottetti ciascuno con valore 16-(||M|| mod 16).

L'identificatore di oggetto rc5-CBC-PAD [RFC2040] identifica lo schema di cifratura RC5-CBC-Pad:

rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}

Il campo parameters associato a questo OID in un AlgorithmIdentifier deve avere tipo RC5-CBC-Parameters:

RC5-CBC-Parameters ::= SEQUENCE {
version INTEGER {v1-0(16)} (v1-0),
rounds INTEGER (8..127),
blockSizeInBits INTEGER (64 | 128),
iv OCTET STRING OPTIONAL }

I campi di tipo RC5-CBC-Parameters hanno i seguenti significati:

  • version è la versione dell'algoritmo, che deve essere v1-0.

  • rounds è il numero di round nell'operazione di cifratura, che deve essere compreso tra 8 e 127.

  • blockSizeInBits è la dimensione del blocco in bit, che deve essere 64 o 128.

  • iv è il vettore di inizializzazione, una stringa di otto ottetti per RC5 a 64 bit e una stringa di 16 ottetti per RC5 a 128 bit. Il valore predefinito è una stringa della lunghezza appropriata costituita da ottetti zero.