07/01/2018

Chương 3b:

MÃ XÁC THỰC THÔNG ĐIỆP

(MESSAGE AUTHENTICATION CODES)

GV: Nguyễn Thị Hạnh

Nội dung chính

1. Khái niệm toàn vẹn và xác thực thông điệp

2. MAC (Message Authentication Code)

(cid:1) Nested MAC (cid:1) HMAC (cid:1) CMAC

3. Thảo luận vài cơ chế MAC

(Cryptography & Network Security. McGraw-Hill,

1

Inc., 2007., Chapter 11)

07/01/2018

Mục tiêu

(cid:1) Toàn vẹn là gì (cid:1) Phương pháp nhận diện dữ liệu không toàn vẹn (cid:1) Mục tiêu của MAC; Các phương pháp để xác thực

thông điệp ˗ Tìm hiểu về MAC

(cid:1) Mô hình tổng quát MAC (cid:1) Bảo mật MAC (cid:1) Đặc tính của MAC (cid:1) Yêu cầu đối với MAC (cid:1) An toàn của MAC

3

˗ Khái niệm về toàn vẹn và xác thực thông điệp

Mục tiêu

(cid:1) Nested MAC (cid:1) Keyed Hash Function (cid:1) HMAC (cid:1) CMAC

4

2

˗ Thảo luận về và cơ chế MAC

07/01/2018

1. Khái niệm xác thực thông điệp

1.1 Toàn vẹn thông điệp (Message Integrity)

1.2 Xác thực thông điệp

5

(Message Authentication )

1.1 Integrity Message

˗ Đối phương insert/modify/delete nội dung

6

3

thông điệp

07/01/2018

1.1 Integrity Message

7

˗ Phương pháp chứng minh hoặc phát hiện đối phương đã thay thế thông điệp M bằng thông điệp giả mạo M’ (cid:1) Message Digest (cid:1) Message Detection Code (MDC)

Message Digest

˗ Tạo bản băm của thông điệp m: y=h(M)

8

4

˗ Giống như “fingerprint” của thông điệp

07/01/2018

Modification Detection Code (MDC)

9

˗ Một MDC là message digest mà có thể chứng minh tính toàn vẹn của thông điệp: thông điệp không bị thay đổi.

1.2 Message Authentication

Mục tiêu ˗ Xác nhận nguồn gốc của dữ liệu ˗ Thuyết phục với NSD là dữ liệu này chưa bị

sửa đổi hoặc giả mạo.

˗ Là cơ chế quan trọng để duy trì tính toàn vẹn

10

5

và không thể từ chối dữ liệu

07/01/2018

1.2 Message Authentication

Các phương pháp Message Authetication: ˗ Mã hóa thông điệp: sử dụng mã hóa khóa bí

mật, mã hóa khóa công khai

˗ Hàm băm (Hash Function): Một hàm ánh xạ

một thông điệp có chiều dài bất kỳ vào một giá trị băm có chiều dài cố định sử dụng để chứng thực.

11

˗ Mã chứng thực thông điệp (MAC): một hàm và một khóa bí mật tạo ra một giá trị có chiều dài cố định sử dụng để chứng thực

2. Message Authentication Code

12

6

˗ Cơ chế tổng quát

07/01/2018

2. Message Authentication Code

13

Bảo mật của MAC tùy thuộc vào bảo mật của hàm băm

Đặc điểm của MAC

MAC=CK(M)

(cid:1) Nén một thông điệm M có chiều dài bất kỳ (cid:1) Dùng một khóa bí mật K (cid:1) Thành một xác thực kích thước cố định

˗ MAC là một cryptographic checksum

(cid:1) Nhiều thông điệp có cùng MAC (cid:1) Nhưng tìm ra ra chúng là không dễ

14

7

˗ Một hàm many-to-one

07/01/2018

Yêu cầu đối với MAC

(cid:1) Biết một thông điệp và MAC, thì không thể tìm ra

một thông điệp khác có cùng MAC

(cid:1) Các MAC nên được phân bố đồng đều (cid:1) MAC nên tùy thuộc ngang nhau trên tất cả các bit

của thông điệp

15

˗ Tính toán đến các loại tấn công ˗ MAC phải thỏa mãn những điều sau:

An toàn của MAC

(cid:1) Cho một hoặc nhiều cặp [xi, MAC(K, xi)], rất khó để tính toán tìm ra x„ xi mà có cùng giá trị MAC của xi

(cid:1) Có 2 hướng:

• Tấn công không gian khóa: 2k (với k – kích cở khóa) • hoặc giá trị MAC: 2n (Ít nhất 128-bit MAC thì mới an toàn) ˗ Cryptanalytic Attacks: Khai thác vài đặt tính của

thuận toán MACs hoặc hàm hash (cid:1) Tốt hơn vét cạn (cid:1) Có nhiều biến thể trong cấu trúc của MACs hơn

hàm hash nên tấn công MACs khó khăn hơn hàm hash.

16

8

˗ Brute-force attacks:

07/01/2018

3. Vài cơ chế MAC

3.1 Nested MAC

3.2 Keyed Hash Functions as MACs

3.3 MAC dựa vào hàm băm (HMAC)

17

3.4 MAC dựa vào mã hóa khối (CMAC)

3.1 Nested MAC

18

9

˗ Để tăng bảo mật của MAC ˗ Băm được áp dụng nhiều lần

07/01/2018

3.2 Keyed Hash Functions as MACs

˗ Mong muốn có môt MAC dựa trên hàm băm (cid:1) Các hàm băm nhanh hơn mã khối đối xứng (cid:1) Mã hàm băm có thể áp dụng một cách rộng rãi ˗ Băm bao gồm một khóa (key) cùng với thông

điệp

(cid:1) Một vài điểm yếu đã được chỉ ra với hàm này

KeyedHash=Hash(Key|Message)

19

(cid:2) Phát triển HMAC

3.3 MAC dựa vào hàm băm (HMAC)

(cid:1) Dùng hàm băm nguyên mẫu (không chỉnh sửa) (cid:1) Cho phép thay thế dễ dàng hàm băm được nhúng

vào trong trường hợp các hàm băm nhanh hơn hoặc nhiều bảo mật được tìm ra hoặc yêu cầu

(cid:1) Duy trì hiệu năng ban đầu của hàm băm mà không

mắc phải sự suy giảm nghiêm trọng

(cid:1) Dùng và quản lý các khóa một cách dễ dàng. (cid:1) Có một sự phân tích mật mã hiểu được về sức mạnh

của sự chứng thực

20

10

˗ Gọi là HMAC ˗ Đặc điểm

07/01/2018

3.3 MAC dựa vào hàm băm (HMAC)

21

˗ Quá trình thực hiện

3.3 MAC dựa vào hàm băm (HMAC)

(cid:1) Tấn công brute force trên khóa được dùng (cid:1) Tấn công ngày sinh nhật

Bảo mật của HMAC ˗ Dựa lên bảo mật của hàm băm ˗ Tấn công HMAC:

˗ Hàm băm được chọn sử dụng dựa trên ràng

22

11

buộc về tốc độ và bảo mật

07/01/2018

3.4 MAC dựa vào mã hóa khối (CMAC)

˗ Có DAA (Data Authentication Algorithm), hiện

nay đã lỗi thời

nghiệp

(cid:1) Có kích cở thông điệp giới hạn (cid:1) Dùng 2 khóa và padding (cid:1) Được thông qua bởi NIST SO800-38B

23

˗ CMAC (Cipher-based Message Authentication Code), được thiết kế để khắt phục những yếu kém của DAA (cid:1) Được dùng rộng rãi trong chính phủ và doanh

CMAC

24

12

07/01/2018

Câu hỏi và bài tập

1. Phân biệt giữa toàn vẹn thông điệp và chứng

thực thông điệp

2. Phân biệt giữa MDC và MAC 3. Phân biệt giữa HMAC và CMAC 4. Giải thích tại sao Public Key không được

25

13

dùng trong việc tạo một MAC