Introduction to Cryptography
Download
Report
Transcript Introduction to Cryptography
Introduction to Codes,
Ciphers, and Cryptography
Michael A. Karls
Ball State University
1
Introduction
Throughout history, people have had
the need to send messages to other
people in secret!
Methods have been developed to
disguise and break secret messages.
2
Definitions and Terminology
A code is a form of secret communication in
which a word or phrase is replaced with a
word, number, or symbol.
For example, here is a simple code for an
army.
“Attack at dawn” Jupiter.
“The coast is clear” Tippy-toe.
Each commander and soldier would have a copy
of the codes in some sort of codebook.
3
Definitions and Terminology
(cont.)
A cipher is a form of secret communication in which letters are
replaced with a letter, number, or symbol.
One example of a cipher, attributed to Julius Caesar (1st
Century B.C.), is outlined in the table below.
Basically, the cipher alphabet is the plain alphabet shifted n
spaces left.
For example, if we take n = 14, we get:
“attack at dawn”
“OHHOQY OH ROKB”
Plaintext:
Ciphertext:
Send ciphertext as OHH OQY OHR OKB.
Recipient would need to know how message was created.
Plaintext
a
b
c
d
e
f
g
h
i
j
k
l
m n
o
p
q
r
s
t
u v
w x
y
Ciphertext
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
C
D
E
F
G
H
I
K
M N
B
J
L
z
4
Definitions and Terminology
(cont.)
Cryptography is the science of concealing the
meaning of a message.
It is also used to mean the science of anything
connected with ciphers—an alternative to
cryptology, which is the science of secret writing.
To encrypt a message, one conceals the meaning
of the message via a code or cipher.
Similar definitions hold for encode and encipher.
To decrypt a message, one turns an ecrypted
message back into the original message.
Similar definitions hold for decode and decipher.
5
Notes on Ciphers
For any cipher there is an algorithm,
which is a general encrypting method,
and a key which specifies the exact
details of the algorithm.
For the Caesar cipher,
Algorithm—shift the alphabet.
Key—how many places to shift!
Thus, there are 26 keys for this cipher.
6
Notes on Ciphers (cont.)
The key must remain secure!
If the key is found, the code will be
broken.
If the algorithm is known, the code can
still be secure!
For a code or cipher, the greater the
number of keys, the greater the security!
7
Notes on Ciphers (cont.)
The Caesar cipher is an example of a
substitution cipher.
This cipher is symmetric because
sender and receiver must both know
(have) the key.
8
Ciphers via Modular Arithmetic
Using modular arithmetic, we can make
ciphers!
For any non-negative integers a and n, we
define a mod n to be the remainder when a
is divided by n.
For example,
18 mod 5 = 3, since 18 = 3 x 5 + 3
4 mod 7 = 4, since 4 = 0 x 7 + 4
28 mod 26 = 2, since 28 = 1 x 26 + 2
26 mod 13 = 0, since 26 = 2 x 13 + 0
9
Ciphers via Modular Arithmetic
(cont.)
We can add and multiply numbers mod n too!
For example, here is how to find (27+15) mod 26
and (27 x 15) mod 26.
27+15 = 42 and 42 mod 26 = 16,
so (27+15) mod 26 = 16
or
27 mod 26 = 1 and 15 mod 26 = 15,
so (27+15) mod 26 = (1+15) mod 26 = 16 mod 26 = 16
27 x 15 = 405 and 405 mod 26 = 15,
so (27 x 15) mod 26 = 15
or
(27 x 15) mod 26 = (1 x 15) mod 26 = 15 mod 26 = 15
10
Ciphers via Modular Arithmetic
(cont.)
To find (a+b) mod n:
Add a to b, then find the resulting sum
mod n,
Or find a mod n, find b mod n, and add the
results mod n.
Multiplication works in a similar fashion!
Now we are ready to make an additive
cipher!
11
Ciphers via Modular Arithmetic
(cont.)
First, assign 1, 2, …, 26 mod 26 to a, b, …, z.
Next, choose a fixed integer m between 0 and 25.
To get the ciphertext y from plaintext x, add m mod 26, i.e., y = (x+m)
mod 26.
As an example, here is additive cipher alphabet for m=14.
Plaintext
a
b
c
d
e
f
g
h
i
j
k
l
m
Plaintext #
1
2
3
4
5
6
7
8
9
10
11
12
13
Ciphertext #
15
16
17
18
19
20
21
22
23
24
25
0
1
Ciphertext
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
Plaintext
n
o
p
q
r
s
t
u
v
w
x
y
z
Plaintext #
14
15
16
17
18
19
20
21
22
23
24
25
0
Ciphertext #
2
3
4
5
6
7
8
9
10
11
12
13
14
Ciphertext
B
C
D
E
F
G
H
I
J
K
L
M
N
Notice that this is just the Caesar cipher we saw before!
12
The RSA Encryption Scheme
In 1977, MIT mathematicians Rivest,
Shamir, and Adleman announced their
invention of a public key cryptography
scheme.
In order to understand this scheme,
commonly known as RSA, we need
some definitions!
13
Definition of Divisor
Let a and b be integers, with b 0.
We say that b divides a or b is a
divisor of a if a = bc for some integer c.
Notation: b|a
Example 1:
3|24 since 24 = 3 x 8.
Divisors of 12 are: -12, -6, -4, -3, -2,
-1, 1, 2, 3, 4, 6, 12
14
Definition of Greatest Common
Divisor (GCD)
Let a and b be integers, not both zero. The
greatest common divisor (GCD) of a and b
is the largest integer that divides both a and
b.
Notation: (a,b)
Example 2:
Divisors of 6: -6, -3, -2, -1, 1, 2, 3, 6
Divisors of 8: -8, -4, -2, -1, 1, 2, 4, 8
Thus, (6,8) = 2
Since the divisors of 7 are -7, -1, 1, 7,
(7,8) = 1.
15
Definition of Relatively Prime
Two integers whose GCD is 1 are said
to be relatively prime.
Example 3:
Since (7,8) = 1, 7 and 8 are relatively
prime.
16
Definition of Prime Number
A positive integer p is said to be prime
if p>1 and the only positive divisors of
p are 1 and p.
Example 4:
2, 3, and 7 are prime.
6, 8, 10, 100 are not prime
(composite).
17
RSA Scheme (with Alice and
Bob!)
Step 1:
Example 5:
Alice chooses two
huge prime numbers p
and q.
Note: Alice keeps p
and q secret!
p = 47 and q = 59.
18
RSA Scheme (with Alice and
Bob!) (cont.)
Step 2:
Example 5 (cont.):
Alice computes
N = p x q.
Then she computes
k = (p-1)(q-1).
Finally, she chooses
an integer e such that
1<e<N and (e,k) =1.
N = 47 x 59 = 2773.
k = 46 x 58 = 2668.
e = 17.
Choice of e is o.k,
since 1<17<2773 and
(17,2668)= 1.
19
RSA Scheme (with Alice and
Bob!) (cont.)
Step 3:
Example 5 (cont.):
Alice computes
d = e-1 mod k.
Alice publishes her
public key: N, e.
Alice keeps secret her
private key: p, q, d, k.
d = 17-1 mod 2668 =
157.
Alice’s public key:
N = 2773; e = 17.
Alice’s private key:
p = 47; q = 59; d =
157; k = 2668.
20
RSA Scheme (with Alice and
Bob!) (cont.)
Step 4:
Example 5 (cont.):
Suppose Bob wants to
send a message to
Alice.
To do so, he looks up
Alice’s public key,
converts the message
into numbers M<N.
Plaintext is HELLO
HELLO HE LL O_
Assign 00space;
01A; 02B, … ,
26Z (or use ASCII).
Plaintext Plain #
¨
HE
0805
LL
1212
O_
1500
21
RSA Scheme (with Alice and
Bob!) (cont.)
Step 4 (cont.):
Example 5 (cont.):
Next, for each plaintext
number M, Bob computes:
C = Me mod N
(1)
to get ciphertext number C.
080517 mod 2773 =
542.
121217 mod 2773 =
2345.
150017 mod 2773 =
2417.
Encrypted message is
0542 2345 2417.
22
RSA Scheme (with Alice and
Bob!) (cont.)
Step 5:
Example 5 (cont.):
Bob emails Alice the
encrypted message.
To decrypt, Alice uses her
private key and computes:
M = Cd mod N (2)
0542157 mod 2773 =
805.
2345157 mod 2773 =
1212.
2417157 mod 2773 =
1500.
Decrypted message is
HE LL O_.
23
References
The Code Book by Simon Singh
24