This preview shows page 1. Sign up to view the full content.
Unformatted text preview: of nbit words: 8bit words, 16bit words, 32bit words, whatever: X1, X2, X3,..., Xm. This initial state is the key. The ith word of the generator is Xi = (Xia + Xib + Xic +...+ Xim) mod 2n If the coefficients a, b, c,..., m are chosen right, the period of this generator is at least 2n  1. One of the requirements on the coefficients is that the least significant bit forms a maximallength LFSR. For example, (55,24,0) is a primitive polynomial mod 2 from Table 16.2. This means that the following additive generator is maximal length. Xi = (Xi55 + Xi24) mod 2n This works because the primitive polynomial has three coefficients. If it has more than three, you need some additional requirements to make it maximal length. See [249] for details. Fish
Fish is an additive generator based on techniques used in the shrinking generator [190]. It produces a stream of 32bit words which can be XORed with a plaintext stream to produce ciphertext, or XORed with a ciphertext stream to produce plaintext. The algorithm is named as it is because it is a Fibonacci shrinking generator. First, use these two additive generators. The key is the initial values of these generators. Ai = (Ai55 + Ai24) mod 232 Bi = (Bi52 + Bi19) mod 232 These sequences are shrunk, as a pair, depending on the least significant bit of Bi: if it is 1, use the pair; if it is 0, ignore the pair. Cj is the sequence of used words from Ai, and Dj is the sequence of used words from Bi. These words are used in pairs—C2j, C2j+1, D2j, and D2j+1—to generate two 32bit output words: K2j and K2j+1. E2j = C2j • (D2j ^ D2j+1) F2j = D2j+1 ^ (E2j ^ C2j+1) K2j = E2j • F2j K2i+1 = C2i+1 • F2j This algorithm is fast. On a 33 megahertz 486, a C implementation of Fish encrypts data at 15 megabits per second. Unfortunately, it is also insecure; an attack has a work factor of about 240 [45]. Pike
Pike is a leaner, meaner version of Fish, brought to you by Ross Anderson, the man who broke Fish [45]. It uses three additive gene...
View
Full
Document
This note was uploaded on 10/18/2010 for the course MATH CS 301 taught by Professor Aliulger during the Fall '10 term at Koç University.
 Fall '10
 ALIULGER
 Cryptography

Click to edit the document details