- G1 ^= pgm_read_byte_near(&(skipjack_ftable[G2 ^ key[9-(4*k+0)%10]]));
- G2 ^= pgm_read_byte_near(&(skipjack_ftable[G1 ^ key[9-(4*k+1)%10]]));
- G1 ^= pgm_read_byte_near(&(skipjack_ftable[G2 ^ key[9-(4*k+2)%10]]));
- G2 ^= pgm_read_byte_near(&(skipjack_ftable[G1 ^ key[9-(4*k+3)%10]]));
+ k *= 4;
+ G1 ^= skipjack_sub_g(G2, k + 0, key);
+ G2 ^= skipjack_sub_g(G1, k + 1, key);
+ G1 ^= skipjack_sub_g(G2, k + 2, key);
+ G2 ^= skipjack_sub_g(G1, k + 3, key);