s
19 708 Pages

RC6
RC6 Cryptographie Algorithm.JPG
la Feistel Fonction algorithme RC6
général
Les concepteurs Ron Rivest, Matt Robshaw, Ray Sidney, Yiqun Lisa Yin
première publication 1998
dérivé de RC5
détails
Taille clé 128, 192, ou 256 bits
Taille du bloc 128 bits
structure Réseau de Feistel
Nombre de passes 20

En cryptographie, RC6 est un chiffrement par bloc à clé symétrique dérivé de RC5. Il a été conçu par Ron Rivest, Matt Robshaw, Ray Sidney et Yiqun Lisa Yin pour répondre aux exigences de la concurrence ont demandé Advanced Encryption Standard (AES), une norme de cryptage adoptée par le gouvernement américain. L'algorithme a été l'un des cinq finalistes, et a également été présenté aux projets NESSIE et CRYPTREC. Il est un algorithme exclusif, breveté par RSA Security.

description

Le RC6 travaille sur blocs 128 bit et supports clés 128, 192 et 256 bits, mais, comme le RC5, peuvent être faites paramétrique pour supporter une large gamme de longueurs de mot, la taille de la clé et le nombre de passes. Le RC6 est très similaire à la structure all'RC5, en utilisant des rotations qui dépendent de données, additions modulaires et les opérations de XOR; en fait, la RC6 pourrait être considéré comme deux processus de chiffrement RC5 parallèle « tordu. » Cependant, les utilisations RC6 autre opération de multiplication non présent dans RC5 afin de rendre par chacun d'un bit de la rotation dépendant mot, et pas seulement le moins significatif.

Chiffrage / déchiffrage

// chiffrement / déchiffrement avec RC6-w / r / b
// 
// entrée: Plaintext stockées dans quatre registres d'entrée A, B, C et D
// taille égale à w bits
// r est le nombre d'étapes clés de l'itération S [0, ..., 2r + 3]
// taille égale à w bits
// 
// sortie: cryptogramme mémorisé dans A, B, C, D
// 
// « » « Comment Chiffrer: » « »
B = B + S[0]
 =  + S[1]
pour la = 1 à r faire
{
t = (B(2B + 1)) <<< lg w
u = ((2 + 1)) <<< lg w
A = ((A ^ t) <<< u) + S[2la]
C = ((C ^ u) <<< t) + S[2la + 1]
(A, B, C, )  =  (B, C, , A)
}
A = A + S[2r + 2]
C = C + S[2r + 3]
// « » « Comment Décrypter: » « »
C = C - S[2r + 3]
A = A - S[2r + 2]
pour la = r downto 1 faire
{
(A, B, C, ) = (, A, B, C)
u = (.(2 + 1)) <<< lg w
t = (B.(2B + 1)) <<< lg w
C = ((C - S[2la + 1]) >>> t) ^ u
A = ((A - S[2la]) >>> u) ^ t
}
 =  - S[1]
B = B - S[0]

licence

Étant donné que le RC6 a été sélectionné comme algorithme pour Advanced Encryption Standard, il est pas garanti d'être libre. En Janvier 2007, page Web sur le site officiel des développeurs RC6, RSA Laboratories, a déclaré ce qui suit:

« Nous insistons sur le fait que si RC6 sera sélectionné pour AES, RSA Security pas exiger tout octroi de licence ou de paiement pour les produits en utilisant l'algorithme ».

L'accent mis sur le mot si Cela nous amène à croire que RSA Security Inc. pourrait désormais facturer des frais pour la licence pour tous les produits qui utilisent l'algorithme RC6. RC6 est un algorithme de cryptage propriétaire (États-Unis brevet 5724428 et États-Unis brevet 5835600 ).

Articles connexes

références

liens externes