Introduction to Computer Security

Transcription

Introduction to Computer Security
Introduction to Computer Security
Foundations of Cryptography
Pavel Laskov
Wilhelm Schickard Institute for Computer Science
Secret communication
key
key
unitue
unitue
Alice
Bob
plaintext
I love you
ciphertext
Encryption
C ywoy cih
plaintext
Decryption
I love you
Cryptography and security objectives
Which security objectives are addressed by cryptography?
Cryptography and security objectives
Which security objectives are addressed by cryptography?
Confidentiality
symmetric cryptography
asymmetric cryptography
Integrity
hashing
Authentication and non-repudiation
digital signatures
Symmetric cryptography
any valid key
shared key
shared key
unitue
unitue
Alice
Bob
plaintext
I love you
ciphertext
Encryption
C ywoy cih
plaintext
Decryption
I love you
Early permutation cipher: scytale
Encryption:
Wrap a parchment strip over a wooden
rod of a fixed diameter and write letters
along the rod.
Decryption:
Wrap a received strip over a wooden rod
of the same diameter and read off the
text.
Example:
troops
headin
gnorth
sendmo
refood
−→ thgsr renee oaonf odrdo pitmo snhod
Monoalphabetic substitution cipher: Caesar
Encryption
Replace each letter with the one three
positions to the right in the alphabet.
Decryption
Replace each letter with the one three
positions to the left in the alphabet.
Example:
HABES OPINIONIS MEAE TESTIMONIUM
MDEHV RSNQNRQNV PHDH XHVXNPRQNZP
Polyalphabetic substitution cipher: Vigenère
Encryption
Write the key over a message,
repeating as necessary.
Substitute each letter with the one
from an appropriate column in the
Vigenère tableau.
Decryption
Same as encryption, use a row
instead of a column.
Example:
unitueun
iloveyou
−→ cywoycih
Polyalphabetic substitution: Enigma
Operating principle: electromechanical
varying map substitution
Main components:
3–5 rotors with pre-defined connectivity
inter-rotor rings: mapping between letters and
connections
letter swap by jumper cables
Key definition: rotor types, ring positions,
jumper settings
Tag
31
30
29
UKW
B
B
B
Walzenlage
I IV III
II V I
III I IV
Ringstellung
16 26 08
18 24 11
01 17 22
---- Steckerverbindungen ---AD CN ET FL GI JV KZ PU QY WX
BN DZ EP FX GT HW IY OU QV RS
AH BL CX DI ER FK GU NP OQ TY
One-time pad ciphers
Encryption:
Generate a random key sequence.
Add a key to a message using
modular arithmetic.
Decryption:
Subtract a key from a message using
modular arithmetic.
Example:
7 (H)
+ 23 (X)
= 30
= 4 (E)
4 (E)
12 (M)
16
16 (Q)
11 (L)
2 (C)
13
13 (N)
11 (L)
10 (K)
21
21 (V)
14 (O) message
11 (L) key
25
message + key
25 (Z) mod 26
Feistel cipher: S and P boxes
S-box
Complex substitution controlled by a key
Secure if enough internal states
Unrealizable for a large number of states
P-box
Block-wise permutation of digits
Simple transformation with maximal
entropy
Insecure against a “tickling attack”
Feistel network
Revival of the idea of a product cipher
Strong polyalphabetic substitution via multiple rounds
Follows theoretical principles of Shannon
A practical Feistel cipher
A multiple-round scheme with
separate keys
Encryption:
Li+1 = Ri
Ri+1 = Li ⊕ f (Ki , Ri )
Decryption: reverse the key order
Li+1 = Ri
Ri+1 = Li ⊕ f (Kn−i , Ri )
3 rounds suffice to achieve a
pseudorandom permutation
DES: Digital Encryption Standard
Adopted in 1977 after two rounds of proposals
Won by IBM’s Lucifer cipher based on Feistel’s design
Key length reduced by NIST from 128 bits to 56 bits
Subject to extensive cryptanalysis research in 1990s’
Broken by specialized hardware crackers in 1997–1999
(fastest result: 22 hours 15 minutes by Deep Crack)
Still widely used in practice (as 3DES)
Replaced by Advanced Encryption Standard (AES) in 2000
DES overview
64 bit plaintext
56 bit key
Initial
Permutation
Permuted
Choice 1
Iteration 1
Iteration 2
K1
K2
Permuted
Choice 2
Left Circular
Shift / 2
Permuted
Choice 2
Left Circular
Shift / 2
...
Iteration 16
32 bit Swap
Inverse Initial
Permutation
64 bit ciphertext
K16
Permuted
Choice 2
Left Circular
Shift / 2
DES round structure
Data to be encrypted
32 bit
32 bit
Li-1
Key used for encryption
28 bit
28 bit
Ri-1
Ci-1
Di-1
Expansion
Permutation
Left Shift
Left Shift
48
+
48
48
Ki
Permutation Contraction
(Perm. Choice 2)
S-Box: Choice
Substitution
32
Permutation
32
+
Li
Ri
Ci
Di
Other symmetric ciphers
Block ciphers
Algorithm
Key size
Block size
Rounds
Applications
3DES
AES
IDEA
Blowfish
RC5
112/168
128/192/256
128
up to 448
up to 2048
64
128
64
64
64
48
10/12/14
8
16
up to 255
Finance, PGP, S/MIME
Repl. for DES/3DES
PGP
Various software
Various software
Stream ciphers
Algorithm
Key size
IV
State
Applications
A5/2
RC4
54
40-256
114
8
64
2064
GSM
WEP, WPA, SSL, SSH, Kerberos, etc.
Resumé of symmetric cryptography
Provides (with some exceptions) a reliable means for
enforcing confidentiality
Highly efficient
Key distribution is a major problem!
Asymmetric cryptography
specially generated
keypair
Bob’s public key
Bob’s private key
unitue
zxtr9y
Alice
Bob
plaintext
I love you
ciphertext
Encryption
C ywoy cih
plaintext
Decryption
I love you
Prime numbers
An integer p is a prime number if its only divisors are ±1 and
±p.
A positive integer c is said to be the greatest common divisor
of a and b if
c is a divisor of a and of b;
any divisor of a and of b is a divisor of c.
Integers a and b are said to be relatively prime if
gcd(a, b) = 1.
Euler’s totient function
A totient φ(n) of an integer n is the number of integers less
than n that are relatively prime to n.
Example:
φ (9) = 6 :
{1, 2, 4, 5, 7, 8}
Two integers a and b are congruent modulo n, written as
a ≡ b mod n, if
(a mod n) = (b mod n)
Euler’s Theorem: If a and n are relatively prime, then
aφ(n) ≡ 1 mod n.
RSA overview
Alice sends her love message to Bob via RSA:
Alice
Bob
Generate a keypair Ku / Kr
Send Ku to Alice
Encrypt plaintext M with Ku
Send ciphertext C to Bob
Decrypt C with Kr
RSA key generation
Step
Select p, q
Compute n = p × q
Compute φ(n) = (p − 1)(q − 1)
Select 1 < e < φ(n)
Compute d
Public key
Private key
Condition
p, q prime, p 6= q
gcd(φ(n), e) = 1
(de) mod φ(n) = 1
Ku = {e, n}
Kr = {d, n}
(∗)
RSA encryption and decryption
Encryption:
Plaintext:
Ciphertext:
M<n
C = Me mod n
Decryption:
Ciphertext:
Plaintext:
C
M = Cd mod n
Correctness of RSA encryption
By the property (∗),
(de) mod φ(n) = 1 ⇒ ∃k : (de) = 1 + kφ(n).
Then,
?
M ≡ Cd mod n
≡ (Me )d mod n
≡ M(ed) mod n
≡ M1+kφ(n) mod n
?
≡ M mod n
Correctness of RSA encryption (ctd.)
For prime numbers p,
φ (p) = (p − 1).
By the key generation algorithm and the multiplicative property of
the totient function,
φ (n) = φ (p) · φ (q) = (p − 1) · (q − 1).
By Euler’s Theorem, if p does not divide M,
M(p−1) = 1 mod p
and since (p − 1) divides φ(n)
M1+kφ(n) ≡ M mod p.
Similar argument holds for q and hence for n = pq.
What’s secret in RSA?
An attacker needs to know d to decrypt C.
To find d, an attacker needs to solve (∗):
(de) mod φ(n) = 1.
For this, he needs to know φ(n).
If p and q are known, then finding φ(n) is trivial:
φ (n) = (p − 1) · (q − 1)
However p and q are discarded during key generation.
Factoring n into a product of two prime numbers is an
intractable problem!
Finding φ(n) directly is likewise intractable.
Other asymmetric ciphers
Algorithm
RSA
ElGamal
DSS
Diffie-Hellmann
Elliptic curve
E/D
Yes
Yes
No
No
Yes
D.S.
Yes
No
Yes
No
Yes
KEX
Yes
No
No
Yes
Yes
Hardness
Factorization
DLP
DLP
DLP
EC DLP
Summary
Cryptographic methods provide solutions for various
confidentiality, integrity and authentication tasks.
Symmetric cryptography is based on a single key that must
be shared between the communication parties and kept
secret.
Asymmetric cryptography is based two related keys; only
one of them (private key) must be kept secret, the other one
(public key) can be distributed over insecure media.
Next lecture
Cryptographic hash functions
Digital signatures