25
8/17/2015 1 Giảng viên: Lê Phúc Email: [email protected] Website: http://is.ptithcm.edu.vn/~lephuc Cryptography INT1303 Information security, PTITHCM, 2015 Tổng quan về mật mã INT1303 Information security, PTITHCM, 2015 2

An toàn và bảo mật hệ thống thông tin - C2: cryptography

Embed Size (px)

Citation preview

Page 1: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

1

Giảng viên: Lê Phúc

Email: [email protected]

Website: http://is.ptithcm.edu.vn/~lephuc

Cryptography

INT1303 Information security, PTITHCM, 2015

Tổng quan về mật mã

INT1303 Information security, PTITHCM, 2015

2

Page 2: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

2

Ứng dụng của mật mã học

INT1303 Information security, PTITHCM, 2015

3

Bảo mật thông tin: đảm bảo tính bí mật của

thông tin

Mật mã đối xứng

Mật mã bất đối xứng

Xác thực thông tin:

Hàm băm

Chữ ký số

Phân loại hệ thống mật mã

INT1303 Information security, PTITHCM, 2015

4

Phương pháp mã:

Thay thế (substitution)

Chuyển vị (transposition).

Số khóa:

Đối xứng (một khóa)

Bất đối xứng (hai khóa)

Cách xử lý thông tin gốc:

Xử lý theo khối (block cipher)

Xử lý theo dòng (stream cipher)

Page 3: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

3

Tấn công hệ thống mật mã

INT1303 Information security, PTITHCM, 2015

5

Phân tích mã (Cryptanalysis)

Tìm những điểm yếu của thuật toán mã để khai

thác

Dò khóa (brute-force)

Thử khóa tuần tự

Nếu tổng số khóa có thể có là n, số khóa trung

bình phải thử để dò được khóa đúng là n/2.

Thời gian dò khóa

INT1303 Information security, PTITHCM, 2015

6

Page 4: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

4

Mô hình

INT1303 Information security, PTITHCM, 2015

7

Thực thể A và thực thể B trao đổi dữ liệuqua

mạng Internet.

Hacker dùng công cụ để thực hiện:

Đọc lén dữ liệu của A và B

Thay đổi (sửa/xóa) dữ liệu của A và B

Giải pháp?

Mật mã đối xứng

INT1303 Information security, PTITHCM, 2015

8

Bảo vệ tính bí mật của nội dung thông tin

Bên gởi mã hóa, bên nhận giải mã

Việc mã hóa và giải mã dùng chung khóa

Hai bên phải thống nhất khóa với nhau

Page 5: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

5

Mật mã đối xứng

INT1303 Information security, PTITHCM, 2015

9

Thuật toán mật mã đối xứng

INT1303 Information security, PTITHCM, 2015

10

Các thuật toán mật mã cổ điển

DES, 3DES

AES

Các thuật toán khác:

IDEA

Blowfish

RC4, RC5

...

Page 6: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

6

DES

INT1303 Information security, PTITHCM, 2015

11

Data Encryption Standard, chuẩn hóa 1977

Mô tả DES:

Chiều dài khóa: 56 bit

Kích thước khối: 64 bit

Phương pháp mã: kết hợp chuyển vị, thay thế

Dễ dàng thực thi bằng phần cứng, tốc độ cao

DES

INT1303 Information security, PTITHCM, 2015

12

Dựa trên cấu

trúc Feistel

Gồm các thao

tác dịch, XOR,

thay thế

Thuật toán mã

hóa và giải mã

giống nhau

Page 7: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

7

Thực thi DES bằng phần cứng

INT1303 Information security, PTITHCM, 2015

13

Một thao tác chuyển vị trong DES

Double DES

INT1303 Information security, PTITHCM, 2015

14

Tăng chiều dài khóa bằng cách mã hóa 2 lần

Page 8: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

8

Triple DES

INT1303 Information security, PTITHCM, 2015

15

Ngăn chặn tấn công meet-in-the-middle bằng cách mã hóa 3 lần

AES

INT1303 Information security, PTITHCM, 2015

16

Chuẩn hóa năm 2001

Dùng thay thế cho DES

Mô tả:

Chiều dài khóa: 128/192/256 bit

Kích thước khối: 128 bit

Dựa trên lý thuyết số và GF(28)

Page 9: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

9

AES

INT1303 Information security, PTITHCM, 2015

17

Gồm 10 vòng,

mỗi vòng 4 bước

Dùng 2 phép

toán cộng và

nhân trên trường

GF(28)

Dữ liệu biểu diễn

dưới dạng mảng

2 chiều

AES

INT1303 Information security, PTITHCM, 2015

18

Tốc độ mã hóa cao

An toàn

Được tích hợp trong các bộ xử lý mạnh

Là thuật toán mật mã đối xứng quan trọng

nhất hiện nay.

Page 10: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

10

Các chế độ mã khối

INT1303 Information security, PTITHCM, 2015

19

Cách sử dụng thuật toán mật mã để mã hóa

dữ liệu:

Electronic Code Book mode (ECB)

Cipher Block Chaining mode (CBC)

Cipher Feedback mode (CFB)

Output Feedback mode (OFB)

Counter mode (CTR)

Electronic Code Book (ECB)

INT1303 Information security, PTITHCM, 2015

20

Page 11: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

11

Cipher Block Chaining (CBC)

INT1303 Information security, PTITHCM, 2015

21

Mật mã bất đối xứng

INT1303 Information security, PTITHCM, 2015

22

Khóa mã hóa và khóa giải mã khác nhau

nhưng có liên quan với nhau tạo thành 1 cặp

(PU và PR)

Mã hóa bằng khóa này thì giải mã bằng khóa

kia và ngược lại.

Page 12: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

12

Mật mã bất đối xứng

INT1303 Information security, PTITHCM, 2015

23

Ứng dụng:

Bảo mật thông tin (Encryption).

Xác thực thông tin (Authentication).

Trao đổi khóa trong mật mã đối xứng (Key

exchange)

Các thuật toán điển hình:

RSA

Diffie-Hellman

Ứng dụng bảo mật thông tin

INT1303 Information security, PTITHCM, 2015

24

Page 13: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

13

Ứng dụng xác thực thông tin

INT1303 Information security, PTITHCM, 2015

25

RSA

INT1303 Information security, PTITHCM, 2015

26

Được phát triển bởi Rivest, Shamir và

Adleman (1977).

Là thuật tóan mã khối, kích thước khối thay

đổi được.

Dựa trên cơ sở lý thuyết số, đặc biệt là phép

tóan modulo.

Page 14: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

14

RSA

INT1303 Information security, PTITHCM, 2015

27

Tạo cặp khóa:

Chọn hai số nguyên tố p và q đủ lớn. N = pq

Chọn số nguyên e sao cho e với (p-1)(q-1) là cặp số nguyên tố cùng nhau.

Chọn số nguyên d sao cho ed = 1 mod (p-1)(q-1).

PU = (N, e), PR = (N, d)

Mã hóa:

C = Me mod N (với M < N)

Giải mã:

M = Cd mod N

Ví dụ RSA

INT1303 Information security, PTITHCM, 2015

28

Chọn p = 11, q = 3 => N = 33.

(p-1)(q-1) = (11 – 1)(3 – 1) = 20

Chọn e = 3 và d = 7

PU (33, 3), PR = (33, 7)

Cho M = 15 => C = 153 mod 33 = 9

Giải mã: M = 97 mod 33 = 15

Page 15: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

15

Diffie-Hellman

INT1303 Information security, PTITHCM, 2015

29

Là thuật tóan trao đổi khóa, được dùng để

phân phối khóa trong các thuật tóan mật mã

đối xứng.

Dựa trên phép logarit rời rạc:

Cho trước g và x = gk, => k = logg(x)

Cho trước g, p và x = gk mod p, không thể tính

được k!

Diffie-Hellman

INT1303 Information security, PTITHCM, 2015

30

Cho p là một số nguyên tố và g là cơ số sinh

(generator) thỏa: với mọi x [1, 2, .., p-1], luôn

tìm được n thỏa x = gn mod p.

p và g được phổ biến công khai

User A tạo ra số bí mật Xa < p, tính Ya = (gXa mod

p) và gởi cho B. B cũng tạo ra Xb và Yb.

Khóa bí mật được tạo ra bằng (Ya)Xb và (Yb)

Xa

Page 16: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

16

Diffie-Hellman

INT1303 Information security, PTITHCM, 2015

31

Ví dụ

INT1303 Information security, PTITHCM, 2015

32

Cho p = 353, g = 3

A chọn Xa = 97, B chọn Xb = 233

A tính Ya = 397 mod 353 = 40 gởi cho B

B tính Yb = 3233 mod 353 = 248 gởi cho A

A xác định Ka = 24897mod 353 = 160

B xác định Kb = 40233 mod 353 = 160

Ka = Kb

Page 17: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

17

Nhận xét

INT1303 Information security, PTITHCM, 2015

33

RSA có thể bị tấn công brute-force,

mathematical attack, timing attack hoặc

chosen ciphertext attack.

Diffie-Hellman có thể bị tấn công MITM

Mã hóa bất đối xứng giải quyết được vấn đề

trao đổi khóa.

Tốc độ xử lý chậm,thích hợp cho các khối

thông tin ngắn.

Hàm băm mật mã

INT1303 Information security, PTITHCM, 2015

34

Biến đổi khối thông tin gốc có độ dài bất kỳ

thành khối thông tin có độ dài cố định gọi là

mã băm (hash code hoặc message digest).

Chỉ có thể dùng hàm băm để tạo ra mã băm từ

thông tin gốc mà không làm ngược lại => hàm

băm một chiều (one way hash function)

Page 18: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

18

Sử dụng hàm băm

INT1303 Information security, PTITHCM, 2015

35

Các thuộc tính của hàm băm

INT1303 Information security, PTITHCM, 2015

36

Compression: Mã băm phải nhỏ hơn thông tin

gốc

One-way: Cho trước m, không tìm được M

thỏa H(M)=m.

Weak collision resistance:cho trước M, không

thể tìm được M’ M thỏa H(M) = H(M’)

Strong collision resistance: không thể tìm

được cặp M và M’ sao cho H(M) = H(M’)

Page 19: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

19

Các ứng dụng điển hình

INT1303 Information security, PTITHCM, 2015

37

Authentication (HMAC)

Message integrity (HMAC)

Message fingerprint

Data corruption detection

Digital signature efficiency

Tấn công hàm băm

INT1303 Information security, PTITHCM, 2015

38

Mục tiêu tấn công là tạo ra các tình huống

đụng độ

Độ an toàn của hàm băm phụ thuộc vào kích

thước mã băm.

Bài tóan sinh nhật (Birthday problem) thường

được dùng để tính tóan độ an tòan của một

hàm băm.

Page 20: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

20

Hàm băm điển hình

INT1303 Information security, PTITHCM, 2015

39

Chữ ký số

INT1303 Information security, PTITHCM, 2015

40

Phát sinh từ khối thông tin gốc.

Chứa nhận dạng của thực thể ký (PR).

Có thể sao chép chữ ký dành cho mục đích

lưu trữ nhưng vẫn đảm bảo hợp lệ.

Page 21: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

21

Chữ ký số

INT1303 Information security, PTITHCM, 2015

41

Nguyên tắc tạo chữ ký số

INT1303 Information security, PTITHCM, 2015

42

Bên A:

Tạo chữ ký: S=Sign(M, PRA)

Gởi qua B gồm: M, S, PUA

Bên B:

Xác minh chữ ký: V=Verify(M,S,PUA)

Giá trị V cho biết chữ ký hợp lệ hay không

Page 22: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

22

Chữ ký số RSA

INT1303 Information security, PTITHCM, 2015

43

Bên A:

Tạo chữ ký: S=Sign(M, PRA)=Md mod N

Gởi qua B: M, S, PUA

Bên B:

Xác minh chữ ký: V=Verify(S,PUA)=Se mod N

Nếu V=M: chữ ký hợp lệ

Nếu VM: chữ ký không hợp lệ

Chữ ký số DSS

INT1303 Information security, PTITHCM, 2015

44

Page 23: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

23

Trao đổi khóa

INT1303 Information security, PTITHCM, 2015

45

Trao đổi khóa dùng khóa công khai

RSA

Diffie-Hellman

Trao đổi khóa dùng chứng chỉ số

Chứng chỉ số

INT1303 Information security, PTITHCM, 2015

46

Page 24: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

24

Chứng chỉ số

INT1303 Information security, PTITHCM, 2015

47

Thông tin cơ bản trên chứng chỉ số:

Nhận dạng của thực thể thông tin (tên user, địa

chỉ IP, địa chỉ e-mail, URL của website, …)

Khóa công khai (PU) của thực thể thông tin.

Chữ ký số của “người” xác nhận.

Một số thông tin phụ trợ khác

X.509

INT1303 Information security, PTITHCM, 2015

48

Page 25: An toàn và bảo mật hệ thống thông tin - C2: cryptography

8/17/2015

25

Public Key Infrastructure

INT1303 Information security, PTITHCM, 2015

49

Hệ thống gồm có các CA và các cơ chế hỗ trợ

cần thiết nhằm tạo, phân phối và quản lý

chứng chỉ số gọi là PKI

Các chức năng của PKI:

Tạo ra các chứng chỉ khóa công khai

Phân phối chứng chỉ

Thu hồi chứng chỉ

Quản lý các chứng chỉ

Các dịch vụ của PKI

INT1303 Information security, PTITHCM, 2015

50

Đăng ký user (Registration)

Khởi tạo (Initialization): tạo cặp khóa

Chứng thực (Certification)

Phục hồi khóa (Key pair recovery)

Cập nhật khóa (Key pair update)

Thu hồi chứng chỉ (Revocation request)