Scrypt
En cryptographie, scrypt est une fonction de dérivation de clé, originellement créée par Colin Percival pour le service de stockage en ligne Tarsnap (en)[1]. L'algorithme a été précisément conçu de façon qu'il soit coûteux en calcul et en mémoire notamment sur des architectures dédiées. En 2012, Scrypt a été proposé en tant que standard Internet par l'IETF[2]. Une version simplifiée de scrypt est actuellement utilisée par certaines crypto-monnaies, comme Litecoin[3] et Dogecoin.
Fonction de dérivation de clé
Une fonction de dérivation de clé est en général conçue de façon à nécessiter d'importants calculs afin d'augmenter le temps nécessaire à son obtention (de l'ordre de quelques centaines de millisecondes). Les utilisateurs légitimes ne faisant appel qu'une seule fois à la fonction de dérivation (par exemple dans le cas d'une authentification), le temps de calcul est alors négligeable. En revanche, le temps nécessaire à une attaque par force brute serait tout à fait inenvisageable voire, dans l'idéal, prohibitif.
Implémentations
- Scrypt (Java)
- cryptsharp (C#)
- scrypt (Go)
- php-scrypt (PHP wrapper)
- scrypt (Ruby)
- scrypt-for-delphi (Delphi)
- pylibscrypt (Python) et inclus dans la bibliothèque standard hashlib à partir de Python 3.6[4]
Références
- « Page décrivant Scrypt sur le site web de Tarsnap » (consulté le )
- C. Percival, S. Josefsson, « The scrypt Password-Based Key Derivation Function (RFC7914) », IETF,
- Alec Liu, « Beyond Bitcoin: A Guide to the Most Promising Cryptocurrencies »
- (en) « hashlib.scrypt dans la documentation de Python » (consulté le )