**Tom Kelliher, CS 325**

**Sept. 14, 2011**

Same reading.

Choose presentation topics. Grading criteria.

Perl/CGI lab.

- Basic terminology.
- Substitution.
- Transposition.
- What makes a good cipher?

More Cryptography.

- Plain text, cipher text.
- Key.
- Interceptor aims: block, intercept, modify, fabricate.
- Symmetric cipher:
.
One key. Key distribution and management issues. Private key cryptography.

- Asymmetric cipher:
.
Two keys: private and public. Public key cryptography.

- Product Ciphers -- application of two or more ciphers:
.
The result is not necessarily ``better.''

- Diffusion: A plain text character has a functional impact on multiple
cipher text characters.
This forces the cryptanalyst to have access to large amounts of cipher text.

- Confusion: A cryptanalyst should not be able to predict the changes
that occur when one character of the plain text is changed. (Consider a
Caesar cipher.)
This property makes it harder to understand the relationship between the plain text and the cipher text.

- Stream cipher: One plain text character is used to produce one cipher
text character.
Fast; no latency.

Poor diffusion; possibly little confusion.

- Block cipher: A block of plain text is used to produce a block of
cipher text.
Slower; latency.

Excellent diffusion and confusion.

- Exchange one character for another, using a table. Many variations.
- Simple examples: Caesar rotation, ROT13.
- Permutation and keys. possible permutations.
Simple permutation scheme using ``tolerant'' as key: toleranbcdfgh...

(Use key and follow up with remaining letters.) - One time pad. Components:
- A set of permutations.
- An infinite string of random numbers, modulo .

For each plaintext character, use the next random number to select the permutation to apply.

Keeping the pads in synch.

- A set of permutations.
- Other methods: Vernam cipher, book cipher.

- Columnar technique.
- Re-arrange the plaintext characters.
- Primitive example: Pig Latin.
- General idea:
- Construct a matrix with columns.
- Length of plain text should be . If not, pad out.
- Write plain text across rows of matrix.
- Read cipher text across columns of matrix.

- Construct a matrix with columns.

- According to Shannon:
- Amount of secrecy should be proportional to amount of labor.
- Keys, algorithms should be free from complexity.
- Implementation process should be KISS.
- Error in encrypting should not propagate.
- Length of cipher text should match length of plain text.

- Amount of secrecy should be proportional to amount of labor.
- ``Trustworthy'' encryption:
- Based on sound mathematics.
- Analyzed by experts and found to be sound.
- Has withstood the ``test of time.''

- Based on sound mathematics.

Thomas P. Kelliher 2011-09-13 Tom Kelliher