• Aucun résultat trouvé

Schéma général d’un chiffrement par bloc : Réseau de Substitution et Per-

2.2 Sûreté de fonctionnement : Définition de la confiance

3.1.2 Schéma général d’un chiffrement par bloc : Réseau de Substitution et Per-

Shannon [202] définit la fonction de chiffrement comme une cascade de substitutions

(permet-tant la confusion de l’information) et de permutations (permet(permet-tant la diffusion de l’information).

Ainsi la plupart des chiffrements par blocs actuels est constituée d’une suite de compositions de

fonctions intégrant ces deux grandes opérations. La structure en "réseau de substitution et

permu-tation" [96] (nous la noterons SPN dans la suite pour Subtitution-Permutation Network en anglais)

regroupe les chiffrements par blocs les plus utilisés.

SoitS(P,C,K, E, D)un chiffre symétrique. En pratique nous aurons :

– P = C = {0; 1}navec64 ≤n ≤256la taille de bloc (taille du message et du chiffré en

nombre de bits).

– K={0; 1}kavec56≤k≤512la taille de clé.

Les chiffres par blocs sont également appelés chiffres itératifs car ils sont construits par

pro-duits de chiffres (voir section précédente). C’est par le produit de chiffres plus simples (appelés

rondes ou toursSi) qu’un chiffre est construitS = S1×S2 × · · · ×SRde sorte que la clé

se-crète doit être choisie dans l’ensembleK1× K2× · · · × KR. En pratique, de façon à ne pas faire

augmenter trop librement la taille de la clé secrète, les clésK1, K2,· · ·, KR (appeléesclés de

rondes) sont dérivées à partir d’une clé maître ; véritable clé secrète du chiffre. Cette opération est

l’expansion de clé, elle constitue une partie essentielle du chiffrement et est faite par

l’intermé-diaire d’un algorithmegénération de clésqui peut-être vu comme un générateur pseudo-aléatoire

prenant la clé maître pour graine.

La figure 3.1 représente un algorithme de chiffrement par bloc dans sa forme la plus générale.

de clés

Génération

SR: Ronde R

K1

Clé secrète∈ K

Message Clair∈ P

Message Chiffré∈ C

KR

K2

S1: Ronde 1

S2: Ronde 2

FIG. 3.1 – Schéma général d’un chiffrement itératif

3.1.2.1 Réseau de Substitution et Permutation

(Transposition de bits)

Permutation

Substitution non−linéaire

Mélange

XOR

n=l×mbits

Transformation Linéaire :L

surlbits S S S S S S

Clé de Rondei

Clé de Rondei+ 1

Rondei

Considérons maintenant une ronde seule. D’après la remarque faite par Shannon, cette ronde

doit faire intervenir à la fois de la confusion et de la diffusion. La figure 3.2 illustre un exemple

de réseau de substitution et permutation, ainsi une ronde est constituée de trois éléments (dans cet

ordre pour une structure SPN) :

– Une fonction qui mélange la clé de ronde avec le message clair.

– Une zone de confusion. Elle est constituée deboîtes de substitution, nommées boîtes-S

dans la suite (S-Boxen anglais). Ces fonctions travaillent sur une fraction de l’entrée, leur

taille d’entrée varie selon le chiffre mais ne dépasse généralement pas 8 bits. Ces boîtes sont

limitées en taille pour plusieurs raisons. Tout d’abord, augmenter la taille rend la

construc-tion plus difficile car ces boîtes suivent des contraintes de non-linéarité très fortes. D’autre

part, la non-linéarité des boîtes rend leur implémentation matérielle ardue et coûteuse. La

complexité augmenterait avec la taille des boîtes.

– Unezone de diffusion. Elle contient une application linéaire oufonction de diffusion

per-mettant de répartir la redondance du message en diffusant des parties du message à travers

la totalité du message.

Remarque 3 Il peut arriver que les zones de diffusion et de confusion soient échangées, nous

parlerons alors de structurePSN(e.g., CS-Cipher est un chiffre de type PSN, pour plus de détails

voir chapitre 7).

3.1.2.2 Principaux chiffres par blocs

L’histoire des chiffrements par blocs modernes commence avec leData Encryption Standard,

notéDES, qui est accepté en 1977 par leNBS(National Bureau of Standart) sous la norme FIPS

PUB 46. Bien que présentant des faiblesses, il est encore aujourd’hui largement utilisé à travers

le monde. En 2000, après un concours international proposé par le NIST ("National Institute Of

Standart and Technology", successeur du NBS), un nouveau standard fut accepté pour remplacer

le chiffre DES :AES, pourAdvanced Encryption Standardsous la norme FIPS 197.

Mis à part ces deux standards, qui jouissent d’une notoriété particulière, de multiples chiffres par

blocs ont été développés et utilisés depuis ces 20 dernières années. Nous noterons, par exemple :

IDEA, proposé par Xuejia Lai et James Massey au début des années 90 [133],GOST, équivalent

du DES pour l’ex-Union soviétique [168],Blowfish, développé par Bruce Schneier en 1993 [195],

SAFER, proposé par James Massey en 1993 [147] (et ses successeurs SAFER+ et SAFER++),

CS-Cipher, proposé par Jacques Stern et Serge Vaudenay en 1998 [205] il fera l’objet d’étude du

chapitre 7, Camellia, un standard de chiffrement Japonais, proposé par Aoki et al. en 2000 [7],

Serpent, conçu par Ross Anderson, Eli Biham et Lars Knudsen pour le concours AES dont il fait

partie des 6 finalistes [5],FOX, publié par Pascal Junod et Serge Vaudenay en 2004 [108], basé

sur le schéma de IDEA et aujourd’hui breveté par la société Mediacrypt (sous le nom de IDEA

NXT), ... et tant d’autres.

3.1.2.3 Modes opératoires

Les modes opératoires sont là pour pallier au fait que les chiffres par blocs ont une taille de

message fixée. Ils définissent la marche à suivre pour chiffrer un message de longueur arbitraire.

Les premiers modes opératoires sont spécifiés dans la norme FIPS PUB 81 [164] du NIST. Ils ont

été créés pour le chiffre DES et peuvent être utilisés pour assurer la confidentialité du message ou à

des fins d’authentification. A l’heure actuelle, de nombreux modes opératoires ont été développés.

Certains intègrent les deux fonctionnalités en même temps (confidentialité et authentification).

Voir, par exemple, les modes acceptés par le NISThttp://csrc.nist.gov/groups/ST/

toolkit/BCM/current_modes.htmlet les modes proposés au NIST, en cours de

valida-tion :http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.

html.

Nous reviendrons sur un mode opératoire particulier dans le chapitre 4.