Trình bày: Ths. Lương Trần Hy Hiến http://hienlth.info/hutech/baomatthongtin
1. Phân phối khóa
2. Hệ trao đổi khóa Diffie-Hellman
3. Replay Attack
2
Sử dụng Mã khóa công khai để phân phối khóa: (cid:1) Phân phối khóa một cách công khai nhưng đảm
bảo được bí mật.
(cid:1) Sử dụng mã khóa công khai để phân phối khóa mật (còn khóa mật dùng để mã hoá thông tin).
3
(cid:1) RSA không thích hợp để mã hóa nội dung dữ
liệu dài.
(cid:1) Nhưng RSA đóng vai trò quan trọng trong việc trao đổi khóa chung. Giúp cho việc triển khai bảo mật trên mạng khả thi.
(cid:1) Thông báo công khai khóa của người sử dụng. (cid:1) Thư mục truy cập công cộng cho mọi người. (cid:1) Chủ quyền khóa công khai, người nắm giữ khóa
công khai.
(cid:1) Chứng nhận khóa công khai, khóa công khai của người sử dụng được nơi có thẩm quyền chứng nhận.
5
(cid:1) Người dùng phân phối khoá công khai cho
người nhận hoặc thông báo rộng rãi cho cộng đồng.
(cid:1) Điểm yếu chính của thông báo công khai là sự
mạo danh.
6
(cid:1) Người có quyền cho phép mỗi người tham gia
một đầu vào (tên, khóa).
(cid:1) Mỗi người tham gia đăng ký một khóa công khai (cid:1) Người tham gia có thể thay đổi khóa (cid:1) Người tham gia có thể truy cập vào thư mục
một cách an toàn qua mạng
Kẻ xâm nhập có thể đoạt được quyền quản trị thư mục
7
(cid:1) Giấy chứng nhận giống như CMND, dựa vào một tổ chức thứ 3 (CA, Certificate Authority). (cid:1) Chứng nhận chứa: Khóa công khai, một nhận
dạng chủ của khóa, thời gian hiệu lực.
8
(cid:1) A (cid:1) A
B B
PUA E(PUA, KS)
(cid:1) KS: khóa bí mật
(cid:1) tấn công man-in-the-middle
(cid:1) Một certificate được cấp bởi CA sẽ chứng thực
anh/chị đó là ai.
(cid:1) Để nhận được certificate, user gửi public key
đến CA
(cid:1) Khi user mới muốn cấp certificate thì CA sẽ có
cách để chứng thực user mới này.
(cid:1) Một certificate cho user A (CA) như sau:
CA = E (PRauth, [T, IDA, PUA])
T: timestamp, IDA: ID của A, PUA: public key của A. Tất cả được
mã hóa bằng Private key của CA (PRauth).
(cid:1) A sẽ trình certificate CA cho B để chứng thực A. B sẽ dùng public key của CA để giải mã chứng thực CA.
(cid:1) Điểm yếu của hệ thống là liệu người yêu cầu
cấp CA có phải là A.
(cid:1) Chuẩn X.509 dành cho PKI (Public Key
Infrastructure)
(cid:1) Giải thuật mật mã khóa công khai đầu tiên (cid:1) Đề xuất bởi Whitfield Diffie và Martin Hellman
vào năm 1976 (cid:2) Malcolm Williamson (GCHQ - Anh) phát hiện trước
mấy năm nhưng đến năm 1997 mới công bố
(cid:1) Chỉ dùng để trao đổi khóa bí mật một cách an ninh trên các kênh thông tin không an ninh (cid:1) Khóa bí mật được tính toán bởi cả hai bên (cid:1) An ninh phụ thuộc vào độ phức tạp của việc tính
log rời rạc
(cid:1) Các bên thống nhất với nhau các tham số chung
(cid:2) q là một số nguyên tố đủ lớn (hoặc đa thức) (cid:2) α là một nguyên căn của q
▪ α mod q, α2 mod q,..., αq-1 mod q là các số nguyên giao hoán của
các số từ 1 đến q - 1
(cid:1) Bên A
(cid:2) Chọn ngẫu nhiên làm khóa riêng (bí mật) XA < q (cid:2) Tính khóa công khai YA = αXA mod q (cid:2) Thông báo công khai YA
(cid:1) Bên B
(cid:2) Chọn ngẫu nhiên làm khóa riêng XB < q (cid:2) Tính khóa công khai YB = αXB mod q (cid:2) Thông báo công khai YB
(cid:1) Khóa phiên dùng chung cho hai người sử dụng A, B
là KAB = αxA.xB mod q (cid:1) Tính toán khóa bí mật
(cid:2) Bên A biết khóa riêng XA và khóa công khai YB
XA mod q
KAB = YB
(cid:2) Bên B biết khóa riêng XB và khóa công khai YA
XB mod q
KAB = YA
(cid:1) Chứng minh
XB mod q = (αXA mod q)XB mod q
YA
XA mod q
= αXAXB mod q = αXBXA mod q = (αXB mod q)XA mod q = YB
(cid:2) Alice chọn XA = 97, Bob chọn XB = 233
(cid:1) Alice và Bob muốn trao đổi khóa bí mật (cid:1) Cùng chọn q = 353 và α = 3 (cid:1) Chọn ngẫu nhiên các khóa riêng
(cid:1) Tính toán các khóa công khai
(Alice) (Bob)
(cid:2) YA = 397 mod 353 = 40 (cid:2) YB = 3233 mod 353 = 248
XA mod 353 = 24897 mod 353 = 160 XB mod 353 = 40233 mod 353 = 160
(cid:1) Tính toán khóa bí mật chung
(Alice) (Bob)
(cid:2) K = YB (cid:2) K = YA
(cid:2) Các giải thuật khóa công khai chủ yếu dùng các phép nhân chậm hơn nhiều so với các giải thuật đối xứng
(cid:2) Không thích hợp cho mã hóa thông thường (cid:2) Thường dùng trao đổi khóa bí mật đầu phiên truyền
(cid:1) Tốc độ xử lý
tin
(cid:2) Bất cứ ai cũng có thể tạo ra một khóa công bố đó là
(cid:1) Tính xác thực của khóa công khai
của một người khác
(cid:2) Chừng nào việc giả mạo chưa bị phát hiện có thể đọc
được nội dung các thông báo gửi cho người kia
(cid:2) Cần đảm bảo những người đăng ký khóa là đáng tin
18
19
Có 3 cách: (cid:1) Dùng số định danh (cid:1) Dùng timestamp (cid:1) Dùng cơ chế challenge/response
20
21
Điểm yếu của sơ đồ trao đổi khóa Diffie-Helman là gì?
A) Độ phức tạp tính toán thấp. B) Sử dụng khóa có độ dài ngắn. C) Không có pha xác thực. D) Không sử dụng hàm băm.
22
Trao đổi khóa Difie Hellman: (cid:1) Chọn số nguyên tố dùng chung q = 131 và α= 7, (cid:1) NSD A chọn khóa riêng xA = 11, NSD B chọn khóa riêng xB = 19. (cid:1) Tính khóa công khai của A và B. (cid:1) Nêu cách A và B tính khóa mật dùng chung giữa
A và B
23
(cid:1) Chọn q = 11, α = 7 (cid:1) A chọn khóa riêng 3, B chọn khóa riêng 6. (cid:1) Tính khóa công khai của A, B (cid:1) Tính khóa dùng chung của A và B.
24
(cid:1) Chọn q = 71, α = 7 (cid:1) A chọn khóa riêng 5, B chọn khóa riêng 12. (cid:1) Tính khóa công khai của A, B (cid:1) Tính khóa dùng chung của A và B.