Tiny Encryption Algorithm (ou TEA) est un algorithme de chiffrement par bloc connu pour la simplicité de sa description et de son implémentation (généralement quelques lignes de codes). Il s’agit d’un réseau de Feistel comprenant un nombre important de tours : 32. Il fut conçu par David Wheeler et Roger Needham, du laboratoire informatique de Cambridge, et présenté au salon Fast Software Encryption en 1994[1]. Il n'est l'objet d'aucun brevet.

Tiny Encryption Algorithm

Résumé
Concepteur(s) David Wheeler et Roger Needham
Première publication 1997
Dérivé de aucun
Chiffrement(s) basé(s) sur cet algorithme XTEA
Caractéristiques
Taille(s) du bloc 64 bVoir et modifier les données sur Wikidata
Longueur(s) de la clé 128 bits
Structure Réseau de Feistel
Nombre de tours Variable; 64 tours de Feistel recommandés (32 cycles)

Meilleure cryptanalyse

Vikram Reddy Andem, présenta une cryptanalyse du chiffrement pour son mémoire de master[2].

Code source

modifier

Le code qui suit est une adaptation du code source en C paru dans l’article original de Wheeler et Needham[1].

#include <stdint.h>

void chiffrer (uint32_t* v, uint32_t* k) {
    uint32_t v0=v[0], v1=v[1], sum=0, i;           /* initialisation */
    uint32_t delta=0x9e3779b9;                     /* constantes de clef */
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* mise en cache de la clef */
    for (i=0; i < 32; i++) {                       /* boucle principale */
        sum += delta;
        v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
        v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
    }
    v[0]=v0; v[1]=v1;
}

void dechiffrer (uint32_t* v, uint32_t* k) {
    uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i;  /* initialisation */
    uint32_t delta=0x9e3779b9;                     /* constantes de clefs */
    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* mise en cache de la clef */
    for (i=0; i<32; i++) {                         /* boucle principale */
        v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
        v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
        sum -= delta;
    }
    v[0]=v0; v[1]=v1;
}

Notes et références

modifier

Références

modifier

Notes

modifier

Annexes

modifier

Bibliographie

modifier
  • (en) David J. Wheeler et Roger M. Needham, « TEA, a tiny encryption algorithm », Fast Software Encryption,‎ 1994, p. 363–366 (DOI 10.1007/3-540-60590-8_29)

Liens externes

modifier

📚 Artikel Terkait di Wikipedia

Advanced Encryption Standard

(aide) Advanced Encryption Standard ou AES (litt. « norme de chiffrement avancé »), aussi connu sous le nom de Rijndael, est un algorithme de chiffrement

International Data Encryption Algorithm

code - voir Wikidata (aide) IDEA, pour International Data Encryption Algorithm, est un algorithme de chiffrement symétrique conçu par Xuejia Lai et James

BitLocker Drive Encryption

AES-CBC + Elephant diffuser   Specifications of the encryption algorithm used in BitLocker Drive Encryption Microsoft permet à la police de déjouer sa solution

IMSI-catcher

« 3G Security; Specification of the A5/4 Encryption Algorithms for GSM and ECSD, and the GEA4 Encryption Algorithm for GPRS », sur portal.3gpp.org, 22 janvier

Data Encryption Standard

modifier le code - voir Wikidata (aide) Le Data Encryption Standard (DES, prononcer /dɛs/) est un algorithme de chiffrement symétrique (chiffrement par bloc)

Mécanisme d'encapsulation de clé

18033-2:2006 - Information technology -- Security techniques -- Encryption algorithms -- Part 2: Asymmetric ciphers », sur www.iso.org (consulté le 31

CMEA

portant le même nom. CMEA peut signifier : l'algorithme CMEA (Cellular Message Encryption Algorithm), un algorithme de chiffrement par bloc utilisé pour les

Idea

l'architecture et l'électronique avancée. International Data Encryption Algorithm, un algorithme de chiffrement symétrique ; International Diving Educators