Bài giảng An ninh mạng - Chương 2, Phần 2: Mã hóa đối xứng - Nguyễn Đại Thọ
Mô hình hệ mã hóa đối xứng
• Gồm có 5 thành phần
– Nguyên bản
– Giải thuật mã hóa
– Khóa bí mật
– Bản mã
– Giải thuật giải mã
• An ninh phụ thuộc vào sự bí mật của khóa,
không phụ thuộc vào sự bí mật của giải thuật
Phá mã
• Là nỗ lực giải mã văn bản đã được mã hóa
không biết trước khóa bí mật
• Có hai phương pháp phá mã
– Vét cạn
• Thử tất cả các khóa có thể
– Thám mã
• Khai thác những nhược điểm của giải thuật
• Dựa trên những đặc trưng chung của nguyên bản hoặc một
số cặp nguyên bản - bản mã mẫu
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng An ninh mạng - Chương 2, Phần 2: Mã hóa đối xứng - Nguyễn Đại Thọ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng An ninh mạng - Chương 2, Phần 2: Mã hóa đối xứng - Nguyễn Đại Thọ
– nguyên bản : wearediscoveredsaveyourself – Mã hóa : ZICVTWQNGKZEIIGASXSTSLVVWLA • Vẫn có thể sử dụng kỹ thuật thống kê để phá mã – Khóa và nguyên bản có cùng tần số các chữ cái Nguyễn Đại Thọ An ninh Mạng 41 Độn một lần • Là hệ mã hóa thay thế không thể phá được • Đề xuất bởi Joseph Mauborgne • Khóa ngẫu nhiên, độ dài bằng độ dài văn bản, chỉ sử dụng một lần • Giữa nguyên bản và bản mã không có bất kỳ quan hệ nào về thống kê • Với bất kỳ nguyên bản và bản mã nào cũng tồn tại một khóa tương ứng • Khó khăn ở việc tạo khóa và đảm bảo phân phối khóa an ninh Nguyễn Đại Thọ An ninh Mạng 42 Mã hóa hoán vị cổ điển • Che đậy nội dung văn bản bằng cách sắp xếp lại trật tự các chữ cái • Không thay đổi các chữ cái của nguyên bản • Bản mã có tần số xuất hiện các chữ cái giống như nguyên bản Nguyễn Đại Thọ An ninh Mạng 43 Hệ mã hóa hàng rào • Viết các chữ cái theo đường chéo trên một số hàng nhất định • Sau đó đọc theo từng hàng một • Ví dụ – Nguyên bản : attack at midnight – Mã hóa với độ cao hàng rào là 2 a t c a m d i h t a k t i n g t – Bản mã : ATCAMDIHTAKTINGT Nguyễn Đại Thọ An ninh Mạng 44 Hệ mã hóa hàng • Viết các chữ cái theo hàng vào 1 số cột nhất định • Sau đó hoán vị các cột trước khi đọc theo cột • Khóa là thứ tự đọc các cột • Ví dụ – Khóa : 4 3 1 2 5 6 7 – Nguyên bản : a t t a c k p o s t p o n e d u n t i l t w o a m x y z – Bản mã : TTNAAPTMTSUOAODWCOIXKNLYPETZ Nguyễn Đại Thọ An ninh Mạng 45 Mã hóa tích hợp • Các hệ mã hóa thay thế và hoán vị không an toàn vì những đặc điểm của ngôn ngữ • Kết hợp sử dụng nhiều hệ mã hóa sẽ khiến việc phá mã khó hơn – Hai thay thế tạo nên một thay thế phức tạp hơn – Hai hoán vị tạo nên một hoán vị phức tạp hơn – Một thay thế với một hoán vị tạo nên một hệ mã hóa phức tạp hơn nhiều • Là cầu nối từ các hệ mã hóa cổ điển đến các hệ mã hóa hiện đại Nguyễn Đại Thọ An ninh Mạng 46 Mã hóa khối • So với mã hóa luồng – Mã hóa khối xử lý thông báo theo từng khối – Mã hóa luồng xử lý thông báo 1 bit hoặc 1 byte mỗi lần • Giống như thay thế các ký tự rất lớn ( 64 bit) – Bảng mã hóa gồm 2n đầu vào (n là độ dài khối) – Mỗi khối đầu vào ứng với một khối mã hóa duy nhất • Tính thuận nghịch – Độ dài khóa là n x 2n bit quá lớn • Xây dựng từ các khối nhỏ hơn • Hầu hết các hệ mã hóa khối đối xứng dựa trên cấu trúc hệ mã hóa Feistel Nguyễn Đại Thọ An ninh Mạng 47 Mạng S-P • Mạng thay thế (S) - hoán vị (P) đề xuất bởi Claude Shannon vào năm 1949 • Là cơ sở của các hệ mã hóa khối hiện đại • Dựa trên 2 phép mã hóa cổ điển – Phép thay thế : Hộp S – Phép hoán vị : Hộp P • Đan xen các chức năng – Khuếch tán : Hộp P (kết hợp với hộp S) • Phát tỏa cấu trúc thống kê của nguyên bản khắp bản mã – Gây lẫn : Hộp S • Làm phức tạp hóa mối quan hệ giữa bản mã và khóa Nguyễn Đại Thọ An ninh Mạng 48 Hộp S Đầu vào Đầu ra 3 bit 3 bit 0 0 0 1 1 1 2 2 3 1 3 1 4 4 5 5 0 6 6 0 7 7 Lưu ý : Hộp S có tính thuận nghịch Nguyễn Đại Thọ An ninh Mạng 49 Hộp P Đầu vào 4 bit 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 Lưu ý : Hộp P có tính thuận nghịch Nguyễn Đại Thọ An ninh Mạng 50 Mã hóa Feistel • Đề xuất bởi Horst Feistel dựa trên khái niệm hệ mã hóa tích hợp thuận nghịch của Shannon • Phân mỗi khối dài 2w bit thành 2 nửa L0 và R0 • Xử lý qua n vòng • Chia khóa K thành n khóa con K1, K2,..., Kn • Tại mỗi vòng i – Thực hiện thay thế ở nửa bên trái Li-1 bằng cách XOR nó với F(Ki, Ri-1) – F thường gọi là hàm chuyển đổi hay hàm vòng – Hoán vị hai nửa Li và Ri Nguyễn Đại Thọ An ninh Mạng 51 Nguyên bản (2w bit) w bit w bit L0 R0 K1 Vòng 1 + F L R . . . 1 . . . 1 Kn + Vòng n F Ln Rn Ln+1 Rn+1 Bản mã (2w bit) Nguyễn Đại Thọ An ninh Mạng 52 Các đặc trưng hệ Feistel • Độ dài khối – Khối càng lớn càng an ninh (thường 64 bit) • Độ dài khóa – Khóa càng dài càng an ninh (thường 128 bit) • Số vòng – Càng nhiều vòng càng an ninh (thường 16 vòng) • Giải thuật sinh mã con – Càng phức tạp càng khó phá mã • Hàm vòng – Càng phức tạp càng khó phá mã • Ảnh hưởng đến cài đặt và phân tích Nguyễn Đại Thọ An ninh Mạng 53 Giải mã Feistel • Giống giải thuật mã hóa, chỉ khác – Bản mã là dữ liệu đầu vào – Các khóa con được dùng theo thứ tự ngược lại • Tại mỗi vòng kết quả đầu ra chính là các dữ liệu đầu vào của quá trình mã hóa – Đối với quá trình mã hóa • Li = Ri-1 • Ri = Li-1 F(Ri-1, Ki) – Đối với quá trình giải mã • Ri-1 = Li • Li-1 = Ri F(Li, Ki) Nguyễn Đại Thọ An ninh Mạng 54 Chuẩn mã hóa dữ liệu • DES (Data Encryption Standard) được công nhận chuẩn năm 1977 • Phương thức mã hóa được sử dụng rộng rãi nhất • Tên giải thuật là DEA (Data Encryption Algorithm) • Là một biến thể của hệ mã hóa Feistel, bổ xung thêm các hoán vị đầu và cuối • Kích thước khối : 64 bit • Kích thước khóa : 56 bit • Số vòng : 16 • Từng gây nhiều tranh cãi về độ an ninh Nguyễn Đại Thọ An ninh Mạng 55 Giải thuật mã hóa DES Nguyên bản (64 bit) Khóa 56 bit giao hoán thuận giao hoán K vòng 1 1 giao hoán dịch vòng trái K vòng 2 2 giao hoán dịch vòng trái . . . . . . K vòng n n giao hoán dịch vòng trái hoán đổi 32 bit giao hoán nghịch Bản mã (64 bit) Nguyễn Đại Thọ An ninh Mạng 56 Một vòng DES Li-1 Ri-1 mở rộng g/hoán --- 48 bit K x i --- 48 bit hộp S --- 32 bit giao hoán --- 32 bit x Li Ri Nguyễn Đại Thọ An ninh Mạng 57 Phá mã DES • Khóa 56 bit có 256 = 7,2 x 1016 giá trị có thể • Phương pháp vét cạn tỏ ra không thực tế • Tốc độ tính toán cao có thể phá được khóa – 1997 : 70000 máy tính phá mã DES trong 96 ngày – 1998 : Electronic Frontier Foundation (EFF) phá mã DES bằng máy chuyên dụng (250000$) trong < 3 ngày – 1999 : 100000 máy tính phá mã trong 22 giờ • Vấn đề còn phải nhận biết được nguyên bản • Thực tế DES vẫn được sử dụng không có vấn đề • Nếu cần an ninh hơn : 3DES hay chuẩn mới AES Nguyễn Đại Thọ An ninh Mạng 58 Hệ mã hóa 3DES • Sử dụng 3 khóa và chạy 3 lần giải thuật DES – Mã hóa : C = E [D [E [p]]] K3 K2 K1 – Giải mã : p = D [E [D [C]]] K1 K2 K3 • Độ dài khóa thực tế là 168 bit – Không tồn tại K = 56 sao cho C = E (p) 4 K4 • Vì sao 3 lần : tránh tấn công "gặp nhau ở giữa" – C = E (E (p)) X = E (p) = D (C) K2 K1 K1 K2 – Nếu biết một cặp (p, C) • Mã hóa p với 256 khóa và giải mã C với 256 khóa • So sánh tìm ra K1 và K2 tương ứng • Kiểm tra lại với 1 cặp (p, C) mới; nếu OK thì K1 và K2 là khóa Nguyễn Đại Thọ An ninh Mạng 59 Chuẩn mã hóa tiên tiến • AES (Advanced Encryption Standard) được công nhận chuẩn mới năm 2001 • Tên giải thuật là Rijndael (Rijmen + Daemen) • An ninh hơn và nhanh hơn 3DES • Kích thước khối : 128 bit • Kích thước khóa : 128/192/256 bit • Số vòng : 10/12/14 • Cấu trúc mạng S-P, nhưng không theo hệ Feistel – Không chia mỗi khối làm đôi Nguyễn Đại Thọ An ninh Mạng 60 Các hệ mã hóa khối khác (1) • IDEA (International Data Encryption Algorithm) – Khối 64 bit, khóa 128 bit, 8 vòng – Theo cấu trúc mạng S-P, nhưng không theo hệ Feistel • Mỗi khối chia làm 4 – Rất an ninh – Bản quyền bởi Ascom nhưng dùng miễn phí • Blowfish – Khối 64 bit, khóa 32-448 bit (ngầm định 128 bit), 16 vòng – Theo cấu trúc hệ Feistel – An ninh, khá nhanh và gọn nhẹ – Tự do sử dụng Nguyễn Đại Thọ An ninh Mạng 61 Các hệ mã hóa khối khác (2) • RC5 – Phát triển bởi Ron Rivest – Khối 32/64/128 bit, khóa 0-2040 bit, 0-255 vòng – Đơn giản, thích hợp các bộ xử lý có độ rộng khác nhau – Theo cấu trúc hệ Feistel • CAST-128 – Phát triển bởi Carlisle Adams và Stafford Tavares – Khối 64 bit, khóa 40-128 bit, 12/16 vòng – Có 3 loại hàm vòng dùng xen kẽ – Theo cấu trúc hệ Feistel – Bản quyền bởi Entrust nhưng dùng miễn phí Nguyễn Đại Thọ An ninh Mạng 62 Các phương thức mã hóa khối • ECB (Electronic Codebook) – Mã hóa từng khối riêng rẽ • CBC (Cipher Block Chaining) – Khối nguyên bản hiện thời được XOR với khối bản mã trước đó • CFB (Cipher Feedback) – Mô phỏng mã hóa luồng (đơn vị s bit) • s bit mã hóa trước được đưa vào thanh ghi đầu vào hiện thời • OFB (Output Feeback) • s bit trái đầu ra trước được đưa vào thanh ghi đầu vào hiện thời • CTR (Counter) – XOR mỗi khối nguyên bản với 1 giá trị thanh đếm mã hóa Nguyễn Đại Thọ An ninh Mạng 63 Phương thức ECB p1 p2 pN K Mã hóa K Mã hóa ... K Mã hóa C1 C2 CN Mã hóa C1 C2 CN K Giải mã K Giải mã ... K Giải mã p1 p2 pN Giải mã Nguyễn Đại Thọ An ninh Mạng 64 Đánh giá ECB • Những khối lặp lại trong nguyên bản có thể thấy được trong bản mã • Nếu thông báo dài, có thể – Giúp phân tích phá mã – Tạo cơ hội thay thế hoặc bố trí lại các khối • Nhược điểm do các khối được mã hóa độc lập • Chủ yếu dùng để gửi thông báo có ít khối – Ví dụ gửi khóa Nguyễn Đại Thọ An ninh Mạng 65 Phương thức CBC IV p1 p2 pN CN-1 K Mã hóa K Mã hóa ... K Mã hóa C1 C2 CN Mã hóa C1 C2 CN K Giải mã K Giải mã ... K Giải mã IV CN-1 p1 p2 pN Giải mã Nguyễn Đại Thọ An ninh Mạng 66 Đánh giá CBC • Mỗi khối mã hóa phụ thuộc vào tất cả các khối nguyên bản trước đó – Sự lặp lại các khối nguyên bản không thể hiện trong bản mã hóa – Thay đổi trong mỗi khối nguyên bản ảnh hưởng đến tất cả các khối bản mã về sau • Cần 1 giá trị đầu IV bên gửi và bên nhận đều biết – Cần được mã hóa giống khóa – Nên khác nhau đối với các thông báo khác nhau • Cần xử lý đặc biệt khối nguyên bản không đầy đủ cuối cùng • Dùng mã hóa dữ liệu lớn, xác thực Nguyễn Đại Thọ An ninh Mạng 67 Mã hóa CFB IV CM-1 Thanh ghi dịch Thanh ghi dịch Thanh ghi dịch 64-s bit | s bit 64-s bit | s bit 64-s bit | s bit 64 64 64 K Mã hóa K Mã hóa ... K Mã hóa 64 64 64 Chọn Bỏ đi Chọn Bỏ đi Chọn Bỏ đi s bit 64-s bit s bit 64-s bit s bit 64-s bit p1 p2 pM s s s s s s s C1 C2 CM Nguyễn Đại Thọ An ninh Mạng 68 Giải mã CFB IV CM-1 Thanh ghi dịch Thanh ghi dịch Thanh ghi dịch 64-s bit | s bit 64-s bit | s bit 64-s bit | s bit 64 64 64 K Mã hóa K Mã hóa ... K Mã hóa 64 s 64 64 Chọn Bỏ đi Chọn Bỏ đi Chọn Bỏ đi s bit 64-s bit s bit 64-s bit s bit 64-s bit s s s s s s C1 C2 CM p1 p2 pM Nguyễn Đại Thọ An ninh Mạng 69 Đánh giá CFB • Thích hợp khi dữ liệu nhận được theo từng đơn vị bit hay byte • Không cần độn thông báo để làm tròn khối • Cho phép số lượng bit bất kỳ – Ký hiệu CFB-1, CFB-8, CFB-64,... • Là phương thức luồng phổ biến nhất • Dùng giải thuật mã hóa ngay cả khi giải mã • Lỗi xảy ra khi truyền 1 khối mã hóa sẽ lan rộng sang các khối tiếp sau Nguyễn Đại Thọ An ninh Mạng 70 Mã hóa OFB IV OM-1 Thanh ghi dịch Thanh ghi dịch Thanh ghi dịch 64-s bit | s bit 64-s bit | s bit 64-s bit | s bit 64 64 64 K Mã hóa K Mã hóa ... K Mã hóa 64 64 64 Chọn Bỏ đi Chọn Bỏ đi Chọn Bỏ đi s bit 64-s bit s bit 64-s bit s bit 64-s bit p1 s p2 s pM s s s s s C1 C2 CM Nguyễn Đại Thọ An ninh Mạng 71 Giải mã OFB IV OM-1 Thanh ghi dịch Thanh ghi dịch Thanh ghi dịch 64-s bit | s bit 64-s bit | s bit 64-s bit | s bit 64 64 64 K Mã hóa K Mã hóa ... K Mã hóa 64 s 64 64 Chọn Bỏ đi Chọn Bỏ đi Chọn Bỏ đi s bit 64-s bit s bit 64-s bit s bit 64-s bit s s s s C1 C2 CM p1 p2 pM Nguyễn Đại Thọ An ninh Mạng 72 Đánh giá OFB • Tương tự CFB chỉ khác là phản hồi lấy từ đầu ra giải thuật mã hóa, độc lập với thông báo • Không bao giờ sử dụng lại cùng khóa và IV • Lỗi truyền 1 khối mã hóa không ảnh hưởng đến các khối khác • Thông báo dễ bị sửa đổi nội dung • Chỉ nên dùng OFB-64 • Có thể tiết kiệm thời gian bằng cách thực hiện giải thuật mã hóa trước khi nhận được dữ liệu Nguyễn Đại Thọ An ninh Mạng 73 Phương thức CTR Biến đếm Biến đếm + 1 Biến đếm + N - 1 K Mã hóa K Mã hóa ... K Mã hóa p1 p2 pN C1 C2 CN Mã hóa Biến đếm Biến đếm + 1 Biến đếm + N - 1 K Mã hóa K Mã hóa ... K Mã hóa C1 C2 CN p1 p2 pN Giải mã Nguyễn Đại Thọ An ninh Mạng 74 Đánh giá CTR • Hiệu quả cao – Có thể thực hiện mã hóa (hoặc giải mã) song song – Có thể thực hiện giải thuật mã hóa trước nếu cần • Có thể xử lý bất kỳ khối nào trước các khối khác • An ninh không kém gì các phương thức khác • Đơn giản, chỉ cần cài đặt giải thuật mã hóa, không cần đến giải thuật giải mã • Không bao giờ sử dụng lại cùng giá trị khóa và biến đếm (tương tự OFB) Nguyễn Đại Thọ An ninh Mạng 75 Bố trí công cụ mã hóa • Giải pháp hữu hiệu và phổ biến nhất chống lại các mối đe dọa đến an ninh mạng là mã hóa • Để thực hiện mã hóa, cần xác định – Mã hóa những gì – Thực hiện mã hóa ở đâu • Có 2 phương án cơ bản – Mã hóa liên kết – Mã hóa đầu cuối Nguyễn Đại Thọ An ninh Mạng 76 Mã hóa liên kết • Công cụ mã hóa được sắp đặt ở 2 đầu của mọi liên kết có nguy cơ bị tấn công • Đảm bảo an ninh việc lưu chuyển thông tin trên tất cả các liên kết mạng • Các mạng lớn cần đến rất nhiều công cụ mã hóa • Cần cung cấp rất nhiều khóa • Nguy cơ bị tấn công tại mỗi chuyển mạch – Các gói tin cần được mã hóa mỗi khi đi vào một chuyển mạch gói để đọc được địa chỉ ở phần đầu • Thực hiện ở tầng vật lý hoặc tầng liên kết Nguyễn Đại Thọ An ninh Mạng 77 Mã hóa đầu cuối • Quá trình mã hóa được thực hiện ở 2 hệ thống đầu cuối • Đảm bảo an ninh dữ liệu người dùng • Chỉ cần một khóa cho 2 đầu cuối • Đảm bảo xác thực ở mức độ nhất định • Mẫu lưu chuyển thông tin không được bảo vệ – Các phần đầu gói tin cần được truyền tải tường minh • Thực hiện ở tầng mạng trở lên – Càng lên cao càng ít thông tin cần mã hóa và càng an ninh nhưng càng phức tạp với nhiều thực thể và khóa Nguyễn Đại Thọ An ninh Mạng 78 Kết hợp các phương án mã hóa Công cụ mã hóa đầu cuối PSN : Packet-switching node Công cụ mã hóa liên kết Nguyễn Đại Thọ An ninh Mạng 79 Quản lý khóa bí mật • Vấn đề đối với mã hóa đối xứng là làm sao phân phối khóa an ninh đến các bên truyền tin – Thường hệ thống mất an ninh là do không quản lý tốt việc phân phối khóa bí mật • Phân cấp khóa – Khóa phiên (tạm thời) • Dùng mã hóa dữ liệu trong một phiên kết nối • Hủy bỏ khi hết phiên – Khóa chủ (lâu dài) • Dùng để mã hóa các khóa phiên, đảm bảo phân phối chúng một cách an ninh Nguyễn Đại Thọ An ninh Mạng 80 Các cách phân phối khóa • Khóa có thể được chọn bởi bên A và gửi theo đường vật lý đến bên B • Khóa có thể được chọn bởi một bên thứ ba, sau đó gửi theo đường vật lý đến A và B • Nếu A và B đã có một khóa dùng chung thì một bên có thể gửi khóa mới đến bên kia, sử dụng khóa cũ để mã hóa khóa mới • Nếu mỗi bên A và B đều có một kênh mã hóa đến một bên thứ ba C thì C có thể gửi khóa theo các kênh mã hóa đó đến A và B Nguyễn Đại Thọ An ninh Mạng 81 Phân phối khóa tự động 1. Host gửi gói tin yêu cầu kết nối 2. FEP đệm gói tin; hỏi KDC khóa phiên 3. KDC phân phối khóa phiên đển 2 host 4. Gói tin đệm được truyền đi FEP = Front End Processor KDC = Key Distribution Center Nguyễn Đại Thọ An ninh Mạng 82
File đính kèm:
- bai_giang_an_ninh_mang_chuong_2_phan_2_ma_hoa_doi_xung_nguye.pdf