Pseudo-Hadamard Transform in SAFER K-64

3

Il PHT sembra così semplice: b1 = 2*a1 + a2; b2 = a1 + a2 . eppure, mi manca sicuramente qualcosa, dal momento che il documento per SAFER K-64 mostra:

INPUT VECTOR is 0 0 0 0 0 0 0 1
OUTPUT VECTOR is 1 1 1 1 1 1 1 1

dove ogni valore è 8 bit.

qualcuno può spiegare come nel mondo 2 * 0 + 0 diventa 1 ??? Credo che questa sia l'unica cosa che impedisce alla mia implementazione più sicura di funzionare correttamente.

    
posta calccrypto 07.07.2011 - 01:41
fonte

1 risposta

5

Hai confuso la trasformazione PHT con i livelli PHT della funzione round del codice a blocchi:

  • La trasformazione PHT esegue il mapping di un input a due byte a un output a due byte. Usa la formula che hai elencato. Ad esempio, PHT (0,1) = (1,1).

  • I livelli PHT della funzione round mappano un input da 8 byte a un output a 8 byte. Ogni round ha una sequenza di 3 livelli. Ogni strato è costituito da 4 trasformazioni PHT parallele.

Il vettore di input / output che elenchi è per i livelli PHT della funzione round, non per la trasformazione PHT stessa. Se segui il diagramma di calcolo (vedi, ad esempio, la Figura 7.12 e la Sezione 7.7.1 in il capitolo appropriato del Manuale sulla crittografia applicata , vedrai come i livelli PHT trasformano l'input (0,0,0,0,0,0,0,1,1) in (1,1,1,1,1, 1,1,1) mediante l'applicazione di 12 trasformazioni PHT nella sequenza appropriata.

Un ultimo commento: non consiglio l'uso di SAFER K-64. È una cifra obsoleta. Ci sono un certo numero di carenze: ci sono alcune debolezze criptoanalitiche minori; non è stato studiato molto; e peggio, la dimensione della chiave e le dimensioni del blocco sono troppo piccole. Per questi motivi, non ti consiglio di utilizzare SAFER K-64 o di esporlo come opzione ai tuoi utenti. Invece, ti consiglio di utilizzare AES.

    
risposta data 07.07.2011 - 06:31
fonte

Leggi altre domande sui tag