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.