Rémy REY (avec Philippe Elbaz-Vincent) : Implémentation et analyse de cryptographie boîte blanche

De Ensiwiki
Aller à : navigation, rechercher


Implantation AES Boîte Blanche

Labo Institut Fourier

Encadrants Philippe.Elbaz-Vincent@ujf-grenoble.fr

Rémy REY (Internet Système et Services Connectés) Rapport disponible ici : Fichier:Reyr aes whitebox.pdf

Introduction

Nous nous attaquons à la conception de cryptosystèmes boîte blanche, c'est à dire de système permettant de crypter ou de décrypter sans révéler la clef lors de l'execution. Les applications sont diverses mais la principale motivation est l'élaboration de DRM (Gestionnaire de Droits Numériques) pour protéger des contenus multimédias (films, musiques, jeux vidéos etc.). En effet un tel système permet de chiffrer les contenus et de les déchiffrer à la volée, sur la machine du client et sans lui fournir le fichier en clair.

Algorithme étudié

L'algorithme que nous étudions est l'Advanced Encryption Standart (AES). C'est une référence en cryptographie symétrique depuis 2000 élaborée par Joa Daemen et Vincent Rijmen. Vous pouvez retrouver la publication officielle du standart ou une animation expliquant les diverses opérations. C'est un algorithme de chiffrement par bloc qui opère sur des blocs de 128 bits. En entrée, nous devons également fournir une clef de 128 bits (ou 192, ou 256). L'algorithme effectue un certain nombre d'opérations de différentes nature qu'il répète dans des rondes (itérations).

La protection

Pour protéger l'algorithme, on tabule toutes les opérations, c'est à dire qu'on précalcule les résultats en fonction des entrées. Le programme est alors composé de différentes tables auxquelles on accède successivement. Comme les calculs se font à l'aide d'une clef, quand on instancie un programme, on fixe cette clef dans l'implantation. Ensuite, on encode ces tables à l'aide de bijections réciproques aléatoires. Chaque table représente un ensemble d'opération, son entrée est encodée par la bijection réciproque de celle qui encode la table précédente. Ainsi en 'composant' les deux tables, on retrouve l'opération voulue. Exemple de composition de boîtes calculant F composée avec G : (F \circ Enc) \circ (Enc^{-1} \circ G) = F \circ G On utilise des bijections de nature différentes pour assurer les critères de diffusion et de confusion sur les boîtes.

Résultats

Au final, nous avons un programme générateur, capable d'instancier une implantation boîte blanche avec une clef donnée. L'implantation possède une grande partie d'aléatoire, ce qui fait qu'on peut la changer sans toucher à la clef. On dispose également d'un schéma détaillé qui explique au niveau d'une ronde les différentes tables générées et l'agencement des opérations. L'implantation n'est pas offusquée, ce qui rend la cryptanalyse beaucoup plus facile (praticable avec une puissance de calcul raisonnable). Reyr aes schema.png


Conclusion

Le travail effectué permet une première approche de la cryptographie boîte blanche. Cependant il ne constitue encore qu'une ébauche très vulnérable. C'est un domaine de recherche encore dépourvu de modèle générique. L'élaboration de proposition de boîtes blanche permettra peut être de dégager des concepts plus généraux applicables à l'ensemble des algorithmes de cryptographie.