Aller au contenu principal

B.2.4 RC5-CBC-Pad

RC5-CBC-Pad est l'algorithme de chiffrement RC5 [RC5] en mode CBC avec l'opération de remplissage spécifiée dans le RFC 5652 [RFC5652], qui est une généralisation de l'opération de remplissage spécifiée dans le RFC 1423 [RFC1423]. Le schéma est entièrement spécifié dans [RFC2040]. RC5-CBC-Pad a une longueur de clé variable, de 0 à 256 octets, et prend en charge à la fois une taille de bloc de 64 bits et une taille de bloc de 128 bits. Pour la première, il a un vecteur d'initialisation de huit octets, et pour la seconde, un vecteur d'initialisation de 16 octets. RC5-CBC-Pad a également un nombre variable de "tours" dans l'opération de chiffrement, de 8 à 127.

Note: Pour RC5 avec une taille de bloc de 64 bits, la chaîne de remplissage est telle que définie dans le RFC 1423 [RFC1423]. Pour RC5 avec une taille de bloc de 128 bits, la chaîne de remplissage consiste en 16-(||M|| mod 16) octets ayant chacun la valeur 16-(||M|| mod 16).

L'identificateur d'objet rc5-CBC-PAD [RFC2040] identifie le schéma de chiffrement RC5-CBC-Pad:

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

Le champ parameters associé à cet OID dans un AlgorithmIdentifier DOIT avoir le type 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 }

Les champs du type RC5-CBC-Parameters ont les significations suivantes:

  • version est la version de l'algorithme, qui DOIT être v1-0.

  • rounds est le nombre de tours dans l'opération de chiffrement, qui DOIT être entre 8 et 127.

  • blockSizeInBits est la taille de bloc en bits, qui DOIT être 64 ou 128.

  • iv est le vecteur d'initialisation, une chaîne de huit octets pour RC5 64 bits et une chaîne de 16 octets pour RC5 128 bits. La valeur par défaut est une chaîne de la longueur appropriée consistant en des octets zéro.