The Panama Cryptographic Function
By Joan Daemen and Craig Clapp
Dr. Dobb's Journal December 1998
<b>(a) </b> for(i=0 ; i<8 ; i++) { p[i] = input[i]; } <b>(b) </b> for(i=0 ; i<8 ; i++) { p[i] =b[4] [i]; } <b> (c)</b> for(i=0 ; i<17 ; i++) { r[i] = a[i] ^ (a[(i+1)%17] | ~a[(i+2)%17] ); } for(i=0 ; i<17 ; i++) { s[i] = r[(7*i)%17] <<< ((i*(i+1)/2 )%32); } for(i=0 ; i<17 ; i++) { t[i] = s[i] ^ s[(i+1)%17] ^ s[(i+4)%17] ; } A[0] = t[0] ^ 0x00000001 ; for(i=0 ; i<8 ; i++) { A[(i+1)%17] = t[(i+1)%17 ] ^ p[i]; } for(i=0 ; i<8 ; i++) { A[(i+9)%17] = t[(i+1)%17 ] ^ b[16][i]; } <b>(d)</b> for(i=0 ; i<8 ; i++) { z[i] = a[i]; }
Example 2: State updating transformation. (a) Push mode; (b) Pull mode; (c) common part; (d) output from Pull mode.
Copyright © 1998, Dr. Dobb's Journal