SEED
# SEED

SEED est un algorithme de chiffrement par bloc développé par l'agence de sécurité de l'information coréenne (KISA). Il est beaucoup utilisé dans l'industrie de la Corée du Sud mais rarement ailleurs.

SEED est un réseau de Feistel avec des blocs de 128 bits et une clé de 128 bits. Il utilise deux tables de substitution de 8 x 8 qui, comme pour SAFER, sont dérivées d'une élévation à la puissance (dans ce cas, $x^{247}$ et $x^{251}$ plus quelques « opérations incompatibles »). Il ressemble aussi à MISTY1 dans la récursivité de sa structure : le chiffrement de 128 bits est un réseau de Feistel avec une fonction F opérant sur des moitiés de 64 bits, pendant que la fonction F elle-même est un réseau de Feistel constituée d'une fonction G travaillant sur des moitiés de 32 bits. Cependant la récursion ne s'étend pas plus loin car la fonction G n'est pas un réseau de Feistel. Dans cette fonction G, le mot de 32 bits est considéré comme 4 mots de 8 bits, chacun passant par l'une ou l'autre des tables de substitution, puis combinés via des fonctions booléennes moyennement complexes de telle sorte que l'état de chaque bit de sortie dépend de 3 des 4 octets en entrée.

SEED a un key schedule complexe, générant ses 32 sous-clés de 32 bits à travers l'utilisation de la fonction G appliquant une série de rotations à la clé brute, combinée à des constantes dérivées du nombre d'or (comme dans TEA).

SEED est l'un des trois algorithmes de chiffrement reconnus par l'ISO (AES, Camellia, SEED).

