s
19 708 Pages

Remarque disambigua.svg homonymie - Si vous êtes à la recherche de l'unité de masse, cf. Grain (unité de mesure).
grain
général
Les concepteurs Martin l'enfer, Thomas Johansson et Willi Meier
première publication 2004
détails
Taille clé 80 bits
Dim. Lorsque vecteur d'initialisation 64 bits
structure LFSR et NLFSR

la grain est un chiffrement de flux proposé pour 'eStream en 2004 Martin l'enfer, Thomas Johansson et Willi Meier. Il a été inclus dans le portefeuille final pour dell'eSTREAM profil 2, à-dire pour les déploiements matériel à capacité limitée. L'algorithme existe en deux versions: la première est appelée grain v1 et utilise un clé 80 bit et vecteur d'initialisation (vecteur d'initialisation, ou IV) de 64 bits, le second est appelé Grain-128 et utilise une clé de 128 bits et une VI de 80 bits.[1]

description

La fonction interne de grains travaille avec des blocs de données de 160 bits sont constitués d'un registre à décalage à rétroaction linéaire (LFSR) De 80 bits et un registre à décalage de réaction non linéaire (NLFSRToujours) 80 bits.

L'algorithme met à jour un peu dell'LFSR dell'NLFSR et un peu pour chaque texte bits crypté par une fonction de filtre non linéaire. Le NLFSR à 80 bits est mis à jour avec l'entrée de l'itération entre la sortie générée par une fonction Boolean non linéaire de 5 à 1 et 1 bit généré dall'LFSR. Le LFSR à 80 bits est mis à jour avec une fonction linéaire de 6 à 1. Durant l'exécution, la sortie de l'algorithme est réutilisé comme entrée linéaire pour mettre à jour à la fois l'entrée dell'NLFSR que dell'LFSR.

Dans la version originale du grain, appelé Grain Version 0.0, 1 bit et 4 bits dell'NLFSR dell'LFSR ont été utilisés comme entrée d'un non-linéaire de la fonction booléenne 5 à 1 et la sortie est linéairement combinés avec 1 bit dell'NLFSR pour générer la sortie du grain.

Dans la version mise à jour, appelée Grain Version 1.0, 1 bit et 4 bits dell'NLFSR dell'LFSR sont transmis en entrée à la fonction booléenne non linéaire de 5 à 1 (fortement modifiées) et la sortie est linéairement combinés avec dell'NLFSR 7 bits, puis publiées en tant que sortie finale.

Initialisation de grains

L'initialisation de l'algorithme de chiffrement est effectué en chargeant directement le clavier 80 bits nell'NLFSR et IV par nell'LFSR 64 bits. Les 16 bits restants de cette dernière sont chargés avec une séquence de bits 1. L'algorithme est ensuite exécutée 160 fois, au cours de laquelle la sortie n'a pas été publiée, mais est réutilisé comme entrée pour mettre à jour à la fois le NLFSR que le LFSR .

A propos de la diffusion de bits effectuée par la procédure d'initialisation, les auteurs affirment que le grain « Avec l'initialisation effectuée avec deux différents IV qui diffèrent par un seul bit, la probabilité qu'une rotation des bits de registre est le même dans les deux cas, est égal à 0,5. Les simulations montrent que cette valeur est obtenue après 160 rotations ".

performance

L'algorithme est conçu pour effectuer jusqu'à 16 étapes en parallèle, ce qui permet des implémentations très rapides, cependant, le prix d'une utilisation accrue des ressources matérielles.

sécurité

Le grain était en 0,0 crittoanalizzato 2006[2]: Pour récupérer la clé de 80 bits il a fallu 238 bit keystream pour une 2 complexité43 calculs.

Le grain 1.0 semble plus robuste: à ce jour, aucune attaque efficace force brute (Au prix d'une complexité de 280 calculs) semble être en mesure de forcer l'algorithme. Cependant, en Septembre 2006 Ozgul Kucuk a publié un article dans lequel il a indiqué que pour chaque couple (clé, IV), il existe un couple (clé «IV ») qui présentent une probabilité de 1/22 qui génère une séquence de clé décalée de 1 bit. Bien que, certes le même auteur, ce fait n'est pas exploitée pour mener une attaque réelle, certainement il indique une faiblesse dans l'algorithme qui doit être étudié plus[3]

Droits d'auteur

Le grain est breveté et les droits d'auteur sont détenus par les auteurs du code. Il est la possibilité d'utiliser, copier, modifier ou distribuer l'algorithme à condition que vous ne saisissez pas le grain dans les produits brevetés.

Grain-128a

la cryptanalyse la version 128 bits a montré une certaine marge pour l'algorithme d'amélioration qui a conduit les auteurs à développer une nouvelle version du grain appelé 128 Grain-128a. Cette version intègre également un algorithme l'authentification des messages.[4] Par rapport au grain v1 à 80 bits, la mise en œuvre de cette nouvelle version prend plus de ressources et fonctionne à demi-vitesse: à cause de ce que le grain 128a n'a pas été inclus dans le carnet de commandeseStream.[1]

notes

liens externes