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


