Come modificare il conteggio round TEA? [chiuso]

1

Ho scritto la fonte TEA di pubblico dominio da wikipedia ( link ), sembra così -

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;
}

Funziona bene, ma sto cercando di capire cripto un po 'di più in modo da ottimizzare e esplorare. Avrei pensato che la modifica del numero di round (32 nell'esempio) avrebbe funzionato benissimo fintanto che la funzione di decifrazione è cambiata per usare lo stesso numero. Tuttavia, l'ho raggiunto a 50 da ciascun lato e ora il mio output non corrisponde al testo in chiaro iniziale. Pensando che potrebbe essere troppo alto, ho provato 20; niente da fare. Poi ho pensato di provare molto vicino, impostarlo su 31 e poi su 33, e nessuno dei due ha funzionato.

Il numero di proiettili in TEA richiede 32 anni per qualche motivo? Non riesco a capire perché, ma sono lontano dall'esperto.

    
posta blah44 27.12.2013 - 15:34
fonte

1 risposta

3

Sicuramente Thomas, la costante di decrittazione 0xC6EF3720 è semplicemente 0x9e3779b9 * ROUNDS e deve essere aggiustata di conseguenza.

    
risposta data 27.12.2013 - 16:06
fonte

Leggi altre domande sui tag