Tiny Encryption Algorithm

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

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.

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

Code source

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

Références

Notes

Annexes

Bibliographie

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

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.