Aller au contenu

Salsa20

Un article de Wikipédia, l'encyclopédie libre.
Schéma du fonctionnement d'un round de Salsa20.

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 octet 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].

La méthode et famille de chiffrement ChaCha, qui a des fonctionnalités similaires, mais une fonction de tour à tour différente, est proposé par Bernstein en 2008 et améliore ses performances. C'est un standard proposé en à IETF pour TLS sous le RFC7905[2].

Fonctionnement

[modifier | modifier le code]

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 2165 opérations sur Salsa20/5 [3] et remporta le prix de 1 000 dollars de « la cryptanalyse la plus intéressante de Salsa20 ». En 2006, Fischer, Meier, Berbain, Biasse et Robshaw montrÚrent une attaque en 2177 opérations sur Salsa20/6 [4].

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[5].

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

Diagramme de la fonction QRF du chiffrement Chacha.

La famille de chiffrement Chacha est dérivée de Salsa 20. Elle améliore la diffusion par tour en proposant des performances similaires voire légÚrement supérieures. Différents tests de la suite de bancs d'essais d'eSTREAM ont été diffusés en 2008, concernant Chacha8, Chacha12 et Chacha20[6]. Elle a été proposée sous le nom ChaCha20-Poly1305 à l'IETF en [2] via la RFC7539[7] puis rendu obsolÚte par la RFC8439[8] publié en .

Références

[modifier | modifier le code]
  1. ↑ (en) Tableau des vitesses d'exĂ©cution de Salsa20 selon les microprocesseurs,
  2. 1 2 (en) « RFC7905 - ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS) »,
  3. ↑ (en) Paul Crowley, Cryptanalyse diffĂ©rentielle tronquĂ©e Ă  cinq Ă©tapes contre Salsa20
  4. ↑ Simon Fischer, Willi Meier, Cîme Berbain, Jean-Francois Biasse, Matt Robshaw, Non-Randomness in eSTREAM Candidates Salsa20 and TSC-4, Indocrypt 2006
  5. ↑ (en) Bilan de fin de phase 1 du projet eSTREAM,
  6. ↑ (en) DJ. Berstein, « The ChaCha family of stream ciphers », sur cr.yp.to
  7. ↑ (en) Adam Langley et Yoav Nir, « ChaCha20 and Poly1305 for IETF Protocols », sur tools.ietf.org (consultĂ© le )
  8. ↑ (en) Adam Langley et Yoav Nir, « ChaCha20 and Poly1305 for IETF Protocols », sur tools.ietf.org (consultĂ© le )

Liens externes

[modifier | modifier le code]