One way to avoid the key pipelining is to use a different key maker based on an LFSR. An LFSR is in essence a shift
register with some of the outputs fed back to the serial input.
The key that is stored in the LFSR gets shifted to the right after each clock cycle. The new bit comes to the leftmost register and the rightmost bit is lost.
However, if we prevent losing the last bit by adding one additional register, then our previous key is completely stored (from bit 2 up to and including the added register). If we add another register, 2 previous keys are
remembered. If we add 15 registers, we have successfully stored 16 keys, which is what we need for the DES pipeline.
LFSRs are often used as random number generators. If the feedback outputs and the feedback function are
chosen carefully, the LFSR will go through all number combinations before coming back to the starting one. This is exactly what we want in order to go through the whole key space.
With this method, we saved almost 50% of the pipelining registers.