Extended Tiny Encryption Algorithm

Extended Tiny Encryption Algorithm

Extended Tiny Encryption Algorithm (XTEA (eXtended TEA) es un algoritmo criptográfico utilizado para el cifrado por bloques, al igual que el algoritmo TEA (presentado en 1994), pero corrigiendo las deficiencias de éste último.

Sus diseñadores fueron David Wheeler y Roger Needham del Laboratorio de Informática de Cambridge, los cuales presentaron un informe técnico sobre el algoritmo que fue publicado en 1997 (Needham y Wheeler, 1997). Este algoritmo no está sujeto a ninguna patente.

Contenido

Descripción

Al igual que TEA, XTEA está basado en una estructura de red de Feistel con 64 rondas. Además, también opera sobre bloques de 64 bits utilizando una clave de 128 bits. Las diferencias que posee con respecto a TEA es que incluye una generación de claves más compleja y reordenación de los turnos o rondas, la operación XOR y adiciones.

Junto con XTEA, se ha presentado un algoritmo de cifrado de bloque variable denominado Block TEA, el cual utiliza la función de redondeo de XTEA pero aplicada cíclicamente a través del mensaje completo en varias iteraciones. Debido a que opera sobre todo el mensaje, una de las propiedades que tiene Block TEA es que no es necesario utilizar cifrado por bloques. Posteriormente, se encontró un ataque sobre todo el Block TEA descrito en (Saarinen, 1998), donde también se detalla las debilidades del sucesor de Block TEA, XXTEA.

Uno de los mejores ataques que ha sufrido XTEA, ha sido relacionado con la clave que fue derribada en 27 de las 64 rondas que tiene XTEA y para ello se necesitaron 220.5 textos planos y una complejidad temporal de 2115.15.

Implementación en C

Este código en C, es una adaptación de la versión del código de referencia del dominio público de David Wheeler y Roger Needham. La funcionalidad que posee es la de cifrar y descifrar usando XTEA:

#include <stdint.h>
 
/* Se tienen 64 bits de datos en v[0] y v[1] y 128 bits de clave en k[0] - k[3] */
 
void Cifrar(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
    for (i=0; i < num_rounds; i++) {
        v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
        sum += delta;
        v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
    }
    v[0]=v0; v[1]=v1;
}
 
void Descifrar(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;
    for (i=0; i < num_rounds; i++) {
        v1 −= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
        sum −= delta;
        v0 −= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
    }
    v[0]=v0; v[1]=v1;
}

La diferencia existente entre este código y el original es la utilización de uint32_t en vez de unsinged long (64 bits) o la utilización de const. Además, en el original se omitían paréntesis redundantes.


Véase también

  • RC4 — Un Cifrado de flujo que está diseñado para que sea fácil de implementar.
  • XXTEA (enlace en inglés) — Sucesor del Block TEA.
  • TEA — Precursor del Block TEA.


Referencias

  • XTEA(enlace en inglés)

Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Extended Tiny Encryption Algorithm — XTEA Zwei Feistel Runden (ein Zyklus) von XTEA Entwickler Roger Needham, David Wheeler Veröffentlicht 1997 Abgeleitet von …   Deutsch Wikipedia

  • ONE-NET — is an open source standard for wireless networking[1]. ONE NET was designed for low cost, low power (battery operated) control networks for applications such as home automation, security monitoring, device control, and sensor networks. ONE NET is …   Wikipedia

  • XTEA — Zwei Feistel Runden (ein Zyklus) von XTEA Entwickler Roger Needham, David Wheeler Veröffentlicht 1997 Abgeleitet von …   Deutsch Wikipedia

  • TEA — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей. У этого термина существуют и другие значения, см. TEA (значения) …   Википедия

  • List of algorithms — The following is a list of the algorithms described in Wikipedia. See also the list of data structures, list of algorithm general topics and list of terms relating to algorithms and data structures.If you intend to describe a new algorithm,… …   Wikipedia

  • XTEA — Infobox block cipher name = XTEA caption = Two Feistel rounds (one cycle) of XTEA designers = Roger Needham, David Wheeler publish date = 1997 derived from = TEA derived to = Corrected Block TEA key size = 128 bits block size = 64 bits structure …   Wikipedia

  • XTEA — En cryptographie, XTEA (eXtended TEA) est un algorithme de chiffrement conçu pour corriger les faiblesses de TEA. David Wheeler et Roger Needham, de l université de Cambridge, ont conçu cet algorithme qui fut proposé dans un rapport technique non …   Wikipédia en Français

  • One-way compression function — In cryptography, a one way compression function is a function that transforms two fixed length inputs to an output of the same size as one of the inputs. The transformation is one way , meaning that it is difficult given a particular output to… …   Wikipedia

  • Michael O. Rabin — Michael Oser Rabin Born September 1, 1931 (1931 09 01) (age 80) Breslau …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”