Bài giảng An ninh mạng máy tính - Chương 4: Mã hóa công khai và xác thực thông điệp - Lương Minh Huấn
TRƯỜNG ĐẠI HỌC SÀI GÒN
CHƯƠNG 4: MÃ HÓA CÔNG KHAI VÀ
XÁC THỰC THÔNG ĐIỆP
GV: LƯƠNG MINH HUẤN
NỘI DUNG
I. Các nguyên lý mã hóa công khai.
II. Giải thuật mã hóa công khai RSA.
III.Các giải pháp xác thực thông điệp.
IV.Mã xác thực thông điệp.
V. Hàm Hash an ninh.
VI.Chữ ký số.
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Mã hóa đối xứng có 2 yếu điểm:
▪ Vấn đề trao đổi khóa giữa người gửi và người nhận.
▪ Tính bí mật của khóa.
➢Vào năm 1976 Whitfield Diffie và Martin Hellman đã tìm ra một
phương pháp mã hóa khác mà có thể giải quyết được hai vấn đề
trên, đó là mã hóa khóa công khai (public key cryptography) hay
còn gọi là mã hóa bất đối xứng (asymetric cryptography).
Mô hì nh mã hó a cô ng khai
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Để khắc phục điểm yếu của mã hóa đối xứng người ta tập trung
vào nghiên cứu theo hướng: có phương pháp nào để việc mã hóa
và giải mã dùng hai khóa khác nhau?
➢Có nghĩa là C = E(P, K1) và P = D(C, K2).
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Phương án 1: người nhận (Bob) giữ bí mật khóa K2, còn khóa K1
thì công khai cho tất cả mọi người biết.
▪ Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa. Bob
dùng K2 để giải mã.
▪ Ở đây Trudy cũng biết khóa K1, tuy nhiên không thể dùng chính K1
để giải mã mà phải dùng K2.
▪ Do đó chỉ có duy nhất Bob mới có thể giải mã được. Điều này bảo
đảm tính bảo mật của quá trình truyền dữ liệu.
▪ Ưu điểm của phương án này là không cần phải truyền khóa K1 trên
kênh an toàn.
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Phương án 2: người gửi (Alice) giữ bí mật khóa K1, còn khóa K2
thì công khai cho tất cả mọi người biết.
▪ Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa. Bob
dùng K2 để giải mã.
▪ Ở đây Trudy cũng biết khóa K2 nên Trudy cũng có thể giải mã được.
▪ Do đó phương án này không đảm bảo tính bảo mật. Tuy nhiên lại có
tính chất quan trọng là đảm bảo tính chứng thực và tính không từ
chối.
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Vì vậy nếu kết hợp phương án 1 và phương án 2, thì mô hình đề
xuất của chúng ta khắc phục được các nhược điểm của mã hóa đối
xứng.
➢Trong cả hai phương án, một khóa được giữ bí mật chỉ một người
biết, còn khóa kia được công khai.
MỘT SỐ QUY ƯỚC
➢ Để tránh nhầm lẫn với khóa bí mật của mã đối xứng, khóa bí mật trong mô
hình trên được gọi là khóa riêng (private key) và ký hiệu là KR.
➢ Khóa công khai (public key) được ký hiệu là KU.
➢ Bản rõ được ký hiệu là M, còn bản mã giữ nguyên ký hiệu là C
➢ Phương án 1 viết lại thành:
▪ C = E(M, KU)
▪ M = D(C, KR)
➢ Phương án 2 viết lại thành:
▪ C = E(M, KR)
▪ M = D(C, KU)
MỘT SỐ QUY ƯỚC
➢Để có được cặp khóa KR và KU như trên, người ta thường dùng các
hàm một chiều (oneway function). Các hàm một chiều có tính chất
là hàm nghịch đảo của chúng rất khó thực hiện.
➢Ví dụ về hàm một chiều: việc sinh ra hai số nguyên tố lớn p, q và
tính tích N = pq thì thực hiện dễ dàng.
➢Tuy nhiên nếu chỉ cho trước N và thực hiện phân tích N để tìm lại
hai số nguyên tố p, q là việc hoàn toàn bất khả thi về mặt thời gian.
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Các phương pháp mã hóa thuộc loại mã hóa công khai:
▪ Knapsack;
▪ RSA;
▪ Elgaman;
▪ Phương pháp đường cong elliptic ECC;
▪ …..
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Một số vấn đề cần nắm khi tìm hiểu mã hóa công khai:
➢Phép chia modulo:
▪ Phép chia modulo là phép chia lấy phần dư. Ví dụ: 27 mod 8 = 3,
35 mod 9 = 8.
▪ Nếu hai số a, b có cùng số dư trong phép chia cho n thì ta nói rằng a
và b là đồng dư trong phép chia modulo cho n , phép so sánh đồng
dư được ký hiệu bằng dấu : a b (mod n)
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
▪ Một số tính chất của phép modulo
▪ Ước số
• Nếu a mod n = 0 thì có nghĩa là a chia hết cho n, hay n là ước số của
a.
• Ước số chung lớn nhất của hai số: ký hiệu gcd(a, b) . Để tìm USCLN
của hai số a, b, chúng ta có thể dùng thuật toán Euclid
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
▪ Số nguyên tố
• Một số p được gọi là số nguyên tố nếu p chỉ chia hết cho 1 và chính nó, ngoài
ra không chia hết cho số nào khác từ 2 đến p − 1.
▪ Số nguyên tố cùng nhau
• Hai số nguyên a, b được gọi là nguyên tố cùng nhau nếu USCLN của a và b
là 1
▪ Phần tử nghịch đảo của phép nhân modulo
• Nếu hai số nguyên a và n nguyên tố cùng nhau, thì tồn tại số nguyên w sao
cho: a.w 1 mod n
• Ta gọi w là phần tử nghịch đảo của a trong phép modulo cho n và ký hiệu là a-
1
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
I. CÁ C NGUYÊN LÝ MÃ HÓ A CÔ NG KHAI
➢Định lý Fermat
▪ Nếu p là số nguyên tố và a là số nguyên không chia hết cho p thì
ap-1 1 mod p
➢Phép logarit rời rạc
▪ Ta định nghĩa phép lũy thừa modulo như sau, để tính y từ a, x và n là
các số nguyên:
II. GIẢI THUẬT MÃ HÓA CÔNG KHAI RSA
➢Phương pháp RSA là một phương pháp mã hóa khóa công khai.
RSA được xây dựng bởi các tác giả Ron Rivest, Adi Shamir và
Len Adleman tại học viện MIT vào năm 1977, và ngày nay đang
được sử dụng rộng rãi.
➢Về mặt tổng quát RSA là một phương pháp mã hóa theo khối.
➢ Trong đó bản rõ M và bản mã C là các số nguyên từ 0 đến 2i với i
số bít của khối. Kích thước thường dùng của i là 1024 bít.
➢RSA sử dụng hàm một chiều là vấn đề phân tích một số thành thừa
số nguyên tố.
➢Nguyên tắc thực hiện:
1. Chọn hai số nguyên tố lớn p và q và tính N = pq. Cần chọn p và q
sao cho: M < 2i-1 < N < 2i . Với i = 1024 thì N là một số nguyên dài
khoảng 309 chữ số.
2. Tính n = (p − 1)(q − 1)
3. Tìm một số e sao cho e nguyên tố cùng nhau với n
4. Tìm một số d sao cho e.d 1 mod n (d là nghịch đảo của e trong
phép modulo n)
5. Hủy bỏ n, p và q. Chọn khóa công khai KU là cặp (e, N), khóa riêng
KR là cặp (d, N).
6. Việc mã hóa thực hiện theo công thức:
• Theo phương án 1, mã hóa bảo mật:
• Theo phương án 2, mã hóa chứng thực:
7. Việc giải mã thực hiện theo công thức:
• Theo phương án 1, mã hóa bảo mật:
• Theo phương án 2, mã hóa chứng thực:
➢Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít.
➢Ví dụ: Để minh họa ta sẽ thực hiện một ví dụ về mã hóa RSA với
kích thước khóa là 6 bít.
1. Chọn p = 11 và q = 3, do đó N = pq = 33 (25 = 32 < 33 < 64 = 26)
2. n = (p−1)(q−1) = 20
3. Chọn e = 3 nguyên tố cùng nhau với n
4. Tính nghịch đảo của e trong phép modulo n được d = 7 (3x7 = 21)
5. Khóa công khai KU = (e, N) = (3, 33). Khóa bí mật KR=(d, N)=(7,33)
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An ninh mạng máy tính - Chương 4: Mã hóa công khai và xác thực thông điệp - Lương Minh Huấn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_an_ninh_mang_may_tinh_chuong_4_ma_hoa_cong_khai_va.pdf

