Salsa20

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Salsa (homonymie) et 20 (nombre).

Salsa20 est un chiffrement de flux proposé au projet eSTREAM par Daniel Bernstein. Il est architecturé autour d'une fonction pseudo-aléatoire basée sur des opérations d'addition sur 32 bits, d'addition exclusive (XOR) et de rotations sur les bits, qui transforme une clé de 256 bits, un nombre pseudo aléatoire de 64 bits, et une position de flux sur 64 bits en un bloc de données en sortie de 512 bits. Cela donne la possibilité à l'utilisateur de se positionner n'importe où dans le flux de sortie. Ses performances sont de 8 à 14 cycles par bit sur les microprocesseurs modernes d'architecture x86, et raisonnables par ailleurs en mode hardware. Ce procédé n'est pas breveté et Bernstein a écrit de nombreuses mises en œuvre pour le domaine public, optimisées pour les architectures courantes[1].

Le fonctionnement interne du chiffrement, à base d'opérations binaires et de rotations sur 16 mots de 32 bits, évite les possibilités d'attaque temporelle dans les mises en œuvre logicielles.

Salsa20 accomplit 20 étapes de mélange de ses données en entrée ; cependant des versions réduites existent sous les appellations de Salsa20/8 et Salsa20/12 utilisant, respectivement, 8 et 12 étapes initiales. Ces variantes furent introduites pour compléter l'offre du Salsa20 originel, déjà performant, afin d'être plus compétitif pour les tests au banc d'essai du projet eSTREAM.

En 2005, Paul Crowley exposa une attaque par cryptanalyse différentielle en 2^{165} opérations sur Salsa20/5 [2] et remporta le prix de 1000 dollars de « la cryptanalyse la plus intéressante de Salsa20 ». En 2006, Fischer, Meier, Berbain, Biasse et Robshaw montrèrent une attaque en 2^{177} opérations sur Salsa20/6 [3].

Salsa20 a été sélectionné en phase 2 en vue d'approfondissement (Phase 2 Focus) pour la partie logicielle (profile 1) et en phase 2 pour la partie matérielle (profile 2) du projet eSTREAM[4].

Aucune cryptanalyse n'a encore été reconnue sur Salsa20, Salsa20/12 ou Salsa20/8, en cette fin d'année 2006.

Références[modifier | modifier le code]

  1. (en) Tableau des vitesses d'exécution de Salsa20 selon les microprocesseurs, [1]
  2. (en) Paul Crowley, Cryptanalyse différentielle tronquée à cinq étapes contre Salsa20
  3. Simon Fischer, Willi Meier, Côme Berbain, Jean-Francois Biasse, Matt Robshaw, Non-Randomness in eSTREAM Candidates Salsa20 and TSC-4, Indocrypt 2006
  4. (en) Bilan de fin de phase 1 du projet eSTREAM, [2]

Liens externes[modifier | modifier le code]