350 Spring 2006
- DES Cracker: Build a software implementation of DES encoding for a 64b block.
Then try to find a key that transforms the zero block into the block 0xabbaabba.
Hint: You can spped the cracker up by avoiding the initial and final permutation.
Your grade does not depend on actually finding the key.
- XOR-Code: Encryption by XORing with a one-time pad is proven to be cryptographically
absolutely secure. However, if we reuse the pad, then we make the encryption
vulnerable. Worse, we could XOR with a short repeating key.
For this project, you basically develop a number of tools that allow you to
quickly crack this encryption scheme. If you choose this project, you will
be provided a lengthy XOR-encrypted text to decypher. (See Bruce Schneier:
- Write a program that encrypts an ASCII file with an arbitrary, repeating
- Write a program that discovers the length of the key through a counting
coincidences attack. You count coincidences by counting the number
of times that a character is repeated after exactly x bytes. The percentage
of coincidences jumps when the displacement x is a multiple of the key
- Having determined the key length, use something like a frequency analysis
(for a text assumed to be in a known language) to determine likely elements
of the key.
To do this project, decipher the challenge.txt
- Lamport's Hash implements one-time passwords. Implement Lamport's hash without
- Create procedures that implement the calculations of the Diffie-Hellman
key exchange. You need to figure out or read up on how to best do exponentiation
using a large prime. You can take p to be a known large prime. The
number g does not really need to be a generating element, as long
as the set of powers of g is large.
- Implement from scratch a program that does port scans of another computer.
(Port scans could be illegal or inethical if executed without permission by
the owner of the scanned machine.)
| ©2009 Thomas Schwarz,
S.J., COEN, SCU
||These documents are not intended for dissemination beyond
SCU. CAVEAT LECTOR