Cryptography

advertisement
Cryptography:
from substitution cipher to RSA
Alex Karassev
Description of the problem
• Alice wants to send a secret message to Bob
• Problem: this message can be captured
• Possible ways to intercept a message:




steal a letter from mailbox
wiretap \ listen in a phone call
steal data from network cable
use a hacker attack
Possible solutions
• Conceal the fact of sending
• Conceal the text of the message
Conceal the fact of sending
• Use “invisible” ink
• “Hide” the message inside a larger text
However, in all these examples
• Use very small font (also used as anti-counterfeiting
measure: look at dollar bills for example)
the message is send as a plaintext
• Example from ancient time:
shaving the
head
of a slave and tattooing
the
(i.e.
non-encrypted
text)
message on the slave's bald scalp. When his hair
had grown enough to conceal the tattoo, the slave
was sent to another person who shaved the slave's
head to receive the message
Conceal the text of the message
• Use cipher or, more precisely, encryption
• Encryption is a process that transforms a
plaintext of the message into a different text
(which usually looks as a meaningless
collection of symbols or numbers) according to
certain algorithm
• The resulting text is called ciphertext (or
encrypted message)
• Algorithms used are called ciphers
• The study of ciphers is called cryptography
How to make all this happen?
Alice sends a message to Bob…
• Alice takes the message and replaces each
letter in the message by some other letter of
symbol (or by several symbols) according to
some cipher
• She sends it then to Bob
• Nobody else except for Bob knows how to read
the encrypted message
• Bob receive the message and uses the
process of deciphering (or decrypting) to read
the message
The oldest algorithm:
Substitution cipher
• Each letter of alphabet is replaced by
another letter or symbol, or several
symbols
• Example: A → 1, B → 2, C → 3 and so
on
• Less trivial example:
• A → 26, B → 25, C → 24, …, Z → 1
Main Requirement
• We must have a procedure allowing us to
restore plaintext from encrypted text
without ambiguities
• Then we need…
• One-to-one correspondence: different
letter of alphabet are replaced by different
symbols
• Substitution table:
A
B
C
D
E
F
G
H
I
J
K
L
M
26
25
24
23
22
21
20
19
18
17
16
15
14
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
12
11
10
9
8
7
6
5
4
3
2
1
• Immediately, we have a problem:
What is 262524?
• Is it ABC?
• Or is it YUYVYW?
• Or maybe ABYW?
• Also, we need to encode spaces between
words
A
B
C
D
E
F
G
H
I
J
K
L
M
26
25
24
23
22
21
20
19
18
17
16
15
14
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
12
11
10
09
08
07
06
05
04
03
02
01
• It would be better to use the following cipher:
• A → 26, …,X →03, Y →02, Z → 01
and space is 00
• We know that every TWO symbols represent a letter
• Thus
• 14260719001808000719220807
• is…
• MATH IS THE BEST
A historical example of substitution
cipher – shift (or Caesar) cipher
ABCDEFGHIJKLMNOPQRSTUVWXYZ
• Choose k
• Shift all letters by k
• For example, if k = 5
• A becomes F, B becomes G, C becomes H,
and so on…
• What will replace X?
Modular arithmetic
• In the Caesar cipher, the following algorithm is used
• If n is the number of a letter in the alphabet, this letter
is replaced by another letter, whose number is
(n+k) modulo 26 (shortly (n+k) mod 26)
• This is a remainder of division of (n+k) by 26
• For example, take k=5 and take letter X
• Its number n = 24
• (n+k) mod 26 = 24 + 5 mod 26 = 3
• So X is replaced with C
Exercise
• Use shift cipher with k=7 to encrypt the
text “TOP SECRET” (ignore space)
Is substitution cipher really good?
• It seems it satisfies the main condition:
if Alice and Bob agree on the table for
substitution then they can exchange
Substitution
cipher
is completely
ruined by
messages and
keep
them secret
FREQUENCY
• Is it really
the case? ANALYSIS
Frequency analysis
• Discovered by Arabs (approx. 9th century)
• Statistically, it is possible to determine how
often each letter appears in an “average” text
• Frequency table
• Other useful observation:
 ST, NG, TH, and QU are common pairs of letters
(bigrams), while NZ and QJ are rare.
 What is one the most common trigram?
 THE
 Letters that often appear at the beginnings of words
To analyze the text…
• Count the number of appearance of
each letter and divide it by the total
number of words in the ciphertext
• Compare the results with the frequency
table
• Note: this method applies effectively to
sufficiently large texts
Weaknesses of the substitution cipher
• Every letter is ALWAYS encoded by the same
symbol, which makes frequency analysis a very
effective tool
• Another problem: knowing context of the message is
very useful (for instance, if you know that the text is
about the types and number of airplanes in the
enemy’s army, you should expect words “airplane”,
“aircraft”, “weapon”, and so on)
• Guesses also help: for instance, if you deciphered a
part of the sentence “A cat drinks …”
you would guess that the last word is “milk” (although
it could be “lemonade”)
Examples from Literature and History
• the use of frequency analysis to attack simple
substitution ciphers:
 Arthur Conan Doyle “Sherlock Holmes tale: The Adventure of
the Dancing Men”
 Edgar Allan Poe “The Gold Bug”
• Greeks: scytale cipher
• Morse code
• WWII: Enigma machine
• ASCII (American Standard Code for Information
Interchange): Each character is encoded by numbers
from 0 to127 in binary format
Alternatives to substitution cipher
• Symmetric key algorithms (private key)
• Algorithms with two keys
(private and public)
Symmetric key algorithm:
simplified description
• Block cipher: a
plaintext is divided
into blocks of equal
length
• Key: a sequence of
symbols
(or, equivalently, a
number)
Encryption and Decryption with
symmetric key: mathematical model
• Encryption
 Plaintext PT
 Cipher defines a function F that has two
arguments: PT and a key k
 Ciphertext CT = F(PT,k)
• Decryption
-1
 PT = F (CT,k)
Example: Vernam’s cipher
• Represent each letter in binary form
• Transform the plaintext into the sequence of
0’s and 1’s
• Choose a length of the key (say, 7 digits)
• Generate a random 7-digits key
• Divide this sequence into blocks
(7 digits in each block)
• Use addition modulo 2 to encrypt the message
Vernam's cipher
• It was mathematically proved
unbreakable by Claude Shannon (in
1940s) assuming that the following
conditions are satisfied:
One-time pad
 Key is as long as the plaintext
 Key is random
 Used only once, and kept entirely secret
Main problem with symmetric cipher
• If Alice wants to send encrypted messages to Bob
she needs to send the key to Bob
• This is not safe
• It would be nice if
 Bob lets Alice know the algorithm
 Bob send Alice a key called PUBLIC KEY (more precisely,
Bob’s public key) (so everybody knows it)
 Alice uses this key to send an encrypted message to Bob
 Bob uses another key (PRIVATE KEY) to decipher the
message from Alice
 Nobody else (who does not know Bob’s private key) can
decipher this message
YES!
Is it at all
possible?
• RSA algorithm is one of such
methods
• The algorithm was described in
1977 by Ron Rivest, Adi Shamir
and Len Adleman at MIT
• RSA is an “unbreakable” algorithm
Why is RSA so good?
• Factorization into primes
• A prime number is a positive integer greater
than 1 that is divisible only by 1 and itself
 so 2, 3, 5, 7, 11, … are prime numbers
 while 84 = 3*4*7 is not
• Fundamental theorem of arithmetic: every
integer is a product of prime numbers. Such a
representation is unique (up to permutation of
factors)
• Exercise: there are infinitely many primes
Why is RSA so good?
• At the present time, no effective algorithm of
finding prime factorization of numbers is known
• Equivalently, no effective algorithm to decide
whether a given number is prime is known
(it does not mean, however, that such algorithm
cannot exist!)
• Effective means an algorithm that works
“reasonably” fast
• Example: is 943 prime?
References and Further Reading
• Undergraduate
 “Introduction to Cryptography” by Johannes Buchmann
(Springer)
 “Cryptography: An Introduction” by V. V. Yaschenko
(editor)
(American Mathematical Society)
• Graduate
 “A Course in Number Theory and Cryptography”
by Neal Koblitz
(Springer)
Download