• Nem Talált Eredményt

Brief Overview of Cryptography

N/A
N/A
Protected

Academic year: 2023

Ossza meg "Brief Overview of Cryptography"

Copied!
48
0
0

Teljes szövegt

(1)

Brief Overview of

Cryptography

(2)

Outline

cryptographic primitives

symmetric key ciphers

block ciphers

stream ciphers

asymmetric key ciphers

cryptographic hash functions

protocol primitives

block cipher operation modes “enveloping”

message authentication codes digital signatures

key management protocols

session key establishment with symmetric and asymmetric key techniques

Diffie-Hellman key exchange and the man-in-the-middle attack

public key certification

(3)

C ry p to gr a p hi c pr im iti ve s

E E D D

x

plaintext

k

encryption key

k’

decryption key Ek(x)

ciphertext Dk’ (Ek(x)) = x

attacker

Operational model of encryption

Kerckhoff’s assumption:

attacker knows E and D

attacker doesn’t know the (decryption) key

attacker’s goal:

to systematically recover plaintext from ciphertextto deduce the (decryption) key

attack models:

ciphertext-onlyknown-plaintext

(adaptive) chosen-plaintext(adaptive) chosen-ciphertext

(4)

block ciphers

block cipher block cipher

plaintext ciphertext

padding key

Symmetric key encryption

it is easy to compute k from k’ (and vice versa)

often k = k’

two main types: stream ciphers and block ciphers

pseudo-random bit stream generator

pseudo-random bit stream generator

...

plaintext

+ ...

ciphertext

stream ciphers

seed

p to gr a p hi c pr im iti ve s

(5)

One-time pad – theoretical vs.

practical security

one-time pad

a stream cipher where the key stream is a true random bit stream

unconditionally secure (Shannon, 1949)

however, the key must be as long as the plaintext to be encrypted

practical ciphers

use much shorter keys

are not unconditionally secure, but computationally infeasible to break

however, proving that a cipher is computationally secure is not easy

not enough to consider brute force attacks (key size) only

a cipher may be broken due to weaknesses in its (algebraic) structure

no proofs of security exist for many ciphers used in practice if a proof exists, it usually relies on assumptions that are

widely believed to be true (such as P  NP)

C ry p to gr a p hi c pr im iti ve s

(6)

DES – Data Encryption Standard

input size: 64, output size: 64, key size: 56

16 rounds

Feistel structure

F need not be invertible decryption is the same

as encryption with

reversed key schedule (hardware

implementation!)

Initial Permutation Initial Permutation

FF

+

FF

+

FF

+

FF

+

Initial Permutation-1

(64)

(32) (32)

(48)

(48)

(48)

(48)

Key Scheduler

(56)

K K1

K2

K16 K3 X

ry p to gr a p hi c pr im iti ve s

(7)

DES round function F

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

S1S1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S8S8

PP

Si – substitution box (S-box) (look-up table)

P – permutation box (P-box)

C ry p to gr a p hi c pr im iti ve s

(8)

DES key scheduler

Permuted Choice 1 Permuted Choice 1

Permuted Choice 2 Permuted Choice 2 Left shift(s) Left shift(s)

Permuted Choice 2 Permuted Choice 2 Left shift(s) Left shift(s)

(28) (56)

K

(28)

(28) (28)

(48)

(48)

K1

K2

each key bit is used in around 14 out of 16 rounds

p to gr a p hi c pr im iti ve s

(9)

AES – Advanced Encryption Standard

NIST selected Rijndael (designed by Joan

Daemen and Vincent Rijmen) as a successor of DES (3DES) in November 2001

Rijndael parameters

key size 128 192 256

input/output size 128 128 128number of rounds 10 12 14round key size 128 128 128

not Feistel structure

decryption algorithm is different from encryption algorithm (optimized for encryption)

single 8 bit to 8 bit S-box

key injection (bitwise XOR)

C ry p to gr a p hi c pr im iti ve s

(10)

General structure of Rijndael encryption/decryption

p to gr a p hi c pr im iti ve s

add round key substitute bytes

shift rows mix columns add round key

substitute bytes shift rows mix columns add round key substitute bytes

shift rows add round key

plaintext

add round key inverse subs bytes

inverse shift rows inverse mix columns

add round key inverse subs bytes

inverse shift rows

inverse mix columns add round key inverse subs bytes

inverse shift rows add round key

plaintext w[0..3]

w[4..7]

w[36..39]

w[40..43]

expanded key

round 1round 9round 10 round 1round 9round 10

(11)

Rijndael – Shift row and mix column

C ry p to gr a p hi c pr im iti ve s

s00 s10 s20 s30

s01 s11 s21 s31

s02 s12 s22 s32

s03 s13 s23 s33

s00 s11 s22 s33

s01 s12 s23 s30

s02 s13 s20 s31

s03 s10 s21 s32

LROT1 LROT2 LROT3

shift row

s00 s10 s20 s30

s01 s11 s21 s31

s02 s12 s22 s32

s03 s13 s23 s33

s’00 s’10 s’20 s’30

s’01 s’11 s’21 s’31

s’02 s’12 s’22 s’32

s’03 s’13 s’23 s’33

mix column

2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2

x =

multiplications and additions are performed over GF(28)

(12)

Rijndael – Key expansion

p to gr a p hi c pr im iti ve s

k0 k1 k2 k3

k4 k5 k6 k7

k8 k9 k10 k11

k12 k13 k14 k15

w0 w1 w2 w3

w4 w5 w6 w7

+

gg

+ + +

w8 w9 w10 w11

+

gg

+ + +

… function g

- rotate word - substitute bytes

- XOR with round constant

(13)

RC4 stream cipher

initialization (input: a seed K of keylen bytes)

for i = 0 to 255 do S[i] = i;

T[i] = K[i mod keylen];

initial permutation

j = 0;

for i = 0 to 255 do

j = (j + S[i] + T[i]) mod 256;

swap(S[i], S[j]);

stream generation (output: a stream of pseudo- random bytes)

i, j = 0;

while true

i = (i + 1) mod 256;

j = (j + S[i]) mod 256;

swap(S[i], S[j]);

t = (S[i] + S[j]) mod 256;

output S[t];

C ry p to gr a p hi c pr im iti ve s

(14)

Asymmetric key encryption

breakthrough of Diffie and Hellman, 1976

it is hard (computationally infeasible) to compute k’ from k

k can be made public (public-key cryptography)

E E D D

x

plaintext

k

encryption key

k’

decryption key Ek(x)

ciphertext Dk’ (Ek(x)) = x

attacker

p to gr a p hi c pr im iti ve s

(15)

RSA (Rivest, Shamir, Adleman, 1978)

basis

computing xe mod n is easy but x1/e mod n is hard (n is composite)

intractability of integer factoring

key generation

select p, q large primes (about 500 bits each)n = pq, (n) = (p-1)(q-1)

select e such that 1 < e < (n) and gcd(e, (n)) = 1

compute d such that ed mod (n) = 1 (this is easy if p and q are known)

public key is (e, n)private key is d

encryption

c = me mod n where m < n is the message

decryption

cd mod n = m

C ry p to gr a p hi c pr im iti ve s

(16)

Proof of RSA decryption

Fermat’s theorem

Let r be a prime. If gcd(a, r) = 1, then a

r-1

mod r = 1.

Euler’s generalization

For every a and n where gcd(a, n) = 1, a

(n)

mod n

= 1.

RSA decryption

c

d

mod n

= (m

e

mod n)

d

mod n

= m

ed

mod n

= m

k(n)+1

mod n

= m*(m

(n)

)

k

mod n

= m*(m

(n)

mod n)

k

mod n

 if gcd(m, n) = 1

= m mod n = m

p to gr a p hi c pr im iti ve s

(17)

Proof of RSA decryption cont’d

RSA decryption if gcd(m, n) > 1

either p|m or q|m

assume without loss of generality that p|mnote that in this case, q|m cannot hold since

otherwise m  pq = n

this means that gcd(m, q) = 1 cd mod p = med mod p = 0

cd mod q = med mod q = mk(p-1)(q-1)+1 mod q = m*(m (q-

1)) k(p-1) mod q =

m*(m (q-1) mod q) k(p-1) mod q = m mod q

 p,q|(cd – m)

 cd – m = spq = sn

 cd = sn + m

 cd mod n = m mod n = m

(18)

Cryptographic hash functions

requirements

one-way: given a hash value y, it is computationally infeasible to find a message x such that h(x) = y

weak collision resistance: given a message x, it is computationally infeasible to find another message x’ such that h(x) = h(x’)

(strong) collision resistance: it is computationally infeasible to find two messages x and x’ such that h(x) = h(x’)

message of arbitrary length

fix length

message digest / hash value / fingerprint

p to gr a p hi c pr im iti ve s

hash function hash function

(19)

How long should a hash value be?

birthday paradox

P(n, k) = Pr{ there exists at least one duplicate among k items where

each item can take on one of n equally likely values}

P(n, k) > 1 – exp( -k*(k-1)/2n )

Q: What value of k is needed such that P(n, k) > 0.5 ?A: k should approximately be n0.5

e.g., P(365, 23) > 0.5

birthday paradox applied to hash function h

n is the number of possible hash values

one can find a collision among n0.5 messages with probability greater than 0.5

if output size of h is 64 bits, then n0.5 is 232  too smalloutput size should be at least 128 but 160 is even

better

C ry p to gr a p hi c pr im iti ve s

(20)

General structure of hash functions

if the compression function f is collision resistant, then so is the iterated hash function (Merkle and Damgard, 1989)

if necessary, the final block is padded to b bits

the final block also includes the total length of the input (this makes the job of an attacker

more difficult)

ff

X1

CV0

(b)

(n) (n)

CV1 ff

X2

(b)

(n)

CV2 ff

X3

(b)

(n)

CV3 CVL-1 ff

XL

(b)

(n) h(X)

p to gr a p hi c pr im iti ve s

(21)

SHA1 – Secure Hash Algorithm

output size (n): 160 bits

input block size (b): 512 bits

padding is always used

CV

0

A = 67 45 23 01 B = EF CD AB 89 C = 98 BA DC FE D = 10 32 54 76 E = C3 D2 E1 F0

C ry p to gr a p hi c pr im iti ve s

10000000 … 00000 length

512 bits

64 bits

last input block

(22)

SHA1 compression function f

ry p to gr a p hi c pr im iti ve s

f[0..19], K[0..19], W[0..19]

20 steps

f[0..19], K[0..19], W[0..19]

20 steps

f[20..39], K[20..39], W[20..39]

20 steps

f[20..39], K[20..39], W[20..39]

20 steps

f[40..59], K[40..59], W[40..59]

20 steps

f[40..59], K[40..59], W[40..59]

20 steps

f[60..79], K[60..79], W[60..79]

20 steps

f[60..79], K[60..79], W[60..79]

20 steps

+ + + + +

A B C D E

A B C D E

A B C D E

CVi - 1

(5 x 32 = 160)

Xi

(512)

mod 232 additions

(23)

SHA1 compression function f cont’d

C ry p to gr a p hi c pr im iti ve s

LROT5 LROT5

+

LROT30 LROT30

f[t]f[t]

+ + +

A B C D E

A B C D E

W[t]

K[t]

mod 232 additions

(24)

SHA1 compression function f cont’d

f[t](B, C, D)

t = 0..19 f[t](B, C, D) = (B  C)  (B  D) t = 20..39 f[t](B, C, D) = B  C  D

t = 40..59 f[t](B, C, D) = (B  C)  (B  D)  (C  D) t = 60..79 f[t](B, C, D) = B  C  D

W[t]

W[0..15] = Xi

t = 16..79 W[t] = LROT1(W[t-16]  W[t-14]  W[t- 8]  W[t-3])

K[t]

t = 0..19 K[t] = 5A 82 79 99 [230 x 21/2] t = 20..39 K[t] = 6E D9 EB A1 [230 x 31/2] t = 40..59 K[t] = 8F 1B BC DC [230 x 51/2] t = 60..79 K[t] = CA 62 C1 D6 [230 x 101/2]

p to gr a p hi c pr im iti ve s

(25)

Block cipher operation modes – ECB

Electronic Codebook (ECB)

encrypt

decrypt

P ro to co l p ri m iti ve s

EE

P1

C1

K EE

P2

C2

K EE

PN

CN

K

DD

C1

P1

K DD

C2

P2

K DD

CN

PN K

(26)

Block cipher operation modes – CBC

Cipher Block Chaining (CBC)

encrypt

decrypt

EE

P1

C1 K

+

EE

P2

C2 K

+

EE

P3

C3 K

+

EE

PN

CN-1 K

IV CN-1 +

DD

C1 K

IV +

DD

C2 K

+

DD

C3 K

+

DD

CN K

+ CN-1

to co l p ri m iti ve s

(27)

Block cipher operation modes – CFB

Cipher Feedback (CFB)

encrypt – decrypt

EE

Pi Ci

K

+

shift register (n)

(n)

select s bits select s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

EE

Ci Pi

K

+

shift register (n)

(n)

select s bits select s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

P ro to co l p ri m iti ve s

(28)

Block cipher operation modes – OFB

Output Feedback (OFB)

encrypt – decrypt

EE

Pi Ci

K

+

shift register (n)

(n)

select s bits select s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

EE

Ci Pi

K

+

shift register (n)

(n)

select s bits select s bits

(n)

(s)

(s) (s)

(s)

initialized with IV

to co l p ri m iti ve s

(29)

Block cipher operation modes – CTR

Counter (CTR)

encrypt – decrypt

advantages

efficiency (parallelizable)

random access (the i-th block can be decrypted independently of the others)

preprocessing (the values to be XORed with the plaintext can be pre-computed)

security (at least as secure as the other modes)

simplicity (does not need the decryption algorithm)

EE

Pi Ci

K

+

(n)

(n) (n)

counter + i

(n)

EE

Ci Pi

K

+

(n)

(n) (n)

counter + i

(n)

P ro to co l p ri m iti ve s

(30)

Enveloping

public-key encryption is slow (~1000 times slower than symmetric key encryption)

it is mainly used to encrypt symmetric bulk encryption keys

to co l p ri m iti ve s

generate random symmetric key generate random

symmetric key symmetric-key

cipher (in CBC mode) symmetric-key

cipher (in CBC mode)

plaintext message

public key of the receiver

asymmetric-key cipher

asymmetric-key cipher

digital envelop

bulk encryption key

(31)

Message Authentication Codes (MAC)

used to protect the integrity of messages

also called cryptographic checksums

computation of a MAC involves a secret (shared key)

can be based on an encryption function E

Y

1

= E

K

(X

1

)

Y

i

= E

K

(X

i

+ Y

i-1

) MAC

K

(X) = Y

last

or a hash function h

MAC

K

(X) = h(X|K)

or both

MAC

K

(X) = E

K

(h(X))

P ro to co l p ri m iti ve s

(32)

HMAC

definition

HMACK(X) = h( (K+ + opad) | h( (K+ + ipad) | X ) ) where

h is a hash function with input block size b and output size n

K+ is K padded with 0s on the left to obtain a length of b bits

ipad is 00110110 repeated b/8 timesopad is 01011100 repeated b/8 times+ is XOR and | is concatenation

design objectives

to use available hash functions

easy replacement of the embedded hash functionpreserve performance of the original hash functionhandle keys in a simple way

to co l p ri m iti ve s

(33)

Digital signatures

similar to MACs but

unforgeable by the receiververifiable by a third party

used for message authentication and non- repudiation (of message origin)

based on public-key cryptography

signature generation is based on the private key of the sender

signature verification is based on the public key of the sender

example: RSA based digital signature

public key: (e, n); private key: (d, n)

signature generation (input: m; output: )

(m) = md mod n

signature verification (input: , m; output: yes/no)

e mod n = m?

P ro to co l p ri m iti ve s

(34)

“Hash and sign” paradigm

motivation: public/private key operations are slow

approach: hash the message first and apply public/private key operations to the hash only

to co l p ri m iti ve s

hh encenc

private key of sender

message hash signature

hh

message hash

decdec

public key of sender

signature

compare compare generationverification

(35)

ElGamal signature scheme

key generation

generate a large random prime p and select a generator g of Z

p

*

select a random integer 0 < a < p-1compute A = g

a

mod p

public key: ( p, g, A ) private key: a

signature generation for message m

select a random secret integer 0 < k < p – 1 such that gcd(k, p – 1) = 1

compute k

-1

mod (p – 1)compute r = g

k

mod p

compute s = k

-1

( h(m) – ar ) mod (p – 1)signature on m is (s, r)

P ro to co l p ri m iti ve s

(36)

ElGamal signature scheme cont’d

signature verification

obtain the public key (p, g, A) of the signerverify that 0 < r < p; if not then reject the

signature

compute v

1

= A

r

r

s

mod p compute v

2

= g

h(m)

mod p

accept the signature iff v

1

= v

2

proof that signature verification works

s  k

-1

( h(m) – ar ) (mod p – 1) ks  h(m) – ar (mod p – 1)

h(m)  ks + ar (mod p – 1)

g

h(m)

 g

ar+ks

 (g

a

)

r

(g

k

)

s

 A

r

r

s

(mod p) thus, v

1

= v

2

is required

to co l p ri m iti ve s

(37)

How to establish a shared symmetric key?

manually

pairwise symmetric keys are established manuallyinflexible and doesn’t scale

with symmetric-key cryptography

long-term symmetric keys are established manually between each user and a Key Distribution Center (KDC)

cryptographic protocols that use these long-term keys are used to setup short-term (session) keysthe KDC must be fully trusted

with asymmetric-key cryptography

the symmetric key is encrypted with the public key of the intended receiver

how to obtain an authentic copy of the public key of the receiver?

K e y m an ag e m e n t

(38)

y m an ag e m e n t

A, { B, Kab, Ta }Kas

{ A, Kab, Ts }Kbs

A S B

generate Kab

S B

M

(impersonating A and B)

B, { A, Kab, Ts }Kbs { B, Kab, Ts’ }Kas

A, { B, Kab, Ts’ }Kas { A, Kab, Ts’’ }Kbs

...

{ A, Kab, Ts(n) }Kbs

The Wide-Mouth-Frog protocol

a vulnerability

(39)

The Needham-Schroeder protocol (1978)

Denning and Sacco attack (1981)

message 3 doesn’t contain anything fresh for B

an attacker can cryptanalyze an old session key Kab and replay message 3 to B

the attacker can finish the protocol

B will think he shares a key Kab with A, but A is not involved at all

K e y m an ag e m e n t

A, B, Na

{ Na, B, Kab, {Kab, A}Kbs }Kas

S A B

generate Kab

{ Kab, A }Kbs { Nb }Kab { Nb -1}Kab

(40)

Public-key Needham-Schroeder (1978)

since N

a

and N

b

are known only to A and B, one may suggest that they can generate a key as f(N

a

, N

b

)

Lowe’s attack (1995)

A B

{ A, Na }Kb { Na, Nb }Ka

{ Nb }Kb

A B

{ A, Na }Km

{ Na, Nb }Ka

{ Nb }Km

M

{ A, Na }Kb

{ Na, Nb }Ka

{ Nb }Kb

y m an ag e m e n t

(41)

generate random number 0 < a < p-1

and calculate A = ga mod p generate random number 0 < a < p-1

and calculate A = ga mod p

generate random number 0 < b < p-1

and calculate B = gb mod p generate random number 0 < b < p-1

and calculate B = gb mod p

calculate

K= Ba mod p = gab mod p calculate

K= Ba mod p = gab mod p calculate

K= Ab mod p = gab mod p calculate

K= Ab mod p = gab mod p

Diffie-Hellman key exchange (1976)

Initially known:

p large prime

g generator of Zp*

A B

Alice Bob

K e y m an ag e m e n t

(42)

Man-in-the-middle attack

consider the following protocol

the MiM attack

A B

A, Ka { message }Ka

A, Ka

{ message }Ka

A M B

A, Km

{ message }Km

y m an ag e m e n t

(43)

Public-key certificates

a certificate is data structure that contains

the public key

name of the owner of the public keyname of the issuer

date of issuingexpiration date

possibly other data

signature of the issuer

issuers are usually trusted third parties called Certification Authorities (CA)

need not be on-line

certificates are distributed through on-line databases called Certificate Directories

need not be trusted

K e y m an ag e m e n t

(44)

Single CA

every public key is certified by a single CA

each user knows the public key of the CA

each user can verify every certificate

note: the CA must be trusted for issuing correct certificates

problem: doesn’t scale

CA

structures

(45)

Certificate chains

first certificate can be verified with a known public key

each further certificate can be verified with the public key from the previous certificate

last certificate contains the target key (Bob’s public key)

note: every issuer in the chain must be trusted (CA0, CA1, CA2)

CA1 KCA1

KCA0-1

CA2 KCA2

KCA1-1

Bob KBob

KCA2-1

KCA0

CA structures

(46)

CA structures

CA0

CA1 CA2 CA3

CA11 CA12 CA23 CA31 CA32

each user knows the public key of the root CA

0

Alice Bob

structures

(47)

CA structures cont’d

each user knows the public key of its local CA

CA0

CA1 CA2 CA3

CA11 CA12 CA23 CA31 CA32

Alice Bob

CA structures

(48)

CA structures cont’d

each user knows the public key of her root CA

CA1 CA3

CA11 CA12 CA2 CA31 CA32

Alice Bob

structures

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Complex formation results a significant, solvent dependent (30-59 nm) batochromic shift of the emission maximum.This shift is accompanied by a switch-off effect in the case of the

„There is no substitute for the clinician`s standing by the ventilator, making necessary adjustments and monitoring the effects of

Add, hogy csak Te élj már, s add, hogy magam csak mint szőnyeget lábad érintése alatt, így tudjam, valljam,... Ének az

Add, hogy csak Te élj már, s add, hogy magam csak mint szőnyeget lábad érintése alatt, így tudjam, valljam, s legyek teljes abban,.. hogy

Szülei azért adták be egyidőre a zárdába, hogy elvonják valamennyire a sok szórakozástól és a férfitársaságtól. Igy is elég gyakran kikérték egy- egy napra az intézetből,

If an attacker has a single encrypted packet of length l and access to such an oracle O crc , he can decrypt the last m bytes of the packet and recover the last m bytes of the

Search again through the elements of the matrix and find another smallest positive element w 56 = 4, search be- tween elements in the marked rows and columns.. Cho-

Ilyen szempontból nem az ázsiai országokban és főként Japánban testesül meg a tökéletes bizalomra épülő politikai- gazdasági államforma, mint ahogyan Francis Fukuyama írja