announcements:questions? this week: discrete logs, diffie-hellman, elgamal discrete logs,...

12
Announcements: Announcements: Questions? Questions? This week: This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions and SHA-1 Birthday attacks Birthday attacks DTTF/NB479: Dszquphsbqiz DTTF/NB479: Dszquphsbqiz Day Day 27 27

Post on 20-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

Announcements:Announcements:

Questions? Questions?

This week:This week: Discrete Logs, Diffie-Hellman, ElGamalDiscrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1Hash Functions and SHA-1 Birthday attacksBirthday attacks

DTTF/NB479: DszquphsbqizDTTF/NB479: Dszquphsbqiz Day 27Day 27

Page 2: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

Hash FunctionsHash Functions

Goal: to provide a unique “fingerprint” of the message.Goal: to provide a unique “fingerprint” of the message.How? Must demonstrate 3 properties:How? Must demonstrate 3 properties:

1.1. FastFast to compute y from m. to compute y from m.2.2. One-wayOne-way: given y = h(m), can’t find : given y = h(m), can’t find any any m’ satisfying h(m’) = y m’ satisfying h(m’) = y

easily.easily.3.3. Strongly Strongly collision-freecollision-free: Can’t find any m: Can’t find any m11 != m != m22 such that such that

h(mh(m11)=h(m)=h(m22) easily) easily4.4. (Sometimes we can settle for weakly collision-free: given m, (Sometimes we can settle for weakly collision-free: given m,

can’t find m’ != m with h(m) = h(m’).can’t find m’ != m with h(m) = h(m’).

Message m(long)

Message digest, y(Shorter fixed length)Cryptographic hash

Function, hShrinks data, so 2 messages can have the same digest: m1 != m2, but H(m1) = h(m2)

Page 3: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

EHAEHA: Easy Hash Algorithm: Easy Hash Algorithm

Break m into n-bit blocks, Break m into n-bit blocks, append zeros to get a append zeros to get a multiple of multiple of nn..

There are L of them, There are L of them, where L =|m|/nwhere L =|m|/n

Fast! But not very secure.Fast! But not very secure.

Doing a left shift on the Doing a left shift on the rows helps a little:rows helps a little:

DefineDefine as left-as left-shifting m by y bitsshifting m by y bits

ThenThen

ln21

22221

11211

2

1

...

mmm

mmm

mmm

m

m

m

m

ll

n

n

l

nccc ...21

ym

ymm ii

=h(m)

1,1,

212322

11211

...

...

llllll

n

mmm

mmm

mmm

Page 4: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

EHAEHA: Easy Hash Algorithm: Easy Hash Algorithm

nccc ...21

=h(m)

Exercise:1. Show that the basic (unrotated) version doesn’t satisfy properties 2 and 3.2. Show that the rotated version doesn’t satisfy properties 2 and 3 either.

Conclusion: Need nonlinearity!

3 properties:3 properties:1.1. Fast to computeFast to compute2.2. One-way: given y = One-way: given y =

h(m), can’t find h(m), can’t find any any m’ satisfying h(m’) = m’ satisfying h(m’) = y easily.y easily.

3.3. Strongly collision-Strongly collision-free: Can’t find mfree: Can’t find m11 != != mm22 such that such that h(mh(m11)=h(m)=h(m22))

ln21

22221

11211

2

1

...

mmm

mmm

mmm

m

m

m

m

ll

n

n

l

Page 5: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1SHA-1: Secure Hash Algorithm: Secure Hash Algorithm

NSA NSA NIST NIST

““This standard specifies a Secure Hash Algorithm (SHA), which is necessary This standard specifies a Secure Hash Algorithm (SHA), which is necessary to ensure the security of the to ensure the security of the Digital Signature Algorithm (DSA)Digital Signature Algorithm (DSA). . When a When a message of any length < 2message of any length < 26464 bits is input, the SHA produces a 160-bit output bits is input, the SHA produces a 160-bit output called a message digest.called a message digest. The message digest is then input to the The message digest is then input to the DSA, DSA, which computes the signature for the messagewhich computes the signature for the message. Signing the message digest . Signing the message digest rather than the message often improves the efficiency of the process, rather than the message often improves the efficiency of the process, because the message digest is usually much smaller than the message. The because the message digest is usually much smaller than the message. The same message digest should be obtained by the verifier of the signature same message digest should be obtained by the verifier of the signature when the received version of the message is used as input to SHA. when the received version of the message is used as input to SHA. The The SHA is called secure because it is designed to be computationally infeasible SHA is called secure because it is designed to be computationally infeasible to recover a message corresponding to the message digest.to recover a message corresponding to the message digest. Any change to Any change to the message in transit will, with a very high probability, result in a different the message in transit will, with a very high probability, result in a different message digest, and the signature will fail to verify.message digest, and the signature will fail to verify. The SHA is based on The SHA is based on principles similar to those used by Professor Ronald L. Rivest of MIT when principles similar to those used by Professor Ronald L. Rivest of MIT when designing the MD4 message digest algorithm, and is closely modelled after designing the MD4 message digest algorithm, and is closely modelled after that algorithm.” that algorithm.”

(Proposed Federal Information Processing Standard for Secure Hash (Proposed Federal Information Processing Standard for Secure Hash Standard,” Standard,” Federal RegisterFederal Register, v. 57, n. 177, 11 Sep 1992, p. 41727), v. 57, n. 177, 11 Sep 1992, p. 41727)

…how?

Page 6: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1SHA-1: Prepare the message: Prepare the message

1.1. Prepare the message. Prepare the message. Given m, create mmm…m1000…000xxxxx….x:Given m, create mmm…m1000…000xxxxx….x:

AppendAppend a 1 and then enough zeros to make the total congruent a 1 and then enough zeros to make the total congruent to 448 (mod 512) bits (to leave room for the length)to 448 (mod 512) bits (to leave room for the length)AppendAppend the length of m (≤ 2 the length of m (≤ 26464, so can be written in 64 bits), so can be written in 64 bits)

Break into L 512-bit chunks. Break into L 512-bit chunks. Each will be used to compress Each will be used to compress into a 160- bit total message digest.into a 160- bit total message digest.

Example: Encode m with length 5000 bits.What is L?

1

Page 7: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1: NotationSHA-1: Notation

Bitwise ANDBitwise AND

Bitwise ORBitwise OR

Bitwise XORBitwise XOR

Bitwise NOTBitwise NOT

Left-shift, with wrap-aroundLeft-shift, with wrap-around

Addition, mod 2Addition, mod 23232

2

Page 8: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1SHA-1: Iterative compression: Iterative compression

Idea: iterate over all of the L blocks, outputting a value Idea: iterate over all of the L blocks, outputting a value that is a function of the previous output and the current that is a function of the previous output and the current block:block:

Now, the function h’…

m1m2

X0 X1 X2

h’ h’

m3

X3

h’

mL

XL

h’

=h(m)

3

(X0 is constant)

Page 9: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1: Compression function: h’SHA-1: Compression function: h’

Input: XInput: X00 (160 bits), m (160 bits), m11 (512 bits): Output: X (512 bits): Output: X11

1161483 ttttt WWWWW

Expand m1 from 5122560 bits.

m1=(W0..W15) (32 bits each)

Initialization4 rounds of 20

iterations each:

Each round uses a different K and different nonlinear mixing function f

w79…w16 …w19

m1

w0 w1 w15…

a

b

c

d

e

a

b

c

d

e

H

H

H

H

H

X

0

1

2

3

4

0

K0..19=0x5A827999

Round 1

K20..39=6ED9EBA1

K40..59=8F1BBCDC

K60..79=CA62C1D6

Round 2 Round 3 Round 4

… (20 iters) 10 XX

a

b

c

d

e

4-5

Page 10: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SHA-1SHA-1: Iterative compression: Iterative compression

Repeat the algorithm on the previous slide L times until Repeat the algorithm on the previous slide L times until you’ve compressed the whole message into a single you’ve compressed the whole message into a single 160-bit vector.160-bit vector.

Each can be implemented in hardware.

m1m2

X0 X1 X2

h’ h’

m3

X3

h’

mL

XL

h’

=h(m)

6

Page 11: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

Interesting triviaInteresting trivia

The NSA added the left shift in The NSA added the left shift in ww after the after the fact. The change “corrects a technical flaw fact. The change “corrects a technical flaw that made the standard less secure than that made the standard less secure than have been thought”. have been thought”.

(Proposed Revision of Federal Information Processing Standard (FIPS) 180, (Proposed Revision of Federal Information Processing Standard (FIPS) 180, for Secure Hash Standard,” for Secure Hash Standard,” Federal RegisterFederal Register, v. 59, n. 131, 11 Jul 1994, , v. 59, n. 131, 11 Jul 1994, p. 35317-35318)p. 35317-35318)

7-9

Page 12: Announcements:Questions? This week: Discrete Logs, Diffie-Hellman, ElGamal Discrete Logs, Diffie-Hellman, ElGamal Hash Functions and SHA-1 Hash Functions

SummarySummary

What’s an attack on SHA-1 look like?What’s an attack on SHA-1 look like?

In other words, how do we find collisions?In other words, how do we find collisions?

Stay tuned…Stay tuned… Next time we’ll learn what birthdays have to do with collisionsNext time we’ll learn what birthdays have to do with collisions

How long before SHA-1 will be broken?How long before SHA-1 will be broken?

Latest on SHA-3, under development: Latest on SHA-3, under development: http://www.nist.gov/itl/csd/sha3_010511.cfm