Post on 16-Apr-2017
8/17/2015
1
Giảng viên: Lê Phúc
Email: lephuc@ptithcm.edu.vn
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
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)
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
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
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
...
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
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
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)
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.
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
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.
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
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.
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
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
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
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)
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’)
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.
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ệ.
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
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
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
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
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)