80 likes | 297 Views
DTTF/NB479: Dszquphsbqiz Day 5. Announcements: Matlab : tutorial available at http://www.math.ufl.edu/help/matlab-tutorial/ Questions? Today: Wrap up Hill ciphers One-time pads and LFSR Schedule change: skip Playfair cipher, start ch 3 tomorrow. Next: one time pads.
E N D
DTTF/NB479: Dszquphsbqiz Day 5 • Announcements: • Matlab: tutorial available at http://www.math.ufl.edu/help/matlab-tutorial/ • Questions? • Today: • Wrap up Hill ciphers • One-time pads and LFSR • Schedule change: skip Playfair cipher, start ch 3 tomorrow
Next: one time pads • Back to Vigenere: if the codeword were really long, say 25% as long as the entire plaintext, how many characters would contribute to each dot product? ____ • What does this say about our ability to do a frequency analysis? • Now consider the extreme case, the one-time pad…
One-time pads • Represent the plaintext in binary, length n • Works for text (from ASCII), images, music, etc • The key is a random vector of length n • Ciphertext = plaintext XOR key • Do • message = 1000011, key = 1110010 • Cipher = ??? • ciphertext XOR key = ???
Unbreakable? • Yes, for ciphertext only… Ciphertext: EOFMCKSSDKIVPSSAD Could be: thephoneisringing meetmeinthegarage … I need the whole key to decrypt. • What’s the downside to using a one-time pad? Variation: Maurer, Rabin, Ding et al’s satellite method • If I’m willing to compromise some security…
Linear Feedback Shift Register (LFSR) Sequences Name comes from hardware implementation Generated bit stream Shift register b1 b2 b3 b4 … bm-1 bm To encrypt plaintext of length n, generate an n-bit sequence and XOR with the plaintext. Feedback function • Need initial conditions (bits in register) and a function to generate more terms. • Example: • x1 = 0, x2 = 1, x3 = 0, x4 = 0, x5 = 0; • xn+5 = xn + xn+2 (mod 2) • What does this remind you of in math?
Linear Feedback Shift Register (LFSR) Sequences • A recurrence relation! • Specify initial conditions and coefficients, for example: • x1 = 0, x2 = 1, x3 = 0, x4 = 0, x5 = 0; • xn+5 = xn + xn+2 (mod 2) • Another way to write is xn+5 = 1xn + 0xn+1 + 1xn+2 +0xn+3 + 0xn+4 (mod 2) • In general, • Generate some more terms • How long until it repeats? (the period of the sequence) • 10 bits (0100010100) generates ____ bits • Demo
Long periods • LFSR can generate sequences with long periods • Like Vigenere with long key: hard to decrypt! • Lots of “bang for the buck”! • But it depends on the key • Good example:xn+31=xn + xn+3 (mod 2) • How many bits do we need to represent this recurrence? • 62 bits • How long is the period? • Over 2 billion! Why? • There exist (231 – 1) 31-bit words • Why “-1”? • If it cycles through all of these, it’s maximal. Related to Mersenne primes • See http://www.ece.cmu.edu/~koopman/lfsr/index.html for a list of maximal-period generators • Can you devise a bad example (one with period << 2n-1)?
LFSR Demo • Downside: very vulnerable to known plaintext attacks. • Determine key length by computing determinants • Theorem: If N is the length of the shortest recurrence that generates the sequence, then det(MN) = 1 (mod 2) and det(Mn)=0 (mod 2) for all n > N. • 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 … length = 5 • Use the key length to solve for the recurrence. • Verify your solution by using the solution to generate the whole key