SAFER (cryptographie)
SAFER (Secure And Fast Encryption Routine) est le nom d'une famille d'algorithmes de chiffrement par bloc conçus principalement par James Massey pour la société Cylink Corporation. La première version, SAFER K et la révision SAFER SK partagent les mêmes principes pour le chiffrement mais le nombre de tours et le key schedule ont été renforcés.
Pour les articles homonymes, voir SAFER.
Concepteur(s) | James Massey |
---|---|
Première publication | 1993 |
Dérivé de | Aucun |
Chiffrement(s) basé(s) sur cet algorithme | SAFER-SK, SAFER+, SAFER++ |
Taille(s) du bloc | 64 bits (128 bits pour SAFER+/++) |
---|---|
Longueur(s) de la clé | 64 bits ou 128 bits (128/192/256 bits pour SAFER+), support de 40 bits pour l'exportation |
Structure | réseau de substitution permutation |
Nombre de tours | 6 (64 bits) ou 10 (128 bits) pour SAFER-K (8 et 12 tours pour SAFER-SK) |
Meilleure cryptanalyse
cryptanalyse du key schedule par Lars Knudsen ainsi que David Wagner et al.
Des versions ultérieures comme SAFER+ et SAFER++ ont respectivement participé au concours AES et au projet NESSIE. Ces algorithmes n'ont pas fait l'objet de brevets et peuvent être utilisés sans restriction.
SAFER K et SAFER SK
La première version de SAFER, SAFER K-64, fut publiée par Massey en 1993. Le « K-64 » se réfère à sa clé de 64 bits. La taille de bloc est de 64 bits. L'année suivante, Massey publia une version avec une clé de 128 bits et une key schedule (préparation des clés) modifiée qui avait été conçue par le ministère des affaires intérieures de Singapour. Cette version fut nommée SAFER K-128.
Lars Knudsen et Sean Murphy découvrirent des vulnérabilités dans cette version et demandèrent que le key schedule soit renforcé d'après les suggestions de Knudsen. Ces variantes furent nommées SAFER SK-64 et SAFER SK-128, le « SK » signifiant « Strengthened Key » (clé renforcée). La rumeur colportée par la FAQ sur le site de RSA Security affirme qu'en fait ce SK signifierait « Stop Knudsen ». Une autre variante, avec une clé réduite pour les restrictions d'exportation, fut publiée : SAFER SK-40.
Tous ces chiffrements sont basés sur la même architecture de tour. Chaque tour est divisé en quatre stages :
- mixage de clé
- couche de substitution
- 2e mixage de clé
- couche de diffusion
À la première étape, le bloc en clair est divisé en 8 segments de 8 bits et les sous-clés issues du key schedule sont ajoutées via une addition modulo 256 ou un XOR. La couche de substitution consiste en deux S-Boxes, l'une étant l'inverse de l'autre. Leur contenu provient de l'exponentiation discrète de 45x et du logarithme x·log(45). Après un deuxième mixage, le stage de diffusion utilise une approche alors nouvelle : une pseudo-transformation de Hadamard qui sera utilisée dans Twofish par la suite.
SAFER+ et SAFER++
Deux versions furent ultérieurement conçues par les arméniens Gurgen Khachatrian et Melsik Kuregian avec l'aide de Massey. Le schéma de chiffrement fut modifié pour l'occasion et tenir compte de nouvelles contraintes.
- SAFER+ (Massey et al, 1998) fut candidat pour le concours AES et a une taille de bloc de 128 bits. Le chiffrement n'a pas été retenu pour la finale. SAFER+ a été inclus dans le standard Bluetooth comme algorithme d'authentification et pour la génération de clés.
- SAFER++ (Massey et al, 2000) a été candidat pour le projet NESSIE. Deux versions furent publiées, une de 64 bits et l'autre de 128 bits.
Références
- Alex Biryukov, Christophe De Cannière, Gustaf Dellkrantz: Cryptanalysis of SAFER++. CRYPTO 2003: 195-211
- Lars R. Knudsen: A Detailed Analysis of SAFER K. J. Cryptology 13(4): 417-436 (2000)
- James L. Massey: SAFER K-64: A Byte-Oriented Block-Ciphering Algorithm. Fast Software Encryption 1993: 1-17
- James L. Massey: SAFER K-64: One Year Later. Fast Software Encryption 1994: 212-241
- James Massey, Gurgen Khachatrian, Melsik Kuregian, Nomination of SAFER+ as Candidate Algorithm for the Advanced Encryption Standard (AES)
- Massey, J. L., "Announcement of a Strengthened Key Schedule for the Cipher SAFER", September 9, 1995.
- James Massey, Gurgen Khachatrian, Melsik Kuregian, "Nomination of SAFER++ as Candidate Algorithm for the New European Schemes for Signatures, Integrity, and Encryption (NESSIE)," Presented at the First Open NESSIE Workshop, November 2000.
- Lars R. Knudsen: A Key-schedule Weakness in SAFER K-64. CRYPTO 1995: 274-286
- Lars R. Knudsen, Thomas A. Berson: Truncated Differentials of SAFER. Fast Software Encryption 1996: 15-26
- Nomination of SAFER+ as Candidate Algorithm for the Advanced Encryption Standard (AES), Submission document from Cylink Corporation to NIST, June 1998.
Liens externes
- (en) code de référence
- (fr) Traduction de l'attaque de Schneier et al. sur SAFER+
- (en) Annonce d'un nouveau key schedule (SAFER SK)
- (en) Fiche SCAN de SAFER-K
- (en) Fiche SCAN de SAFER-SK
- Portail de la cryptologie