ENGR/CS 101 CS Session Lecture 2

advertisement
ENGR/CS 101 CS Session
Lecture 2

Starting with the next class, we will be using
Visual Studio C#. Need at least one volunteer
to download VS to their laptop and have it
installed by then.


Lecture 2
Can download the C# Express Edition, link on the
CS session webpage
Can ask Jeff Cron for access to MS Alliance
program site to download full Visual Studio 2010.
ENGR/CS 101 Computer Science Session
1
Outline

Software life cycle

Problem: How to send a secret message?

Codes and ciphers

Substitution ciphers
Lecture 2
ENGR/CS 101 Computer Science Session
2
Software Life Cycle

Specification of the problem/task

Analysis and design of a solution

Implementation (coding) of the solution

Testing and debugging

Maintenance and evolution of the system

Obsolescence
Lecture 2
ENGR/CS 101 Computer Science Session
3
Problem:
How to send a secret message?


Steganography ("concealed writing"): science
of sending concealed messages. Includes
physical concealment like invisible ink,
microdots...
Cryptography ("hidden writing"): how to
obscure message so it cannot be read even if
intercepted. Use codes and ciphers.
Lecture 2
ENGR/CS 101 Computer Science Session
4
Codes and Ciphers


Code: whole words or phrases replaced by a
word, letter, or a number. Like an alien
language; uses translation code book.
Cipher: individual letters are replaced by other
letters or symbols.

Plaintext: message in normal language

Ciphertext: message in secret form
Lecture 2
ENGR/CS 101 Computer Science Session
5
Ciphers

Transposition cipher: rearrange letters of
message.



Scytale: strip of writing material wrapped around a
dowel; write message across dowel.
Block: arrange message into a block, rewrite
vertical lines
Substitution cipher: replace letters with other
letters
Lecture 2
ENGR/CS 101 Computer Science Session
6
Cipher = Algorithm + Key


Algorithm: a series of well-defined steps that
can be followed as a procedure.
Key: auxiliary information used by an algorithm.
Different keys produce different ciphers using
the same algorithm.
Lecture 2
ENGR/CS 101 Computer Science Session
7
Caesar Shift Cipher


Algorithm: substitute a letter with the letter n
places to the right
Key: letter to shift 'A' to that is n places to the
right. E.g. A -> I is shifting 8 places to the right:
Lecture 2
A B
C D E
I
K
J
L
F
G H I
M N O P
J
K
L
M
Q R S
T
U
Y
Z
N O P
Q R S T
U V
V W X
Y
C D E F
Z
A B
ENGR/CS 101 Computer Science Session
W X
G H
8
In-class Exercise


Practice enciphering and deciphering using
Caesar shift cipher.
Turn in at the end of class.
Lecture 2
ENGR/CS 101 Computer Science Session
9
What if the key is unknown?

How many possible keys are there for the
Caesar Shift Cipher?
Lecture 2
ENGR/CS 101 Computer Science Session
10
What if the key is unknown?


26. (If we include A->A as a possible key.)
Small enough that we could try each one in a
short amount of time.
Lecture 2
ENGR/CS 101 Computer Science Session
11
Polyalphabetic Ciphers


Make cipher harder to break by using multiple
substitution alphabets
Vigenere cipher: key is a "word" rather than just
a single letter. Algorithm is to use the key
letters to change Caesar cipher shift key for
each letter of plaintext. E.g. for key = "LION",
encipher first letter with key A->L, encipher
second letter with key A->I, etc.
Lecture 2
ENGR/CS 101 Computer Science Session
12
Polyalphabetic Ciphers


Suppose we allow any letter to be substituted
by any other letter? The key would a
substitution table mapping each letter to
another letter.
How many possible keys are there for this
cipher?
Lecture 2
ENGR/CS 101 Computer Science Session
13
Polyalphabetic Ciphers



26! = 403 291 461 126 605 635 484 000 000.
Over 400 million billion billion.
Just how big is this number?
6.5 billion people on Earth; 31 million seconds
in a year. If everyone on Earth checked one
key per second, ...
Lecture 2
ENGR/CS 101 Computer Science Session
14
400 million billion billion


It still would take around 2 billion years to
check them all!
We can conclude that checking every possible
key is not a feasible way of trying to decipher
an arbitrary substitution cipher.
Lecture 2
ENGR/CS 101 Computer Science Session
15
A better way to decipher





English letter
frequency: E, T,
A, O, ...
Common words:
"the", "and", ...
One/two letter
words: "I", "a",
"to", "of", ...
Repeated letters
Context
Lecture 2
ENGR/CS 101 Computer Science Session
16
Enigma Machine



Random substitution cipher
represented using a code
wheel. Originally 3 code
wheels, later 5 wheels
Instead of always starting with
same letter on wheel as A, just
encipher the current letter of
plaintext with the next letter on
wheel
Add a plugboard to further
randomize.
Lecture 2
ENGR/CS 101 Computer Science Session
17
Download