RC6
En cryptographie, RC6 est un code à blocs à clés symétriques dérivé de RC5. RC6 est un algorithme paramétré avec une taille de bloc variable, une taille de clé variable et un nombre de tours variable. RC signifie "Rivest Cipher", ou alternativement, "Ron's Code".
En 1997, le NIST a annoncé un concours pour choisir le successeur du Data Encryption Standard (DES) qui sera connu sous le nom d'Advanced Encryption Standard (AES). Le RC6 a été dérivé du RC5 pour répondre aux exigences du concours, et a été sélectionné comme l'un des cinq finalistes du concours AES (Advanced Encryption Standard), mais n'a pas été retenu comme norme.
Afin d'offrir une variété de niveaux de sécurité et d'efficacité, le RC6 permet de choisir la taille du bloc : 32 bits (à des fins d'expérimentation et d'évaluation uniquement), 64 bits (pour remplacer le DES) et 128 bits (destiné à l'AES). Le nombre de tours peut aller de 0 à 255, tandis que la taille des clés peut aller de 0 à 2040 bits.
Le RC6 est très similaire au RC5 dans sa structure et pourrait être considéré comme l'imbrication de deux processus de cryptage RC5 parallèles. Cependant, RC6 utilise une opération de multiplication supplémentaire non présente dans RC5 et l'utilisation de quatre registres de travail b/4 bits (voir division des blocs de texte en clair dans le chiffrement feistel) au lieu de deux registres b/2 bits comme dans RC5 (b est la taille du bloc). La multiplication des nombres entiers est utilisée pour augmenter la diffusion obtenue par tour, de sorte que moins de tours sont nécessaires et que la vitesse du chiffrement peut être augmentée.
La raison de l'utilisation de quatre registres de travail au lieu de deux est principalement l'optimisation sur les processeurs 32 bits. La taille de bloc par défaut du RC5 était de 64 bits, tandis que la taille de bloc par
défaut de l'AES est de 128 bits. Le RC5 n'a que deux registres de travail. Il utilise des opérations de 32 bits lorsqu'il traite des blocs de 64 bits et des opérations de 64 bits lorsqu'il traite des blocs de 128 bits, de sorte que quatre registres de travail sont nécessaires pour construire l'architecture AES en utilisant uniquement des opérations de 32 bits.
RC6 est un algorithme propriétaire et breveté (par RSA Security U.S. Patent 5,724,428 et U.S. Patent 5,835,600 ), et peut nécessiter le paiement de licences et de redevances pour tout produit utilisant l'algorithme. Il a été conçu par Ron Rivest, Matt Robshaw, Ray Sidney et Yiqun Lisa Yin, et a également été soumis aux projets NESSIE et CRYPTREC.
Questions et réponses
Q : Qu'est-ce que le RC6 ?
R : RC6 est un algorithme de chiffrement par blocs à clé symétrique dérivé de RC5. Il s'agit d'un algorithme paramétré dont la taille des blocs, la taille des clés et le nombre de tours sont variables.
Q : Qui a conçu le RC6 ?
R : Le RC6 a été conçu par Ron Rivest, Matt Robshaw, Ray Sidney et Yiqun Lisa Yin.
Q : Quelle est la taille des blocs par défaut pour RC5 et AES ?
R : La taille de bloc par défaut du RC5 est de 64 bits, tandis que celle de l'AES est de 128 bits.
Q : Comment la structure de RC6 se compare-t-elle à celle de RC5 ?
R : La structure de RC6 est très similaire à celle de RC5, mais elle utilise une opération de multiplication supplémentaire qui n'existe pas dans ce dernier, ainsi que quatre registres de travail b/4 bits au lieu de deux registres b/2 bits.
Q : Pourquoi utilise-t-on quatre registres de travail au lieu de deux pour construire l'architecture AES en utilisant uniquement des opérations sur 32 bits ?
R : La multiplication des nombres entiers est utilisée pour augmenter la diffusion réalisée par tour, de sorte que moins de tours sont nécessaires et que la vitesse peut être augmentée. Quatre registres de travail sont nécessaires parce que des opérations de 32 bits sont utilisées pour traiter des blocs de 64 bits et des opérations de 64 bits pour traiter des blocs de 128 bits.
Q : Les produits utilisant l'algorithme doivent-ils faire l'objet d'une licence ou d'une redevance ?
R : Oui, étant donné qu'il s'agit d'un algorithme propriétaire et breveté (par RSA Security U.S. Patent 5,724,428 et U.S. Patent 5,835,600 ), des licences et des redevances peuvent être exigées pour tout produit utilisant l'algorithme.