¿Cómo cambiar el recuento redondo de TEA? [cerrado]

1

Encontré la fuente de TEA de dominio público de wikipedia ( enlace ), se ve así:

uint32_t v0=v[0], v1=v[1], sum=0, i;           /* set up */

uint32_t delta=0x9e3779b9;                     /* a key schedule constant */

uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */

for (i = 0; i < 32; i++) { /* basic cycle start */
   sum += delta;
   v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
   v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
} /* end cycle */
v[0] = v0;
v[1] = v1;
}

Funciona bien, pero estoy tratando de entender criptografía un poco más, así que estoy retocando y explorando. Pensé que cambiar el número de rondas (32 en el ejemplo) funcionaría bien siempre y cuando la función de descifrado cambiara para usar el mismo número. Sin embargo, lo subí a 50 en cada lado y ahora mi salida no coincide con el texto sin formato inicial. Pensando que puede ser demasiado alto, intenté 20; no dados. Luego pensé que lo intenté muy de cerca, lo puse en 31, luego en 33, y ninguno funcionó.

¿Se requiere que la cantidad de rondas en TEA sea 32 por alguna razón? No puedo ver por qué, pero estoy lejos de ser un experto.

    
pregunta blah44 27.12.2013 - 15:34
fuente

1 respuesta

3

Efectivamente, Thomas, la constante de descifrado 0xC6EF3720 es simplemente 0x9e3779b9 * ROUNDS y debe ajustarse en consecuencia.

    
respondido por el blah44 27.12.2013 - 16:06
fuente

Lea otras preguntas en las etiquetas