1. Trang chủ
  2. » Công Nghệ Thông Tin

Authentication Methods: From Digital Signatures to Hashes doc

33 236 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Authentication Methods: From Digital Signatures to Hashes
Chuyên ngành Cryptography
Thể loại lecture notes
Định dạng
Số trang 33
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 In this lecture, we will look at the following problems: – Entity Authentication: Proof of the identity of an individual – Message Authentication: Data origin authentication Proof that

Trang 1

Authentication Methods: From Digital Signatures to Hashes

Trang 2

– Is Alice really talking to Bob?

– Is Bob really talking to Alice?

 In this lecture, we will look at the following problems:

– Entity Authentication: Proof of the identity of an individual

– Message Authentication: (Data origin authentication) Proof that

the source of information really is what it claims to be

– Message Signing: Binding information to a particular entity

– Data Integrity: Ensuring that information has not been altered by

unknown entities

Trang 3

Lecture Outline

 Discrete Logarithms and ElGamal

– Primitive elements and some more number theory (quickly)

– DLOG

– ElGamal, another Public Key Algorithm…

 Digital Signatures:

– The basic idea

– RSA Signatures and ElGamal Signatures

– Inefficiencies: Hashing and Signing

 Hash Functions:

– Definitions and terminology

– CHP Hash

– SHA-1

 Message Authentication Codes

Note: Some attacks will be discussed More attacks and cryptanalysis will come later in the semester

Trang 4

Primitive Roots

 Consider the following powers of 3 (mod 7):

Note that we obtain all non-zero numbers mod 7.

When this happens, we call 3 a primitive root (or generator) mod 7.

 Is a number always a primitive root? No.

 If p is prime there are φ (p-1) primitive roots mod p

 How to find them? Good homework problem… 

Proposition: Let g be a primitive root for the prime p

1 If n is an integer, then g n =1 (mod p) if and only if and only if n=0 (mod p-1)

2 If j and k are integers, then g j =g k (mod p) if and only if j=k (mod p-1).

Proof: We sketch (1) on the board.

)7(mod1

3,53

,43

,63

,23

,3

31 = 2 = 3 = 4 = 5 = 6 =

Trang 5

Discrete Logarithms

 Let p be a prime, and α and β nonzero integers (mod p) with

The problem of finding x is called the discrete logarithm

problem, and is written:

 Often α will be a primitive root mod p

 The discrete log behaves like the normal log in many ways:

 Generally, finding the discrete log is a hard problem

 f(x) = αx (mod p) is an example of a one-way function.

) p (mod

x

α

= β

( ) β

= Lαx

( 1 2 ) L ( )1 L ( )2

Trang 6

ElGamal Public Key Cryptosystem

 One way functions are often used to construct public key

cryptosystems We saw one in RSA, we now show an example using the DLOG problem

 Alice wants to send m to Bob Bob chooses a large prime p and a primitive root α We assume 0 < m < p Bob also chooses a

secret integer a and computes β=αa (mod p)

 Bob’s Public key is: (p, α, β)

Trang 7

ElGamal Public Key Cryptosystem, pg 2

 Important issues…

– a must be kept secret, else Eve can decrypt

– Eve sees (r,t): t is the product of two random numbers and is hence random Knowing r does not really help as Eve would need to be able to solve DLOG in order to get k

Very important: A different random k must be used for each

message!

– If we have m1 and m2, and use the same k, then the

ciphertexts will be (r,t1) and (r,t2)

– If Eve ever finds m1 then she has m2 also!!!

( mod p )

t / m t m

m / t m

/

t1 1 = βk = 2 2 ⇒ 2 = 2 1 1

Trang 8

Overview of Digital Signatures

 Suppose you have an electronic document (e.g a Word file)

How do you sign the document to prove to someone that it belongs to you?

 You can’t use a scanned signature at the end– this is easy to

forge and use elsewhere

 Conventional signing can’t work in the digital world

 We require a digital signature to satisfy:

1. Digital signatures can’t be separated from the message and

attached to another message

2. Signature needs to be verified by others

Trang 9

An Application for Digital Signatures

 Suppose we have two countries, A and B, that have agreed not

to test any nuclear bombs (which produce seismic waves when detonated) How can A monitor B by using seismic sensors?

1. The sensors need to be in country B, but A needs to access

them There is a conflict here

2. Country B wants to make sure that the message sent by the

seismic sensor does not contain “other” data (espionage)

3. Country A, however, wants to make sure that the data has not

been altered by country B (Assumption: the sensor itself is

tamper proof)

How can we solve this problem?

Trang 10

Treaty Verification Example

 RSA provides a solution:

1. Country A makes an RSA public/private key (n,e) are given to

B but (p,q,d) are kept private in the tamper-proof sensor

2. Sensor collects data x and uses d to encrypt: y=xd (mod n), and

sends x and y to country B

3. Country B takes x and y and calculates z=ye (mod n)

4. If z=x, then B can be sure that the encrypted message

corresponds to x B then forwards (x,y) to A

5. Country A checks that ye (mod n)=x If so, then A is sure that x

has not been modified, and A can trust x as being authentic

 In this example, it is hard for B to forge (x,y) and hence if (x,y)

verifies A can be sure that data came unaltered from the sensor

Trang 11

RSA Signatures

 The treaty example is an example of RSA signatures We now

formalize it with Alice and Bob

 Alice publishes (n,eA) and keeps private (p,q,dA)

 Alice signs m by calculating y=mdA (mod n) The pair (m,y) is

the signed document.

 Bob can check that Alice signed m by:

1. Downloading Alice’s (n,eA) from a trusted third party

Guaranteeing that he gets the right (n,eA) is another problem (we’ll talk about this in a later lecture)

2. Calculate z=yeA (mod n) If z=m then Bob (or anyone else) can

be guaranteed that Alice signed m

Trang 12

RSA Signatures, pg 2

 Suppose Eve wants to attach Alice’s signature to another message m1 She

cannot simply use (m1, y) since

 Therefore, she needs y1 with y1eA =m1 (mod n).

 m1 looks like a ciphertext and y1 like a plaintext In order for Eve to make a

fake y1 she needs to be able to decrypt m1 to get y1!!! She can’t due to

hardness of RSA.

Existential Forgery: Eve could choose y1 first and then calculate an m1 using

(n,eA) via m1=y1eA (mod n) Now (m1, y1) will look like a valid message and signature that Alice created since m1=y1eA (mod n)

 Problem with existential forgery: Eve has made an m1 that has a signature,

but m1 might be gibberish!

 Usefulness of existential forgery depends on whether there is an underlying

“language” structure.

(mod n)

m

yeA ≠ 1

Trang 13

Blind RSA Signatures

 Sometimes we might want Alice to sign a document without knowing its

contents (e.g privacy concerns: purchaser does not want Bank to know what

is being purchased, but wants Bank to authorize purchase).

 We can accomplish this with RSA signatures (Bob wants Alice to sign a

document m):

1 Alice generates an RSA public and private key pair

2 Bob generates a random k mod n with gcd (k,n)=1.

3 Bob computes t=k eA m (mod n), and sends t to Alice

4 Alice signs t as following the normal RSA signature procedure by calculating

s=t dA (mod n) Alice sends Bob s.

5 Bob computes k -1 s (mod n) This is the signed message m dA (mod n)

Trang 14

ElGamal Signatures

 We may modify the ElGamal public key procedure to become a signature scheme

 Alice wants to sign m Alice chooses a large prime p and a

primitive root α Alice also chooses a secret integer a and

computes β=αa (mod p)

 Alice’s Public key is: (p, α, β) Security of the signature depends

on the fact a is private

 Alice does:

1. Chooses a secret random integer k with gcd(k,p-1)=1, and

computes r=αk (mod p)

2. Computes s=k-1(m-ar) (mod p)

3. The signed message is the triple (m,r,s)

Trang 15

ElGamal Signatures, pg 2

 Bob can verify by:

1. Downloading Alice’s public key (p, α, β)

2. Computes v1=βrrs (mod p) and v2=αm (mod n)

3. The signature is valid if and only if v1=v2 (mod p)

v2 = αm = αsk+ar = αa r αk s = βr s = 1

Trang 16

Wastefulness of plain signatures

 In signature schemes with appendix, where we attach the

signature to the end of the document, we increase the

communication overhead

 If we have a long message m=[m1,m2,…,mN], then our signed document is {[m1,m2,…,mN],[sigA(m1),…,sigA(mN)]}

 This doubles the overhead!

 We don’t want to do this when communication resources are precious (which is always!)

 Solution: We need to shrink the message into a smaller

representation and sign that

 Enter: Hash functions

Trang 17

Hash Functions

 Straight-forward application of digital signatures can be

expensive when the message is large

 In general, many security protocols benefit from using a

“digested” or “compressed” representative of a message

– We typically need additional cryptographic properties in order for the compression operation to be useful

This “compression function” is a hash function:

h(m)

Trang 18

Hash Functions, pg 2

Formally, a cryptographic hash function h takes an input

message of arbitrary length and produces a message digest of

fixed length, and satisfies:

1. Given a message m, h(m) is quick to calculate

2. One-Way (preimage resistance): Given a digest y, it is

computationally infeasible to find an m with h(m)=y

3. Strongly Collision Free: It is computationally infeasible to

find messages m1 and m2 with h(m1)=h(m2)

 Can we ever have h(m1)=h(m2)? Yes Why?

 We will look at a couple examples

Trang 19

Chaum, vanHeijst, Pfitzman Hash

 We may use the DLOG problem to construct a hash function

 Choose a prime p such that q=(p-1)/2 is also prime (There’s an algorithm for doing this, but that’s not our goal today) Choose two primitive roots α and β

 The hash function h(m) will take integers (mod q2) to integers (mod p) Hence, producing half the bits

 Write m=x0+x1q with

 Define the hash by:

1 q x

, x

Trang 20

CHP Hash is strongly collision-free

Proposition: If we know with , then

we can solve the discrete logarithm

 Proof: Will be given on the board after we cover all of the slides

m

m ≠ ′

( )β

= Lαa

)m(h)

m(

Trang 21

n-– Message blocks are processed via a sequence of rounds using

a compression function h’ which combines current block and the result of the previous round

– X0 is an initial value, and Xl is the message digest

( j 1 j)

j h X , m

X = ′ −

Trang 22

SHA-1, pg 2

 In SHA-1, we pad according to the rule:

– Start with a message m of arbitrary length and break it into bit blocks

n-– The last block is padded with a 1 followed by enough 0 bits

to make the new message 64 bits short of a multiple of 512 bits in length

– Into the 64 unfilled bits of the last block, we append the bit representation of the length T of the message

64-– Overall, we have blocks of 512 bits

– The appended message becomes m=[m1,m2,…,mL]

 T / 512  1

Trang 23

SHA-1, pg 3 (Basic Operations)

 We will need the following bit operations:

Trang 24

SHA-1, pg 4 (Basic Algorithm)

Trang 25

SHA-1, pg 5 (Inside the Alg.)

Initial 160-bit register

X0=[H0,H1,H2,H3,H4]

Trang 26

SHA-1, pg 6 (Subregister Operations)

• The operations done by

ft(b,C,D) depend on the round number t

• The word Wt depends on the round number t

• The constant Kt depends on the round number t

Trang 27

Message Authentication Codes

 A message authentication code (MAC) is a function that is used

to prevent alteration of messages:

– MACs use a shared key K between Alice and Bob

– Bob checks whether the attached MAC matches what he calculates – Eve cannot alter the message because she does not have K.

 The MAC takes two inputs: the key K and an arbitrary size m

 Ideally, a MAC should be a random mapping from all possible inputs to n-bits of output

 The uncertainty (and security) of the MAC is directly associated with the size of the key K

– Remember: to Eve, the message is known, so it’s the key that

contains the security

Trang 28

 CBC-MAC is a method for turning a block cipher into a MAC:

– Idea: encrypt m using CBC mode and throw away all but last block of ciphertext

– For messages P1, P2, …, Pk, the MAC is calculated by

 Do not use the same key for encryption (confidentiality) and

authentication!

k

1 i i

K i

0

HMAC

HP

EH

IVH

Trang 29

CBC-MAC, pg 2

 Be careful when using CBC-MAC Here’s a possible protocol failure:

Observe: Fix K If MAC(a)=MAC(b), then MAC(a||c)

=MAC(b||c), where c is a single block length in size

1. Now, suppose attacker collects many MAC values and finds a collision This gives a and b for which MAC(a)=MAC(b)

2. If attacker can get the sender to authenticate (a||c) (How is another matter…) then the attacker can replace the message being sent to the receiver with (b||c)

Comment: Its not an easy attack to do, but it is a possible

weakness!

E)

c

||

a(

Trang 30

CBC-MAC, pg 3

 Practical Implementation Details:

1. Generally, if your message is m, do not just calculate MAC(m),

rather you should make an intermediate message s=(l||m),

where l is the length of m in a fixed-length format

2. Pad s to be a multiple of block size

3. Apply CBC-MAC to the padded string s

4. Output the last ciphertext block Do not output any

intermediate block values!

 CBC-MAC can reuse same code as confidentiality (encryption)

functions

 CBC-MAC is generally tough to use correctly, though

Trang 31

 We may also use hash functions to build MACs

 We cannot simply use MACK(m)=h(K||m) or h(m||K):

– Having the key at the front allows for length extension

attacks

– Having the key at the end allows for key-recovery attacks

 Designers of HMAC considered these issues

 HMAC computes

Where a and b are constants that are specified

 HMAC has been around for a while and has been cryptanalyzed It’s the preferred MAC to use

Trang 32

Using MACs

 We must be careful using MACs

 If Alice sends Bob [m||MACK(m)] and Eve records this, she may

send it again at a later time (the replay attack!)

 Generally, you want to authenticate not just the message, but the context That is, you want to authenticate m and additional data

d (such as message number, source, destination, protocol

identifier, sizes for different fields, etc.)

 Why all these possibilities? If you tie the message to the specific context, then it is harder for an adversary to manipulate context fields to forge

 Make certain, though, that you have clear rules on how to split concatenations (d||m) back into d and m

Trang 33

Problems with Hashes

 We must be careful when using hash functions, they are subject to some

“attacks”

Length Extension Attack: Consider a block-based hash like SHA-1, with

input blocks m=(m1, m2, …, mk), and hash h(m).

A new message m’ =(m1, m2, …, mk, mk+1), will have hash h(m’)=h’(h(m),mk+1), where h’ is the compression sub-function.

In systems, such as authentication applications, where we calculate h(X||m), Eve can append extra text to m and also update the hash.

Partial Message Collision Attack: Suppose we are able to find m and m’

such that h(m)=h(m’) If a system uses h(m||X) as an authentication

parameter, then due to the iterative nature h(m||X)=h(m’||X)

An adversary can replace m with m’ during authentication.

 In general hashing practice, we really use f(m)= h(h(m)||m) or f(m)=h(h(m))

as the hash.

Ngày đăng: 15/03/2014, 17:20

TỪ KHÓA LIÊN QUAN

w