Tutoriel de cryptographie Tutoriel de cryptographie

Simon Guillem-Lessard
Projet de fin d'étude 2001-2002
Département des mathématiques et de l'informatique
Université du Québec à Trois-Rivières


Table Des Matières
 Chiffrements par blocs
 Rijndael

Introduction

Rijndael a été conçu par Joan Daemen et Vincent Rijmen, deux chercheurs de la Belgique, dans le but de devenir un candidat à l'Advanced Encryption Standard (AES) du NIST. Après avoir réussi à se classer dans les six premiers, Rijndael a été choisi le standard en 2000, prenant la place du premier véritable standard de la cryptographie : le DES.

Le chiffrement a une longueur de bloc variable, une longueur de clé variable et un nombre de rounds variables. Par contre, Rijndael version "AES" est restreint à des longueurs de clé de 128, 192 et 256 bits avec une longueur de bloc fixée à 128 bits.

Trois critères principaux ont été respectés dans sa conception :


· Résistance face à toutes les attaques connues;
· rapidité du code sur la plus grande variété de plates-formes possible;
· simplicité dans la conception.

Rijndael (1998) a été fortement influencé par son prédécesseur, l'algorithme Square (1997). Les algorithmes Crypton et Twofish utilisent aussi des opérations de Square.

Rijndael se prononce "Rain Doll".

Algorithme

Comme la plupart des chiffrements par blocs modernes, le chiffrement s'effectue en deux parties : une procédure d'expansion de la clé et la fonction principale de chiffrement.

Chiffrement

La fonction de chiffrement se divise en trois : une transformation initiale avec la clé (l'étape "Add Round Key", bloc XOR clé), une série de rounds puis une transformation finale.

Le nombre de rounds s'établit en fonction de la taille des blocs et de la clé :

· 9 rounds si la taille des blocs et de la clé sont de 128 bits,
· 11 rounds si la taille des blocs ou de la clé est de 192 bits (maximum),
· 13 rounds si la taille des blocs ou de la clé est de 256 bits.

Dans un round, quatre transformations sont appliquées au bloc à chiffrer.

Source        

La première étape est appelée "Byte Sub". Chaque octet des sous-blocs est alors substitué selon une S-Box. Cette opération augmente la non-linéarité des données.

Ensuite, l'étape "Shift Row" décale les bits des sous-blocs. La taille des sous-blocs dépend de la taille des blocs. Par exemple, pour des blocs de 128 bits, les sous-blocs ont une taille de 16 bits :

1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
1 5 9 13
14 2 6 10
11 15 3 7
8 12 8 4

Cette étape augmente la diffusion des données dans le round.

En troisième lieu, l'étape appelée "Mix Column" est appliquée. L'opération utilisée est la multiplication d'une matrice aux sous-blocs de 16 bits, toujours dans le cas d'un bloc de 128 bits. La matrice est représentée par :

1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

Cette étape augmente la diffusion des données entre les rounds. À noter que les octets utilisés dans la multiplication sont traités comme des polynômes plutôt que des nombres.

L'étape finale est appelée "Add Round Key". Cette étape est simplement l'addition des sous-clés aux sous-blocs correspondants.

Déchifffement


Le déchiffrement est l'inverse du chiffrement.

Considérations

Rijndael peut être implémenté sur plusieurs architectures matérielles et une grande variété de processeurs. Étant devenu l'AES proposé, il sera prochainement utilisé par le gouvernement des États-Unis, les banques et les logiciels de chiffrements importants.

Il n'est aucunement question que Rijndael soit breveté, son utilisation est libre de droit.



Pour en savoir plus
· Page officielle :
http://www.rijndael.com
· Codes sources C/C++/Java :
http://www.rijndael.com/implementations.html
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/rijndael-fst-3.0.zip
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/rijndael.zip
ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/rijndael/
/codes/rijndael/
· Application :
http://aes.crockatt.com/


.Sources. .Haut de page.


Algorithmes Importants

  Systèmes à clé privée

     Blowfish

     DES

     IDEA

     RC2, RC5, RC6

     RC4

     Rijndael

     SEAL

     TripleDES

  Systèmes à clé publique

     Diffie-Hellman

     DSA

     PGP

     RSA

  Fonctions de hachage

     MD2, MD4, MD5

     RIPEMD-128, RIPEMD-160

     SHA0, SHA1

     Tiger

  Protocoles Web

     SSL

     SHTTP