Bài giảng An ninh mạng viễn thông

pdf 159 trang Gia Huy 21/05/2022 2020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An ninh mạng viễn thông", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_an_ninh_mang_vien_thong.pdf

Nội dung text: Bài giảng An ninh mạng viễn thông

  1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG   BÀI GIẢNG AN NINH MẠNG VIỄN THÔNG Chuyên ngành Điện tử Viễn thông (Lưu hành nội bộ ) Biên soạn: TS. Nguyễn Chiến Trinh PGS.TS. Nguyễn Tiến Ban TS. Hoàng Trọng Minh ThS. Nguyễn Thanh Trà ThS. Phạm Anh Thư Hà Nộii - 12/2016
  2. LỜI NÓI ĐẦU ii
  3. Mục lục Mục lục i Danh mục hình vẽ iii Chương 1: Tổng quan an toàn mạng truyền thông 1 1.1 Khái niệm an toàn mạng truyền thông 1 1.2 Kiến trúc an toàn 1 1.3 Tấn công mạng 2 1.4 Dịch vụ an toàn 4 1.5 Các cơ chế an toàn 6 1.6 Mô hình an toàn mạng 8 Chương 2: Mật mã khóa đối xứng 11 2.1 Mô hình mật mã hóa khóa đối xứng 11 2.2 Mật mã khối và tiêu chuẩn mật mã hóa dữ liệu DES 15 2.2.1 Cấu trúc mật mã khối 15 2.2.1.1. Cấu trúc chung của mật mã khối 16 2.2.1.2 Cấu trúc mật mã khối Feistel 18 2.2.2 DES 22 2.2.2.1 Cấu trúc DES 22 2.2.2.2 Hoán vị khởi tạo và hoán vị kết thúc 23 2.2.2.3 Các vòng mật mã của DES 24 2.2.2.4 Thuật toán sinh khóa con của DES 26 2.2.2.5 Hiệu ứng lan truyền 26 2.2.3 Nguyên lí thiết kế mật mã khối 28 2.3 Tiêu chuẩn mật mã hóa tiên tiến AES 29 2.3.1 Cấu trúc AES 29 2.3.2 Các hàm biến đổi AES 33 2.3.2.1 Hàm SubBytes 33 2.3.2.2 Hàm ShiftRows 35 2.3.2.3 Hàm MixColumns 36 2.3.2.4 Hàm AddRoundKey 37 2.3.3 Tạo khóa AES 39 2.3.4 Thực hiện AES 40 2.4 Các ứng dụng của mật mã khối 44 2.4.1 Mật mã hóa nhiều lần 44 2.4.2 Các chế độ và ứng dụng mật mã khối 46 2.5 Tạo số giả ngẫu nhiên và mật mã dòng 53 2.5.1 Nguyên lí tạo số giả ngẫu nhiên 53 2.5.2 Bộ tạo số giả ngẫu nhiên 55 2.5.3 Mật mã dòng 58 2.5.4 RC4 59 i
  4. Chương 3: Mật mã khóa bất đối xứng 62 3.1. Mật mã khóa công khai và RSA 62 3.1.1 Nguyên lí hệ thống mật mã khóa công khai 62 3.1.1.1 ệ mật khóa công khai 62 3.1.1.2 Các ứng dụng cho hệ mật khóa công khai 67 3.1.1.3 Các yêu cầu đối với hệ mật khóa công khai 68 3.1.2 Giải thuật RSA 69 3.2 Trao đổi khóa Diffie-Hellman 82 3.3 ệ thống mật mã Elgamal 88 3.4 Tạo số giả ngẫu nhiên sử dụng mật mã bất đối xứng 92 Chương 4: Các giải thuật toàn vẹn dữ liệu 95 4.1 àm băm 95 4.1.1 Ứng dụng của hàm băm 95 4.1.2 Các yêu cầu và độ an toàn hàm băm 97 4.2 Mã xác thực bản tin MAC 100 4.2.1 Các yêu cầu xác thực bản tin 100 4.2.2 Chức năng xác thực bản tin 101 4.2.3 Các yêu cầu cho mã xác thực bản tin 109 4.2.4 Tính an toàn của MAC 112 4.2.5 MAC dựa trên hàm băm HMAC 114 4.2.7 Mật mã được xác thực 123 Chương 5: Xác thực 133 5.1 Quản lí và phân phối khóa 133 5.1.1 h n hối khóa đối xứng s dụng mật mã hóa đối xứng 133 5.1.2 h n hối khóa đối xứng bằng mật mã hóa bất đối xứng 136 5.1.3 h n hối khóa công khai 138 5.1.4 Chứng thư X.509 141 5.2 Xác thực người sử dụng 146 5.2.1 Nguyên lí xác thực người s dụng từ xa 146 5.2.2 Xác thực người dùng s dụng mật mã khóa đối xứng 149 5.2.3 Xác thực người dùng s dụng mật mã khóa bất đối xứng Error! Bookmark not defined. TÀI LIỆU THAM KHẢO Error! Bookmark not defined. ii
  5. Danh mục hình vẽ Hình 1.1: Các tấn công thụ động 2 Hình 1.2: Các tấn công tích cực 3 Hình 1.3: Mối quan hệ giữa các dịch vụ an toàn và các cơ chế an toàn 8 Hình 1.4: Mô hình an toàn mạng 8 Hình 1.5: Mô hình an toàn truy nhậ mạng 10 Hình 2.1: Mô hình mật mã khóa đối xứng đơn giản 11 Hình 2.2: Mô hình hệ thống mật mã hóa đối xứng 12 Hình 2.3: Cấu trúc mật mã khối 16 Hình 2.4: Nguyên lý của hé thay thế khối n bit đầu vào n bit đầu ra (n=4) 17 Hình 2.5: Cấu trúc mật mã hóa và giải mật mã Feistel 20 Hình 2.6: Ví dụ về mật mã hóa và giải mật mã Feistel 21 Hình 2.7: Thuật toán mật mã DES 23 Hình 2.8: Cấu trúc một vòng mật mã DES 24 Hình 2.9: Cấu trúc AES 30 Hình 2.10: Khóa và khóa được mở rộng 31 Hình 2.11: Sơ đồ mật mã và giải mật mã AES 32 Hình 2.12: Vòng mật mã AES 33 Hình 2.13: Hàm SubBytes 34 Hình 2.14: S-box cho mật mã hóa 35 Hình 2.15: S-box cho giải mật mã 35 Hình 2.16: Ví dụ về biến đổi của hàm SubBytes 35 Hình 2.17: Thực hiện dịch hàng của hàm ShiftRows 36 Hình 2.18: Ví dụ dịch vòng của hàm ShiftRows 36 Hình 2.19: Hàm MixColumns 36 Hình 2.20: Hàm AddRoundKey 37 Hình 2.21: Các đầu vào cho một vòng mật mã của AES 38 Hình 2.22: Thuật toán tạo khóa AES 40 Hình 2.23: Mật mã nghịch đảo tương đương 42 Hình 2.24: Mật mã hóa nhiều lần 45 Hình 2.25: Mô hình mật mã hóa và giải mật mã của ECB 47 Hình 2.26: Mô hình mật mã hóa và giải mật mã CBC 48 Hình 2.27: Chế độ CFB 50 Hình 2.28: Chế độ OFB 51 Hình 2.29: Chế độ CTR 53 Hình 2.30: Nguyên lý tạo số ngẫu nhiên và giả ngẫu nhiên 55 Hình 2.31: Sơ đồ khối bộ tạo BBS 57 Hình 2.32: Sơ đồ mật mã dòng 59 Hình 2.33: RC4 61 Hình 4.1: Ví dụ về s dụng hàm băm trong nhận thực bản tin 96 Hình 4.2: Các cách s dụng cơ bản của mã hóa bản tin 102 Hình 4.3: Điều khiển lỗi trong và ngoài 104 Hình 4.4: h n đoạn TCP 104 Hình 4.5: Các cách dùng cơ bản của mã xác thực bản tin MAC 107 iii
  6. Hình 4.6: Cấu trúc HMAC 116 Hình 4.7: Sự thực hiện HMAC hiệu quả 119 Hình 4.8: Thuật toán nhận thực dữ liệu 121 Hình 4.9: Mã hóa nhận thực bản tin dựa trên mật mã 122 Hình 4.10: Bộ đếm v i chuỗi khối mã hóa - mã nhận thực bản tin 125 Hình 4.11: Chức năng mã hóa và nhận thực GCM 127 Hình 4.12: Bộ đếm galois- Mã nhận thực bản tin 128 Hình 4.13: iến trúc cơ sở của hàm băm dựa trên RNG 130 Hình 5.1: Số lượng các khóa yêu cầu cho các kết nối ngẫu nhiên giữa các điểm cuối 133 Hình 5.2: Mô hình h n cấ khóa 134 Hình 5.3: ịch bản h n hối khóa 135 Hình 5.4: thủ tục h n hối khóa bí mật đơn giản 137 Hình 5.5: thủ tục h n hối khóa bí mật cung cấ bảo mật và nhận thực 137 Hình 5.6: h n hối khóa tự do 138 Hình 5.7: h n hối khóa qua thư mục khóa công khai 139 Hình 5.8: ịch bản h n hối khóa công khai 140 Hình 5.9: Trường mở rộng của chứng ch X.509 142 Danh mục bảng biểu Bảng 1.1: Các cơ chế an toàn 7 Bảng 2.1: Các kiểu tấn công 14 Bảng 2.2: Các kiểu ánh xạ 16 Bảng 2.3: Bảng mật mã hóa và giải mật mã cho mật mã khối thay thế của hình 2.4 17 Bảng 2.4: Ví dụ hiệu ứng lan truyền 27 Bảng 2.5: ví dụ hoạt động của bộ tạo BBS 58 Bảng 3.1: Mã khóa công khai và truyền thống 65 Bảng 3.2: Các ứng dụng cho hệ mật khóa công khai 68 Bảng 3.3: Tiến trình tìm ra thừa số trong RSA 78 Bảng 4.1: Các yêu cầu hàm băm bảo mật 98 iv
  7. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Chương 1: Tổng quan an toàn mạng truyền thông 1.1 Khái niệm an toàn mạng truyền thông Trư c đ y khi công nghệ máy tính chưa hát triển, khi nói đến vấn đề an toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện há nhằm đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật. Chẳng hạn là các biện há như: Đóng dấu và ký niêm hong một bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến người nhận hay không. Dùng mật mã mã hóa bản tin để ch có người g i và người nhận hiểu được bản tin. hương há này thường được s dụng trong chính trị và qu n sự. Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ nghiêm ngặt, ch có những người được cấ quyền m i có thể xem tài liệu. V i sự hát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự hát triển của mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và g i đi trên mạng Internet. Và do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính. Có thể h n loại mô hình an toàn mạng thông tin trên máy tính theo hai hư ng chính như sau: 1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security) 2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự x m nhậ há hoại từ bên ngoài (System Security) 1.2 Kiến trúc an toàn ITU-T đã đưa ra khuyến nghị X.800 định nghĩa kiến trúc an toàn cho mô hình OSI. iến trúc an toàn OSI giú cho các nhà quản lý trong việc tổ chức cung cấ dịch vụ an toàn. Hơn nữa, do kiến trúc này được hát triển như là chuẩn quốc tế, các nhà cung cấ cơ sở hạ tầng cũng như nhà cung cấ thiết bị và dịch vụ có thể triển khai các đặc tính an toàn cho các sản hẩm và dịch vụ của họ. iến trúc an toàn tậ trung vào các kiểu tấn công, các cơ chế an toàn, và các dịch vụ an toàn. Các đặc điểm này được định nghĩa ngắn gọn như sau: 1
  8. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Tấn công an toàn: bất kỳ hành động nào mà làm hại đến tính an toàn thông tin của một tổ chức nào đó. Cơ chế an toàn: quá trình được thiết kế để hát hiện, ngăn ngừa, hay khôi hục lại các kiểu tấn công an toàn. Dịch vụ an toàn: dịch vụ truyền thông làm tăng cường tính an toàn của hệ thống x lý dữ liệu và thông tin của một tổ chức. Các dịch vụ này thường dùng để chống lại các tấn công an toàn, và các dịch vụ này tận dụng một hoặc nhiều cơ chế an toàn để cung cấ dịch vụ. 1.3 Tấn công mạng Về cơ bản, tấn công mạng được chia thành 2 loại đó là tấn công thụ động và tấn công tích cực. Tấn công thụ động là việc cố gắng lấy hoặc lợi dụng thông tin hệ thống nhưng không ảnh hưởng đến các tài nguyên hệ thống. Tấn công tích cực là các hành động cố gắng thay đổi các tài nguyên hệ thống hoặc g y ảnh hưởng đến hoạt động của họ. Các kiểu tấn công thụ động Các tấn công thụ động (hình 1.1) về bản chất là các hành động nghe trộm, hoặc giám sát các hoạt động truyền thông. Mục tiêu của kẻ tấn công là lấy được thông tin đang được truyền đi. Hai kiểu của tấn công thụ động là xem trộm các nội dung bản tin và h n tích lưu lượng. Hình 1.1: Các tấn công thụ động 2
  9. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông iểu tấn công xem trộm nội dung bản tin: cuộc điện thoại, mail điện t , và file được truyền đi có thể chứa các thông tin bí mật hoặc nhạy cảm. ẻ tấn công sẽ tấn công để xem trộm được các thông tin bí mật hoặc nhạy cảm đó. iểu tấn công thụ động thứ hai, h n tích lưu lượng: giả thiết rằng đã có cách để che dấu các nội dung bản tin hoặc lưu lượng thông tin khác để các kẻ tấn công, thậm chí họ ch bắt các bản tin, không thể tách thông tin từ bản tin đó. ĩ thuật chung để che dấu thông tin là mật mã hóa. Nếu bản tin đã được mật mã hóa, kẻ tấn công có thể vẫn có khả năng quan sát được mẫu các bản tin này. ẻ tấn công có thể xác định vị trí và nhận dạng các thiết bị truyền thông và có thể quan sát được tần suất và độ dài các bản tin đang được trao đổi. Thông tin này có thể là hữu ích cho việc đoán bản chất của quá trình truyền thông đang xảy ra. Các tấn công thụ động là rất khó để hát hiện, bởi chúng không liên quan đến bất kỳ sự thay đổi nào của dữ liệu. Cụ thể là, lưu lượng bản tin được g i và nhận theo một cách thông thường nào đó, và cả người g i và người nhận đều không hát hiện ra sự có mặt của bên thứ ba đang đọc các bản tin hoặc đang quan sát các mẫu lưu lượng. Tuy nhiên, có thể ngăn ngừa kiểu tấn công này bằng cách s dụng các kiểu mật mã hóa. Do đó, đối v i kiểu tấn công này, hòng ngừa tốt hơn là hát hiện. Các kiểu tấn công tích cực Các tấn công tích cực (hình 1.2) liên quan đến việc s a đổi dòng dữ liệu hoặc tạo dòng dữ liệu sai lệch và có thể được chia thành bốn loại sau: mạo danh (Masquerade), hát lại bản tin (re lay), s a đổi bản tin, và từ chối dịch vụ. Hình 1.2: Các tấn công tích cực 3
  10. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Tấn công mạo danh: tấn công mạo danh là tấn công mà kẻ tấn công mạo danh bên g i tin để g i bản tin cho bên nhận. Bên nhận không biết sự mạo danh đó và vẫn nghĩ là bản tin được g i từ bên g i hợ lệ. Tấn công phát lại: liên quan đến việc sao chép thụ động dữ liệu và sau đó g i lại bản sao ché đó cho bên nhận. Thoạt đầu có thể nghĩ rằng việc hát lại này là vô hại, tuy nhiên trong nhiều trường hợ cũng g y ra tác hại không kém so v i tấn công mạo danh. Xét tình huống sau: giả s Alice là ng n hàng còn Bod là một khách hàng. Bod g i bản tin đề nghị Alice chuyển cho Darth 1000$. Bod có á dụng các biện há như chữ ký điện t v i mục đích không cho Darth mạo danh cũng như s a thông tin. Tuy nhiên nếu Darth sao ché và hát lại bản tin đó thì các biện há bảo vệ này không có ý nghĩa. Alice tin rằng Bod g i tiế một bản tin m i để chuyển thêm cho Darth 1000$ nữa. Thay đổi bản tin: Darth chặn các bản tin Bod g i cho Alice và ngăn không cho các bản tin này đến đích. Sau đó Darth thay đổi nội dung của bản tin và g i tiế cho Alice. Alice nghĩ rằng nhận được bản tin nguyên bản ban đầu của Bod mà không biết rằng chúng đã bị s a đổi. Ví dụ, Bod g i bản tin cho Alice là “Cho hé John đọc được các account file bí mật”, bản tin đó bị s a đổi thành “Cho hé Fred đọc được các account file bí mật”. Tấn công từ chối dịch vụ: kiểu tấn công này có một mục tiêu cụ thể; ví dụ kẻ tấn công chặn toàn bộ các bản tin được chuyển t i một đích nào đó. Một loại hình khác của kiểu tấn công này là làm sậ hoàn toàn mạng, có thể bằng cách làm mất khả năng hoạt động của mang hoặc làm quá tải mạng v i các bản tin g i liên tiế t i mạng đó để làm suy giảm hiệu năng mạng. V i các kiểu tấn công tích cực này, khó có thể hòng ngừa được hoàn toàn các nguy cơ tấn công đó bởi có một dải rộng các nguy cơ tấn công vào mạng, hần mềm, và các thiết bị. 1.4 Dịch vụ an toàn X.800 định nghĩa dịch vụ an toàn là một dịch vụ được cung cấ bởi l giao thức của các hệ thống truyền thông và đảm bảo tính an toàn của các hệ thống hoặc của việc truyền dữ liệu. RFC 4949 định nghĩa dịch vụ an toàn thực hiện các chính sách an toàn và được thực thi bởi các cơ chế an toàn. X.800 chia các dịch vụ này thành năm loại và 14 dịch vụ cụ thể như sau. 4
  11. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Dịch vụ xác thực: Dịch vụ xác thực liên quan đến việc đảm bảo rằng quá trình truyền thông được xác thực. Trong trường hợ ch có một thông tin, như là tín hiệu cảnh báo hoặc báo thức, chức năng của dịch vụ xác thực là đảm bảo v i người nhận rằng bản tin đó đến từ nguồn được xác thực. Trong trường hợ có sự tương tác xảy ra, ví dụ như sự kết nối của đầu cuối v i thiết bị đầu cuối khác, đầu tiên, tại thời điểm khởi tạo kết nối, dịch vụ xác thực đảm bảo rằng hai thực thể đều được xác thực. Sau đó, dịch vụ này hải đảm bảo rằng kết nối là không bị cản trở theo cách đó bên thứ ba có thể mạo danh như là một trong hai bên hợ há để thực hiện việc nhận và truyền dẫn không được hé . Hai loại dịch vụ xác thực được định nghĩa trong X.800: Xác thực toàn bộ các peer: cung cấ chứng thực nhận dạng thực thể eer trong một liên kết. Hai thực thể được gọi là eer nếu chúng thực thi cùng giao thức trong các hệ thống khác nhau. Xác thực eer được thực hiện tại thời điểm thiết lậ kết nối hoặc tại các thời điểm trong suốt ha truyền dữ liệu của kết nối. Xác thực dữ liệu: cung cấ chứng thực nguồn dữ liệu. Dịch vụ này không cung cấ bảo vệ chống lại việc nh n bản hoặc ch nh s a dữ liệu. iểu dịch vụ này hỗ trợ các ứng dụng không có tương tác trư c đó giữa các thực thể truyền thông như thư điện t . Điều khiển truy nhập Trong ngữ cảnh an toàn mạng, điều khiển truy nhậ có khả năng hạn chế và điều khiển việc truy nhậ t i các hệ thống và các ứng dụng qua các liên kết truyền thông. Để đạt được điều này, mỗi thực thể cố gắng truy nhậ đầu tiên hải được nhận dạng, hoặc nhận thực, thì m i được hé truy cậ các hần t mạng, thông tin lưu trữ, luồng thông tin, dịch vụ và ứng dụng mạng. Dịch vụ bảo mật dữ liệu Dịch vụ bảo mật dữ liệu là thực hiện bảo vệ dữ liệu được truyền đi khỏi các kiểu tấn công thụ động. Có một số mức bảo vệ được định nghĩa. Mức rộng nhất là bảo vệ toàn bộ dữ liệu của người s dụng được truyền đi giữa hai bên qua một khoảng thời gian nào đó. Mức hẹ nhất của dịch vụ bảo mật dữ liệu là bảo vệ một bản tin đơn hoặc thậm chí một vài trường cụ thể nào đó trong một bản tin. Một khía cạnh khác của dịch vụ bảo mật là bảo vệ luồng dữ liệu khỏi kẻ tấn công. Điều đó yêu cầu kẻ tấn công không thể theo dõi 5
  12. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông được hía nguồn, hía đích, tần suất, độ dài, hay các đặc tính khác của lưu lượng trên một hương tiện truyền thông. Dịch vụ toàn vẹn dữ liệu Cũng giống như dịch vụ bảo mật dữ liệu, dịch vụ toàn vẹn dữ liệu có khả năng á dụng cho một dòng bản tin, một bản tin, hay một số trường xác định trong một bản tin. Dịch vụ toàn vẹn hư ng kết nối đảm bảo rằng các bản tin được nhận mà không bị lặ , chèn, ch nh s a, sai thứ tự, hay truyền lại. Sự há hoại dữ liệu có thể được khôi hục bởi dịch vụ này. Do đó, dịch vụ toàn vẹn hư ng kết nối giải quyết được kiểu tấn công từ chối dịch vụ và ch nh s a dòng bản tin. Mặt khác, dịch vụ toàn vẹn hư ng hi kết nối, ch thực hiện v i từng bản tin riêng biết, thường cung cấ sự bảo vệ chống lại việc ch nh s a bản tin. Dịch vụ không từ chối (Nonrepudiation) Dịch vụ không từ chối hòng ngừa việc bên g i hoặc bên nhận từ chối đã g i ti hoặc đã nhận bản tin. Ví dụ như s dụng chữ ký điện t để thực hiện dịch vụ này. Các dịch vụ khả dụng Cả X.800 và RFC 4949 đều định nghĩa tính khả dụng là đặc tính của hệ thống hoặc tài nguyên hệ thống có khả năng truy cậ và s dụng dựa trên nhu cầu bởi một thực thể hệ thống được cấ quyền, tùy thuộc vào các đặc tả hiệu năng của hệ thống đó (nghĩa là hệ thống là khả dụng nếu nó cung cấ các dịch vụ theo thiết kế hệ thống bất cứ khi nào người s dụng yêu cầu). Có rất nhiều kiểu tấn công có thể làm mất hoặc giảm tính khả dụng. Có một số cách tự động đối hó v i các kiểu tấn công này như xác thực và mật mã hóa, trong khi một số cách khác yêu cầu một số biện há mức vật lý để hòng ngừa hoặc khôi hục việc mất tính khả dụng của các hần t của các hệ thống. 1.5 Các cơ chế an toàn Bảng dư i đ y liệt kê các cơ chế an toàn được định nghĩa trong X.800. Các cơ chế này được h n chia thành các cơ chế được thực thi trong l giao thức cụ thể, như TC hay giao thức l ứng dụng, và các cơ chế không cụ thể v i bất kỳ l giao thức nào hoặc dịch vụ an toàn nào. X.800 h n biệt các cơ chế mật mã hóa thuật nghịch và các cơ chế mật mã hóa không thuận nghịch. Cơ chế mật mã hóa thuật nghịch ch đơn giản là thuật toán mật mã cho hé dữ liệu được mật mã hóa và sau đó giải mật mã. Cơ chế mật mã 6
  13. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông hóa không thuận nghịch gồm các thuật toán hàm băm và các mã xác thực bản tin được s dụng trong các ứng dụng xác thực và chữ ký điện t . Bảng 1.1: Các cơ chế an toàn Hình dư i đ y ch ra mối quan hệ giữa các dịch vụ an toàn và các cơ chế an toàn. 7
  14. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Hình 1.3: Mối quan hệ giữa các dịch vụ an toàn và các cơ chế an toàn 1.6 Mô hình an toàn mạng Mô hình an toàn mạng được mô tả trong hình 1.4. Hình 1.4: Mô hình an toàn mạng 8
  15. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Bản tin được truyền từ bên g i đến bên nhận qua mạng Internet. ênh thông tin logic được thiết lậ bằng cách định nghĩa một tuyến qua mạng Internet từ nguồn t i đích và bằng cách s dụng các giao thức truyền thông (TC /I ). Các khía cạnh an toàn được yêu cầu khi cần bảo vệ quá trình truyền thông khỏi kẻ tấn công. Tất cả các kĩ thuật cung cấ tính an toàn đều có hai thành hần: hé biến đổi an toàn lên thông tin được g i đi. Ví dụ như mật mã hóa bản tin hay thêm mã vào nội dung bản tin. Một số thông tin an toàn được chia sẻ bởi bên g i và bên nhận. Ví dụ như khóa bí mật được s dụng để mật mã hóa bản tin trư c khi g i đi. Bên thứ ba chứng thực có thể được yêu cầu để đạt được truyền dẫn an toàn. Ví dụ, bên thứ ba có thể chịu trách nhiệm h n hối thông tin bí mật t i bên g i và bên nhận mà không bị hát hiện bởi bất cứ kẻ tấn công nào. Có bốn nhiệm vụ cơ bản khi thiết kế dịch vụ an toàn cụ thể: 1. Thiết kế một thuật toán cho việc thực hiện biến đổi liên quan đến an toàn. Thuật toán này hải đảm bảo rằng kẻ tấn công không thể đánh bại được mục đích của nó. 2. Tạo thông tin bí mật được s dụng cùng v i thuật toán 3. hát triển các hương há h n hối và chia sẻ thông tin bí mật 4. Ch rõ giao thức được s dụng bởi bên g i và bên nhận mà s dụng thuật toán an toàn và thông tin bí mật để đạt được dịch vụ an toàn cụ thể. Hình 1.5 trình bày mô hình an toàn truy nhậ mạng nhằm bảo vệ hệ thống thông tin khỏi các truy nhậ không mong muốn. Có hai loại tấn công đó là tấn công từ con người (hacker) và tấn công bằng các hần mềm như virus hay worm. Các cơ chế an toàn cần thiết để đối hó v i các truy nhậ không mong muốn được phân thành hai loại. Loại thứ nhất là chức năng gatekee er. Loại này bao gồm các thủ tục đăng nhậ dựa trên mật khẩu được thiết kế để bảo vệ và loại bỏ các worm, virusm và các kiểu tấn công tương tự khác. Loại thứ hai bao gồm các loại điều khiển trong nội bộ nhằm mục đích giám sát các hoạt động và h n tích thông tin lưu trữ để hát hiện ra sự có mặt của kẻ x m nhậ không mong muốn. 9
  16. An ninh mạng viễn thông Chương 1: Tổng quan an toàn mạng truyền thông Hình 1.5: Mô hình an toàn truy nhậ mạng 10
  17. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Chương 2: Mật mã khóa đối xứng 2.1 Mô hình mật mã hóa khóa đối xứng Sơ đồ mật mã hóa đối xứng bao gồm 5 thành hần như ch ra trong hình vẽ 2.1 dư i đ y. Hình 2.1: Mô hình mật mã khóa đối xứng đơn giản Năm thành hần của mô hình mật mã khóa đối xứng đơn giản bao gồm: Bản rõ: đ y là dữ liệu hoặc bản tin ban đầu, được xem như là đầu vào của khối thuật toán mật mã. Thuật toán mật mã hóa: thuật toán mật mã hóa thực hiện rất nhiều phép biến đổi và thay thế trên bản rõ. Khóa bí mật: khóa bí mật cũng là một đầu vào của khối thuật toán mật mã hóa. Khóa là một giá trị độc lập v i bản rõ và thuật toán. Thuật toán sẽ cho ra một đầu ra khác nhau phụ thuộc vào khóa cụ thể được s dụng tại thời điểm đó. Các hé biến đổi và thay thế chính xác được thực hiện bởi thuật toán phụ thuộc vào khóa đó. Bản mã: đ y là bản tin đầu ra khối thuật toán mật mã. Bản mã này phụ thuộc vào bản rõ và khóa bí mật. V i một bản tin xác định, hai khóa khác nhau sẽ tạo ra hai bản mã khác nhau. Thuật toán giải mật mã: là thuật toán thực hiện ngược lại v i thuật toán mật mã hóa. Khối này nhận bản mã và khóa bí mật để tạo ra bản rõ ban đầu. Có hai yêu cầu cho việc s dụng an toàn mật mã hóa truyền thống: 11
  18. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Một thuật toán mật mã hóa đủ mạnh được yêu cầu: tối thiểu là thuật toán mật mã hóa đó hải đảm bảo rằng kẻ tấn công (opponent) mặc dù biết được thuật toán và lấy được một hoặc nhiều bản mã nhưng không thể giải mật mã bản mã đó hoặc tìm ra khóa. Yêu cầu này thường được phát biểu như sau: kẻ tấn công không có khả năng giải mật mã bản mã hoặc khôi phục khóa thậm chí anh ta sở hữu một số các bản mã cùng v i bản rõ được tạo ra từ mỗi bản mã đó. Bên g i và bên nhận phải có bản sao của khóa bí mật, và khóa phải được giữ bí mật giữa người g i và người nhận, hay nói cách khác khóa phải được chuyển một cách an toàn từ người g i đến người nhận. Giả s rằng việc giải mật mã bản tin là không thể thực hiện được dựa trên bản mã và sự hiểu biết về thuật toán mật mã hóa/giải mật mã. Nói cách khác, không cần hải giữ bí mật thuật toán mật mã hóa mà ch cần giữ bí mật khóa. Đặc điểm này của mật mã hóa đối xứng làm cho nó được s dụng rộng rãi. Thực tế là thuật toán không cần được giữ bí mật nghĩa là các nhà sản xuất có thể và đã hát triển các mạch (chi ) có chi hí thấ để thực thi các thuật toán mật mã hóa dữ liệu. Các chi này sẵn có và được tính hợ vào một số sản hẩm. V i việc sứ dụng mật mã hóa đối xứng, vấn đề bảo mật được thực hiện ở việc bảo mật khóa bí mật. Như vậy, các hần t cần thiết của sơ đồ mật mã hóa đối xứng được mô tả như trong hình 2.2. Hình 2.2: Mô hình hệ thống mật mã hóa đối xứng 12
  19. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Nguồn bản tin tạo ra bản tin trong chế độ bản rõ, XXX [X12 , , ,M ]. M hần t của X là các chữ cái trong bản chữ cái (al habet). Theo truyền thống, bảng chữ cái gồm 26 chữ cái in hoa. Ngày nay, bảng chữ cái nhị h n 0,1được s dụng. Đối v i mật mã hóa, khóa có dạng KKK [K12 , , ,J ]được tạo ra. Nếu khóa đó được tạo ra tại hía nguồn bản tin, thì nó cũng hải được cung cấ cho bên nhận bằng một kênh an toàn. Nếu bên thứ ba tạo ra khóa bí mật, thì khóa đó sẽ được h n hối an toàn t i cả bên g i và nhận. V i bản tin X và khóa bí mật K là đầu vào, các thuật toán mật mã hóa tạo ra các bản mã YY [Y12 ,Y , ,N ], được viết như sau: YEKX (,) Công thức này ch ra rằng Y được tạo ra bằng cách s dụng thuật toán mật mã hóa E là một hàm của bản rõ, X, v i một hàm xác định được quyết định bởi giá trị của khóa K. Bên nhận mong muốn, có khóa bí mật, có khả năng thực hiện hé biến đổi sau: XDKY (,) ẻ tấn công, thu được Y nhưng không có khóa hoặc X, có thể cố gắng để khôi hục X hoặc hoặc cả X và . Giả thiết rằng kẻ tấn công đó biết thuật toán mật mã hóa E và thuật toán giải mật mã D. Nếu kẻ tấn công ch quan t m đến một bản tin cụ thể, thì  ch cố gằng khôi hục X bằng cách tạo ra ư c lượng bản rõ, X . Tuy nhiên, thường thì kẻ tấn công quan t m đến khả năng đọc được các bản tin tiế theo, trong trường hợ đó hải  khôi hục bằng cách tạo ra ư c lượng K . Mật mã (Cryptography) Các hệ thống mật mã được mô tả bởi ba khía cạch độc lậ dư i đ y: 1. Kiểu các cách thức được sử dụng để biến đổi từ bản rõ thành bản mã. Tất cả các thuật toán mật mã hóa được dựa trên hai nguyên lý chung: thay thế, trong đó mỗi phần t trong bản rõ (bit, chữ cái, nhóm bít hoặc nhóm chữ cái) được ánh xạ thành một phần t khác; và hoán đổi vị trí, trong đó các hần t trong bản rõ được sắp xếp lại. Yêu cầu cơ bản là không có thông tin nào bị mất (nghĩa là tất cả các hoạt động đó có thể được khôi phục). Hầu hết các hệ thống, còn được gọi là các hệ thống sản phẩm, bao gồm nhiều giai đoạn thay thế và biến đổi. 13
  20. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2. Số khóa được sử dụng. Nếu cả bên g i và bên nhận s dụng chung khóa, hệ thống đó được gọi là hệ thống mật mã hóa đối xứng, một khóa, khóa bí mật, hay truyền thống. Nếu bên g i và nhận s dụng các khóa khác nhau, hệ thống đó được gọi là hệ thống mật mã hóa bất đối xứng, hai khóa, hay khóa công khai. 3. Cách mà bản rõ được xử lý. Mật mã khối x lý đầu vào là một khối các phần t tại một thời điểm, tạo ra khối đầu ra cho mỗi khối đầu vào. Mật mã dòng (stream cypher) x lý các phần t đầu vào một cách liên tục, tạo ra phần t một đầu ra tại một thời điểm. Giải mã các mật mã và tấn công Brute-Force Mục tiêu tấn công hệ thống mật mã hóa là để khôi hục khóa đang dùng chứ không hải đơn giản là khoi hục bản rõ của một bản mã. Có hai cách chung để tấn công sơ đồ mật mã hóa truyền thống gồm: Giải mã các mật mã (Cryptanalysis): các tấn công này dựa trên bản chất của thuật toán cộng v i sự hiểu biết về các đặc tính chung của bản rõ hoặc thậm chí một vài cặp bản rõ –bản mã mẫu. Kiểu tấn công này lợi dụng các đặc tính của thuật toán để cố gắng suy luận ra bản rõ cụ thể hoặc để suy ra khóa được s dụng. Kiểu tấn công Brute – Force: kẻ tấn công th các khóa có thể lên một đoạn bản mã cho t i khi biên dịch được thành bản rõ. Trung bình, một n a số khóa có thể phải được th để đạt được thành công. Nếu một trong hai kiểu tấn công thực hiện thành công việc suy luận khóa, tất cả các bản tin trư c đó và sau này đều đã được mật mã hóa sẽ bị tấn công. Bảng 2.1 tóm tắt tất cả các kiểu tấn công giải mật mã các mật mã dựa trên khối lượng thông tin được biết bởi kẻ tấn công. Trong hầu hết các trường hợ , thậm chí thuật toán mật mã hóa không được biết, nhưng nhìn chung, có thể giả thiết rằng kẻ tấn công biết thuật toán được s dụng cho việc mật mã hóa. Bảng 2.1: Các kiểu tấn công Kiểu tấn công Thông tin được kẻ tấn công biết Ch biết bản mã Thuật toán mật mã hóa Bản mã Biết một số cặ Thuật toán mật mã hóa 14
  21. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng bản rõ – bản mã Bản mã (known-plaintext) Một hoặc một số cặp bản rõ – bản mã được tạo ra v i khóa bí mật. Biết bản rõ được Thuật toán mật mã hóa lựa chọn (choosen- Bản mã plaintext) Bản tin bản rõ được lựa chọn bởi kẻ tấn công, cùng v i bản mã tương ứng được tạo ra v i khóa bí mật. Biết bản mã được Thuật toán mật mã hóa lựa chọn (choosen Bản mã ciphertext) Bản mã được lựa chọn bởi kẻ tấn công, cùng v i bản mã tương ứng được giải mật mã v i khóa bí mật. Văn bản được lựa Thuật toán mật mã hóa chọn (choosen Bản mã text) Bản tin bản rõ được lựa chọn bởi kẻ tấn công, cùng v i bản mã tương ứng được tạo ra v i khóa bí mật. Bản mã được lựa chọn bởi kẻ tấn công, cùng v i bản mã tương ứng được giải mật mã v i khóa bí mật. Một kiểu tấn công khác là tấn công Brute-Force bằng cách th tất cả khóa có thể. Nếu không gian khóa là rất l n, kiểu tấn công này rất khó để thực hiện. Do đó, kẻ tấn công hải dựa trên việc h n tích bản mã, thường á dụng các th nghiệm thống kê. Để s dụng hương há này, kẻ tấn công hải có một vài ý tưởng chung về kiểu bản rõ đang được che dấu, như là bản Tiếng Anh hay Tiếng há , file EXE, 2.2 Mật mã khối và tiêu chuẩn mật mã hóa dữ liệu DES 2.2.1 Cấu trúc mật mã khối Hiện nay, rất nhiều các thuật toán mật mã hóa khối đối xứng được s dụng dựa trên cấu trúc mật mã khối Feistel. Do đó, trong hần này chúng tôi gi i thiệu cấu trúc chung của mật mã khối và cấu trúc của mật mã khối Feistel. 15
  22. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2.2.1.1. Cấu trúc chung của mật mã khối Mật mã khối là một kiểu mật mã trong đó bản rõ được x lý theo khối và được s dụng để tạo ra khối bản mã có chiều dài bằng chiều dài bản rõ. Thông thường, kích thư c khối được s dụng là 64 hoặc 128 bit. Cấu trúc bộ mật mã khối được mô tả như trong hình 2.3. Hình 2.3: Cấu trúc mật mã khối Mật mã khối hoạt động trên khối bản rõ n bit để tạo ra khối bản mã n bit. Có 2n khối bản rõ khác nhau có thể và, để việc mật mã hóa đó là biến đổi thuận nghịch (nghĩa là có thể giải mật mã), mỗi khối bản rõ hải tương ứng v i một khối bản mã duy nhất. Sự biến đổi đó được gọi là biến đổi thuận nghịch, hoặc không hải một chiều. Các ví dụ dư i đ y minh chứng các biến đổi một chiều và không hải một chiều cho trường hợ n=2. Bảng 2.2: Các kiểu ánh xạ Ánh xạ thuận nghịch Ánh xạ một chiều Bản rõ Bản mã Bản rõ Bản mã 00 11 00 11 01 10 01 10 10 00 10 01 11 01 11 01 Trong trường hợ ánh xạ một chiều, bản mã 01 có thể được tạo ra từ một trong hai khối bản rõ. Như vậy nếu hé ánh xạ thuận nghịch được s dụng, số hé biến đổi khác nhau là 2n! (vì đối v i bản rõ đầu tiên sẽ có 2n lựa chọn bản mã đầu ra, đối v i bản rõ thứ 2 sẽ có 2n-1 lựa chọn bản mã còn lại, ). 16
  23. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.4 mô tả nguyên lý của mật mã thay thế chung đối v i n = 4. hối đầu vào 4 bit, là một trong 16 tổ hợ đầu vào, được ánh xạ bởi một mật mã thay thế để tạo ra một trong 16 tổ hợ đầu ra duy nhất. Nghĩa là, 4 bit bản rõ đầu vào sẽ được thay thế bởi 4 bit bản mã đầu ra tương ứng. Các ánh xạ mật mã hóa và giải mật mã có thể được định nghĩa bởi một bảng, như ch ra trong bảng 2.2. Đ y là một dạng hổ biến nhất của mật mã khối và có thể được s dụng để định nghĩa bất kỳ ánh xạ thuận nghịch nào giữa bản rõ và bản mã. Hình 2.4: Nguyên lý của hé thay thế khối n bit đầu vào n bit đầu ra (n=4) Bảng 2.3: Bảng mật mã hóa và giải mật mã cho mật mã khối thay thế của hình 2.4 Bản rõ Bản mã Bản mã Bản rõ 0000 1110 0000 1110 0001 0100 0001 0011 0010 1101 0010 0100 17
  24. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 0011 0001 0011 1000 0100 0010 0100 0001 0101 1111 0101 1100 0110 1011 0110 1010 0111 1000 0111 1111 1000 0011 1000 0111 1001 1010 1001 1101 1010 0110 1010 1001 1011 1100 1011 0110 1100 0101 1100 1011 1101 1001 1101 0010 1110 0000 1110 0000 1111 0111 1111 0101 2.2.1.2 Cấu trúc mật mã khối Feistel Cấu trúc mật mã khối Feistel do Horst Feistel đề xuất, là sự kết hợ của các hé thay thế và hoán vị. Trong mô hình mật mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã cuối cùng. Mô hình mật mã khối Feistel được mô tả trong hình 2.5. Các hé biến đổi trong cấu trúc mật mã Feistel được mô tả như sau: KK12KK31n PCCC 12    n Trong đó, là bản rõ, Ci (i=1, 2, n) là các bản mã. Bản rõ và các bản mã được chia thành hai n a trái và hải như sau: P (,) LE00 RE Ci (,) LE i RE i i=1, 2, n Qua mỗi vòng, quy tắc biến đổi các n a trái n a hải như sau: 18
  25. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng LEii RE 1 REi  LE i 11 F RE i, K i Trong đó, toán t  thể hiện hé XOR, Ki là khóa con cho vòng thứ i. hóa con này được tạo ra từ khóa ban đầu theo một thuật toán sinh khóa con sao cho mỗi khóa con là khác nhau và khác khóa . F là một hàm mật mã hóa giống nhau ở tất cả các vòng. Hàm F thể hiện hé thay thế, còn việc tráo đổi các n a trải và n a hải thể hiện hé hoán vị. Bản mã của hệ thống sẽ là bản mã đầu ra của vòng cuối cùng được hoán vị. C (,) REnn LE Quá trình giải mật mã được thực hiện ngược lại cũng v i số vòng như ở hần mật mã hóa. hi đó, đầu vào bộ giải mật mã sẽ là bản mã C v i giá trị như sau: LD0 REn RD0 LEn Qua các vòng các bản mã được giải như sau: LDii RD 1 RDi  LD i 11 F RD i, K i Sau vòng cuối cùng, bản rõ được giải ra v i giá trị như sau: P (,) RDnn LD 19
  26. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.5: Cấu trúc mật mã hóa và giải mật mã Feistel Một ví dụ về việc mật mã hóa và giải mật mã theo Feistel như ch ra trong hình 2.6. 20
  27. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.6: Ví dụ về mật mã hóa và giải mật mã Feistel Việc hiện thực hóa chính xác hệ thống mật mã Feistel hụ thuộc vào việc lựa chọn các tham số và các đặc tính thiết kế dư i đ y: ích thư c khối: kích thư c khối l n có nghĩa là an toàn cao hơn (v i giả thiết là tất cả các tham số khác là như nhau) nhưng tốc độ mật mã hóa/giải mật mã bị giảm đối v i một thuật toán cho trư c. Thông thường, kích thư c khối 64 bit là kích thư c phổ biến, được s dụng trong thiết kế mật mã khối. Tuy nhiên, hệ thống mật mã m i AES s dụng kích thư c khối 128 bit. Kích thư c khóa: kích thư c khóa l n có nghĩa là an toàn cao hơn nhưng có thể làm giảm tốc độ mật mã hóa/giải mật mã. An toàn cao hơn có nghĩa là chống lại được các tấn công brute-force tốt hơn. ích thư c khóa 64 bit hoặc ít hơn 64 bit hiện nay đang được coi là không đủ, và khóa 128 bit đã trở thành một kích thư c phổ biến. Số vòng: bản chất của mật mã Feistel là một vòng mật mã đơn không đủ để cung cấ tính an toàn nhưng nhiều vòng mật mã sẽ làm tăng tính an toàn. ích thư c phổ biến là 16 vòng. Thuật toán tạo khóa con: Tính phức tạp trong thuật toán này sẽ g y khó khăn cho kẻ tấn công. Hàm F: tương tự như thuật toán tạo khóa con, hàm F càng phức tạ thì độ an toàn càng cao. 21
  28. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2.2.2 DES Mật mã tiêu chuẩn DES (Data Encry tion Standard) được đưa ra năm 1977 bởi cục tiêu chuẩn quốc gia, giờ là Viện tiêu chuẩn và kĩ thuật quốc gia (NIST) Hoa ỳ. Thuật toán của mật mã này được gọi là DEA (Data Encry tion Algorithm). V i DEA, dữ liệu được mật mã hóa theo khối 64 bit s dụng khóa 56 bit. Thuật toán này biến đổi 64 bit đầu vào trong một chuỗi các bư c thành 64 bit đầu ra. DES ngày càng trở thành thuật toán mật mã đối xứng hổ biến, đặc biệt trong các ứng dụng tài chính. 2.2.2.1 Cấu trúc DES Mật mã DES có các đặc điểm sau: Là mã thuộc mã Feistel có 16 vòng, ngoài ra DES có thêm một hoán vị khởi tạo trư c khi bắt đầu vòng 1 và một hoán vị kết thúc sau vòng 16. ích thư c khối là 64 bit. ích thư c khóa là 56 bit Mỗi vòng của DES dùng khóa con có kích thư c 48 bít được trích ra từ khóa chính. Cấu trúc mật mã hóa của mã DES được mô tả như hình 2.7. Như ch ra ở n a hình bên trái của hình 2.7, quá trình x lý bản rõ diễn ra trong ba giai đoạn. Đầu tiên, bản rõ 64 bit được chuyển t i khối hoán vị khởi tạo để sắ xế lại các bit và cho ra chuỗi bit đã được hoán vị. Tiế theo đó là 16 vòng mật mã Feistel. Đầu ra của vòng cuối cùng (vòng 16) gồm 64 bit là một hàm của bản rõ đầu vào và khóa . Sau đó, n a trái và n a hải của 64 bit này sẽ được tráo đổi cho nhau. Cuối cùng, các bit đã được tráo đổi đó được đưa qua bộ hoán vị kết thúc, đ y là một hàm hoán vị nghịch đảo của hoán vị khởi tạo, và cho ra 64 bit bản mã. hần bên hải của hình 2.7 mô tả cách thức khóa 56 bit được s dụng. Ban đầu, khóa 64 bit được chuyển qua bộ hoán vị khóa. Sau đó, đối v i mỗi 16 vòng, khóa con i được tạo ra bằng cách kết hợ dịch vòng trái và hoán vị. Hàm hoán vị là giống nhau ở mỗi vòng, nhưng khóa con khác nhau được tạo ra bởi các dịch vòng trái được lặ lại ở các bit khóa. 22
  29. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.7: Thuật toán mật mã DES 2.2.2.2 Hoán vị khởi tạo và hoán vị kết thúc Giả s bản rõ 64 bit được đánh số từ trái qua hải là 0, 1, 2, , 63 hay bb0 1b 2 b 63 , khi đó hoán vị khởi tạo sẽ hoán đổi các bit theo quy tắc sau: 23
  30. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hoán vị kết thúc hoán đổi các bit theo quy tắc sau: Đối v i các kiểu tấn công biết bản rõ hay bản rõ được lựa chọn, hoán vị khởi tạo và hoán vị kết thúc không có ý nghĩa bảo mật, sự tồn tại của hai hoán vị trên được cho là do yếu tố lịch s để lại. 2.2.2.3 Các vòng mật mã của DES Hình 2.8 dư i đ y minh họa một vòng Feistel của DES. Trong đó, hàm F được mô tả như sau: F( Ri 11 , K i ) P box ( S boxes ( Expand ( R i )  K i )) Hình 2.8: Cấu trúc một vòng mật mã DES 24
  31. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Trong đó, hàm Expand() Ri 1 mở rộng Ri 1 từ 32 bit thành 48 bit. Ngược lại, hàm S boxes nén 48 bit thành 32 b . Hàm P box thực hiện hoán vị 32 bit. Cụ thể, hoạt động của các hàm này như sau: Hàm : đánh số các bit của Ri 1 theo thứ tự từ trái qua phải là 0, 1, 2, , 31. Hàm này sẽ thực hiện vừa hoán vị vừa mở rộng 32 bit thành 48 bit theo quy tắc sau: Hàm S boxes : biến đổi 48 bit thành 32 bit. S-boxes được chia thành 8 hàm S-box con, mỗi hàm biến đổi 6 bit thành 4 bit. Hàm S-box đầu tiên hoạt động như sau: Hàm P-box: thực hiện hoán vị 32 bit đầu vào theo quy tắc: 25
  32. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2.2.2.4 Thuật toán sinh khóa con của DES Đầu tiên, khóa 64 bit được chuyển qua bộ hoán vị và nén thành khóa 56 bít theo quy tắc dư i đ y: Sau đó, khóa 56 bit đó được chia thành hai n a trái L và hải R, mỗi n a có kích thư c 28 bit. Tại vòng thứ i (i=1, , 16), KLi 1 và KRi 1 được dịch vòng trái ri bit để tại ra hai n a KLi và KRi v i được xác định như sau: 1i  1,2,6,16 ri 2i  1,2,6,16 Cuối cùng, khóa Ki của vòng thứ i được tạo ra bằng cách hoán vị và nén 56 bit và thành 48 bit theo quy tắc sau: 2.2.2.5 Hiệu ứng lan truyền Một tính chất quan trọng cần thiết của mọi thuật toán mã hóa là ch cần một thay đổi nhỏ trong bản rõ hay trong khóa sẽ dẫn đến thay đổi l n trong bản mã. Cụ thể, ch cần thay đổi một bít trong bản rõ hay khóa thì dẫn đến sự thay đổi của nhiều bít bản mã. Tính chất này được gọi là hiệu ứng lan truyền. Nhờ có tính chất này mà kẻ há mã không thể 26
  33. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng gi i hạn miền tìm kiếm của bản rõ hay của khóa (dù phá mã theo known-plaintext hay chosen- laintext) nên hải thực hiện kiểu tấn công Brute Force (vét cạn khóa). DES là một hương há mã hóa có hiệu ứng lan truyền này. Để hiểu rõ hiệu ứng lan truyền trong DES, xét hai bản rõ sau: P1: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 P2: 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Hai bản rõ trên được mã hóa bằng DES v i khóa: K: 0000001 1001011 0100100 1100010 0011100 0011000 0011100 0110010 Bảng 2.1a cho biết số bit khác nhau của hai bản mã 1 và 2 qua 16 vòng khác nhau của DES. Số bit khác nhau của hai bản rõ là 1 bit, nhưng đến vòng thứ 2 số bit khác nhau của hai bản mã đã là 21, và đến vòng cuối cùng thì số bit khác nhau là 34 bit. Cũng tương tự như vậy, ta xét bản rõ 64 bit sau: P: 01101000 10000101 00101111 01111010 00010011 01110110 11101011 10100100 Dùng hai khóa có số bit khác nhau là 1 sau đ y để mã hóa bản rõ trên: K1: 1110010 1111011 1101111 0011000 0011101 0000100 0110001 11011100 K2: 0110010 1111011 1101111 0011000 0011101 0000100 0110001 11011100 Bảng 2.1b ch ra số bit khác nhau của các bản mã qua 16 vòng của DES. Như ch ra trong bảng 2.1b, sau 16 vòng, số bit khác nhau của các bản mã do hai khóa khác nhau tạo ra là 35 bit. Bảng 2.4: Ví dụ hiệu ứng lan truyền 27
  34. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2.2.3 Nguyên lí thiết kế mật mã khối Mặc dù đã có rất nhiều nghiên cứu để n ng cao tính an toàn trong việc thiết kế mật mã khối, nhưng các nguyên lý cơ bản vẫn không thay đổi nhiều so v i hoạt động của mã Feistel và DES từ những năm 1970. Trong mục này, ba khía cạnh cốt lõi trong việc thiết kế mật mã khối được trình bày, gồm số vòng tạo mã, thiết kế hàm F, và thuật toán tạo khóa. Số vòng tạo mã: Tính an toàn mật mã của mật mã Feistel xuất hát từ ba khía cạnh của việc thiết kế đó là số vòng tạo mã, hàm F, và thuật toán tạo khóa. Số vòng tạo mã càng l n thì càng g y khó khăn cho kẻ tấn công, thậm chí trong cả trường hợ hàm F tương đối yếu. Nhìn chung, số vòng tạo mã nên được chọn sao cho độ khó tấn công hức tạ hơn kiểu tấn công tìm khóa brute-force. Tiêu chí này vẫn được s dụng trong việc thiết kế DES. Đối v i mật mã DES s dụng 16 vòng mã hóa, tấn công mật mã yêu cầu 255.1 hành động, trong khi kiểu tấn công brute force yêu cầu 255 hành động. Như vậy, nếu DES có 15 hoặc ít hơn 15 vòng tạo mã, số hành động yêu cầu để há mã sẽ nhỏ hơn số hành động yêu cầu há mã theo kiểu brute-force. Tiêu chí này được quan t m rất nhiều bởi vì nó có thể dễ dàng điều ch nh tính an toàn của thuật toán và so sánh v i các thuật toán khác. Thiết kế hàm F Thành hần quan trọng nhất của mật mã khối Feistel là hàm F. Hàm F có chức năng cung cấ sự hỗn loạn trong mật mã Feistel, do đó nó hải là khó có thể khôi hục lại hé thay thế được thực hiện bởi hàm F đó. Một tiêu chí rõ ràng nhất đối v i hàm F đó là tính hi tuyến. Hàm F càng hi tuyến, thì càng g y khó khăn cho kẻ tấn công. Có một số tiêu chí khác được xem xét khi thiết kế hàm F. Trong đó, các thuật toán hải có hiệu ứng lan truyền tốt. Điều này có nghĩa là, khi thay đổi 1 bit đầu vào thì sẽ làm thay đổi nhiều bit ở đầu ra. Tiêu chí lan truyền nghiêm ngặt (SAC) được hát biểu rằng bất kỳ bit đầu ra j nào của S-box sẽ thay đổi v i xác xuất bằng ½ khi bất kỳ một bit đầu vào i nào bị thay đổi v i mọi i và j. Mặc dù SAC ch mô tả v i S-box, tiêu chí tương tự cũng được á dụng v i hàm F. Một tiêu chí khác đó là tiêu chí độc lậ bit (BIC) hát biểu rằng các bit đầu ra j và k sẽ thay đổi một cách độc lậ khi bất kỳ một bit đầu vào i nào bị thay đổi v i mọi i, j, và k. 28
  35. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Thuật toán tạo khóa: V i bất kỳ mật mã khối Feistel nào, một khóa chính sẽ được s dụng để tạo ra một khóa con cho mỗi vòng tạo mã. Thông thường, các khóa con sẽ được lựa chọn để hạn chế tối đa được việc suy diễn ra các khóa con và việc khôi hục khóa chính. Thuật toán tạo khóa nên đảm bảo được hai tiêu chí SAC và BIC. 2.3 Tiêu chuẩn mật mã hóa tiên tiến AES Vào những năm 1990, nhận thấy nguy cơ của mật mã hóa DES là kích thư c khóa ngắn, có thể bị há mã trong tương lai gần, Cục tiêu chuẩn quốc gia Hoa ỳ đã kêu gọi x y dựng một hương há mật mã hóa m i. Cuối cùng một thuật toán có tên là Rijndael được chọn và đổi tên thành Andvanced Encry tion Standard hay AES được công bố bởi NIST, Hoa ỳ vào năm 2001. Giống như DES, mật mã hóa AES là một mật mã khối đối xứng gồm nhiều vòng. hác v i DES, mã hóa AES không hải là một mã hóa Feistel. 2.3.1 Cấu trúc AES Hình 2.9 đưa ra cấu trúc chung của quá trình mật mã hóa AES. ích thư c khối bản rõ được s dụng là 128 bit, hay 16 byte. Độ dài khóa có thể là 16, 24, hoặc 32 byte (128, 192, hoặc 256 bit). Thuật toán được s dụng như là AES-128, AES-192, hay AES-256, hụ thuộc vào độ dài khóa. Đầu vào của các thuật toán mật mã hóa và giải mật mã là khối 128 bit. hối này được sắ xế thành ma trận vuông có kích thư c 4x4 byte, được s a đổi tạo mỗi giai đoạn mật mã hóa hoặc giải mật mã. Sau giai đoạn cuối cùng, đầu ra cũng sẽ là ma trận vuông có kích thư c 4x4 byte. Tương tự như vậy, khóa M byte cũng được sắ xế thành ma trận vuông, sau đó được đưa t i bộ mở rộng khóa để tạo thành mảng các từ khóa. 29
  36. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.9: Cấu trúc AES Hình 2.10 mô tả việc mở rộng khóa 128 bit. Mỗi từ khóa gồm 4 byte, và toàn bộ mảng khóa là 44 từ cho khóa 128 bit. Chú ý rằng thứ tự theo byte trong ma trận được sắ xế theo cột. Ví dụ, bốn byte đầu của đầu vào bản rõ 128 bit nằm ở cột thứ nhất của ma trận, bốn byte tiế theo nằm ở cột thứ 2, Tương tự, bốn byte đầu tiên của khóa được mở rộng, từ khóa, nằm ở cột đầu tiên của ma trận w. 30
  37. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hệ mật mã bao gồm N vòng, trong đó số vòng hụ thuộc vào độ dài khóa: 10 vòng cho khóa 16 byte, 12 vòng cho khóa 24 byte, và 14 vòng cho khóa 32 byte. N-1 vòng đầu bao gồm bốn hàm biến đổi: SubBytes, ShiftRows, MixColumns, và AddRoundKey. Vòng cuối cùng ch bao gồm 3 hé biến đổi, và có một hé biến đổi khởi tạo (AddRound ey) trư c vòng đầu tiên, có thể coi đó là vòng số 0. Mỗi hé biến đổi lấy 1 hoặc nhiều ma trận 4x4 làm đầu vào và tạo ra đầu ra cũng là ma trận 4x4. Như ch ra trong hình 2.9, đầu ra mỗi vòng là một ma trận 4x4, v i đầu ra của vòng cuối cùng sẽ là bản mã. Hình 2.10: hóa và khóa được mở rộng Hàm mở rộng khóa tạo ra N+1 khóa cho các vòng, mỗi khóa là một ma trận 4x4. hóa mỗi vòng là một trong những đầu vào của biến đổi AddRound ey của mỗi vòng. Hình 2.11 đưa ra sơ đồ mật mã AES một cách chi tiết hơn, ch rõ thứ tự các hé biến đổi trong mỗi vòng và ch ra hàm giải mật mã tương ứng. 31
  38. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.11: Sơ đồ mật mã và giải mật mã AES Sơ đồ mật mã gồm 10 vòng, mỗi vòng mật mã AES được thực hiện như trong hình 2.12. Trong mỗi vòng mật mã, một hé hoán vị và ba hé thay thế được s dụng: Substitute bytes: s dụng S-box để thực hiện thay thế các byte của khối đầu vào ShiftRows: đ y là hé hoán vị đơn giản MixColumns: tại khối này phép thay thế khác được s dụng 32
  39. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng AddRoundKey: khối này thực hiện phép XOR của của khối mật mã đầuvào và một phần khóa mở rộng. Các hàm biến đổi này có thể dễ dàng được khôi hục. Đối v i các hàm SubBytes, ShiftRows, và MixColumns, một hàm nghịch đảo được s dụng để giải mật mã. Đối v i hàm AddRoundKey, giải mật mã có thể thực hiện bằng cách thực hiện hé XOR giữa từ mã đó v i chính khóa s dụng, do ABBA  . Hình 2.12: Vòng mật mã AES 2.3.2 Các hàm biến đổi AES 2.3.2.1 Hàm SubBytes Hàm biến đổi này ch đơn giản là hé thay thế, như trong hình 2.13. AES định nghĩa ma trận byte có kích thư c 16x16, được gọi là S-box. S-box chứa toàn bộ 256 giá trị có thể của các byte. Mỗi byte đầu vào của khối S-box được ánh xạ thành một byte m i theo cách sau: 4 bit bên trái của byte đầu vào được xem như là giá trị hàng và 4 bit bên 33
  40. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng hải được xem như là giá trị cột. Các giá trị cột và hàng đó được coi là các ch số cột và hàng trong S-box để lựa chọn giá trị đầu ra 8 bit duy nhất. Ví dụ, giá trị theo mã hexa {95} tương ứng v i hàng 9 và cột 5 của S-box, chứa giá trị {2A}. Như vậy, giá trị {95} được ánh xạ thành giá trị {2A}. Hình 2.13: Hàm SubBytes Ma trận S-box và S-box ngược được ch ra ở hình 2.14 và hình 2.15. 34
  41. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.14: S-box cho mật mã hóa Hình 2.15: S-box cho giải mật mã Dư i đ y là ví dụ của hàm biến đổi SubBytes (hình 2.16). Hình 2.16: Ví dụ về biến đổi của hàm SubBytes 2.3.2.2 Hàm ShiftRows Hàm ShiftRows thực hiện biến đổi dịch vòng các hàng của ma trận đầu vào, như ch ra trong hình 2.17. 35
  42. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.17: Thực hiện dịch hàng của hàm ShiftRows Như ch ra trong hình 2.17, hàng đầu tiên của ma trận đầu vào không bị dịch, trong khi hàng thứ 2, các byte được dịch vòng trái 1 byte. Đối v i hàng thứ 3, dịch vòng trái 2 byte được thực hiện, và v i hàng cuối cùng, dịch vòng trái 3 byte được thực hiện. Dư i đ y là một ví dụ của hàm ShiftRows. Hình 2.18: Ví dụ dịch vòng của hàm ShiftRows Hàm ShiftRows ngược, để thực hiện giải mật mã được gọi là InvShiftRows, thực hiện dịch vòng theo hư ng ngược lại cho mỗi ba hàng cuối. 2.3.2.3 Hàm MixColumns Hàm MixColumns thực hiện biến đổi trộn các cột của ma trận đầu vào, được thực hiện trên mỗi cột một cách riêng biệt, như ch ra trong hình 2.19. Hình 2.19: Hàm MixColumns 36
  43. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Mỗi byte của một cột được ánh xạ thành một giá trị m i là một hàm của bốn byte trong cột đó. hé biến đổi này có thể được định nghĩa bởi hé nh n ma trận sau: Như vậy mỗi cột đầu ra được biến đổi theo cột đầu vào tương ứng như sau: Dư i đ y là ví dụ về hoạt động biến đổi của hàm MixColumns. Hàm biến đổi ngược của hàm MixColumns là hàm InvMixColumns, được định nghĩa bởi hé nh n ma trận dư i đ y: 2.3.2.4 Hàm AddRoundKey Hàm AddRound ey thực hiện hé XOR giữa 128 bit đầu vào và 128 bit khóa của vòng đó, được mô tả trong hình 2.20. Hình 2.20: Hàm AddRoundKey 37
  44. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Dư i đ y là ví dụ hoạt động của hàm AddRound ey. Ma trận đầu tiên là ma trận đầu vào, ma trận tiế theo là ma trận khóa, và ma trận cuối cùng là ma trận đầu ra. Như vậy, mỗi vòng mật mã của mật mã AES được thực hiện như trong hình 2.21 dư i đ y. Hình 2.21: Các đầu vào cho một vòng mật mã của AES 38
  45. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2.3.3 Tạo khóa AES Thuật toán mở rộng khóa AES v i đầu vào gồm 4 từ hay 16 byte (hình 2.11) tạo ra đầu ra gồm một mảng tuyến tính 44 từ (176 byte). Đầu ra của bộ mở rộng khóa đủ để cung cấ khóa cho các vòng mật mã. hóa được đưa ra bốn từ đầu tiên của khóa mở rộng. hần còn lại của khóa mở rộng được điền vào 4 từ tại mỗi thời điểm. Mỗi từ được thêm vào w[i] hụ thuộc vào từ ngay trư c nó, w[i-1],và w[i-4]. Thuật toán tạo khóa mở rộng như sau: KeyExpansion byte key 16 , word w 44 {word temp For i 0; i 4; i w i key 4*, i key 4* i 1, key 4* i 2, key 4* i 3; For i 4; i 44; i {temp w i 1 ; If i mod 4 0 temp SubWord RotWord temp  Rconi /4; w[i] w[i 4]  temp } } Hình 2.21 dư i đ y mô tả thuật toán tạo khóa AES, và hàm hức g. Hàm hức g gồm các hàm con dư i đ y: RotWord: dịch vòng trái một byte. Giả s từ đầu vào có 4 byte là [B0, B1, B2, B3] thì kết quả của RotWord là [B1, B2, B3, B0]. SubWord: thay thế mỗi byte trong từ đầu vào bằng cách tra cứu bảng S-box trong thao tác SubBytes.2 Kết quả của việc thực hiện hai hàm trên sẽ được thực hiện XOR v i hàm Rcon[j]. Hàm Rcon[j] cho mỗi vòng là khác nhau, và được định nghĩa như sau Rcon[j] =(RC[j],0,0,0), v i RC[j] được xác định như bảng dư i đ y: 39
  46. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.22: Thuật toán tạo khóa AES 2.3.4 Thực hiện AES Như đã đề cậ ở trên, việc giải mật mã AES không hoàn toàn giống như quá trình mật mã hóa. Nghĩa là, trình tự các hé biến đổi cho việc giải mật mã khác v i trình tự các hé biến đổi cho việc mật mã hóa, mặc dù các sơ đồ tạo khóa cho quá trình mật mã hóa và giải mật mã là giống nhau. Đ y là một nhược điểm mà do đó hai module hần mềm và hần firmwave riêng biệt cần được yêu cầu cho các ứng dụng mật mã hóa và giải mật mã. Tuy nhiên, có một hiên bản tương đương của thuật toán giải mật mã mà có cấu trúc giống như cấu trúc của thuật toán mật mã hóa. hiên bản tương đương này có trình tự các hé biến đổi như nhau cho cả quá trình mật mã hóa và giải mật mã. Để đạt được điều này, sơ đồ tạo khóa cần có sự thay đổi. 40
  47. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Như ch ra trong hình 2.11, mỗi vòng mật mã hóa có các hàm SubBytes, ShiftRows, MixColumns, AddRoundKey. Mỗi vòng giải mật mã chuẩn có các hàm InvShiftRows, InvSubBytes, AddRoundKey, InvMixColumns. Do đó, hai giai đoạn đầu tiên của vòng giải mật mã cần được thay đổi, và hai giai đoạn sau cũng cần được thay đổi. Thay đổi hàm InvShiftRows và InvSubBytes: hàm InvShiftRows ảnh hưởng đến thứ tự byte trong ma trận nhưng không làm thay đổi nội dung các byte và không hụ thuộc vào nội dung để thực hiện hé biến đổi. Hàm InvSubBytes ảnh hưởng đến nội dung của các byte trong ma trận nhưng không làm thay đổi thứ tự byte và không hụ thuộc vào thứ tự byte để thực hiện hé biến đổi. Do đó, hai hé toán này có thể được thay thế lẫn nhau như sau: InvShiftRows [InvSubBytes(Si)] = InvSubBytes [InvShiftRows(Si)] Thay đổi hàm AddRoundKey, InvMixColumns: các hé biến đổi AddRoundKey, InvMixColumns không làm thay đổi thứ tự các byte trong ma trận. Nếu coi khóa là một chuỗi các từ, thì cả hai hàm AddRoundKey và InvMixColumns hoạt động trên một cột của ma trận tại một thời điểm. Hai hoạt động đó là tuyến tính đối v i đầu vào là cột. Nghĩa là, v i ma trận cho trư c Si và khóa cho trư c wj, thì: InvMixColumns (Si w j ) = [InvMixColumns (S i )] [InvMixColumns (w j )] Ví dụ, giải s cột đầu tiên của ma trận Si có trình tự là (y0, y1, y2, y3) và cột đầu tiên của khóa wj là (k0, k1, k2, k3), ta có: Cột đầu tiên được tính như sau: Từ đó, ta thấy rằng có thể tráo đổi vị trí các hàm AddRoundKey và InvMixColumns, miễn là đầu tiên hải thực hiện hàm InvMixColumns đối v i khóa mỗi vòng. Chú ý rằng, không cần hải thực hiện hàm InvMixColumns v i khóa cho đầu vào của hàm biến đổi AddRoundKey đầu tiên (vòng 0) hay hàm biến đổi AddRoundKey của 41
  48. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng vòng cuối cùng (vòng 10). Bởi vì hai hé biến đổi AddRoundKey này không cần tráo đổi v i hàm InvMixColumns để tạo ta thuật toán giải mật mã tương đương. Hình 2.23 mô tả thuật toán giải mật mã tương tương. Hình 2.23: Mật mã nghịch đảo tương đương Các khía cạnh thực thi: Để thực hiện hiệu quả mật mã hóa AES trên các bộ x lý 8 bit của các card thông minh hiện tại, và trên các bộ x lý 32 bit của các máy tính, một số yêu cầu sau hải được đá ứng. Đối v i bộ x lý 8 bit: AES cần được thực hiện một cách rất hiệu quả trên các bộ x lý 8 bit. Hàm AddRound ey là một hé XOR theo byte. Hàm ShiftRows ch là hé 42
  49. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng dịch byte đơn giản. Hàm SubBytes thực hiện tại mức byte và ch yêu cầu bảng 256 byte. Hàm MixColumns thực hiện nh n ma trận. Đối v i bộ x lý 32 bit: Việc thực hiện được mô tả trong các mục trư c ch s dụng cho các hé tính toán 8 bit. Đối v i bộ x lý 32 bit, việc thực hiện hiệu quả hơn có thể đạt được nếu các hé tính toán được định nghĩa trên các từ 32 bit. hi đó, các hé biến đối có thể được mô tả như sau, trong đó giả thiết ma trận đầu vào gồm các hần t aij, và ma trận khóa gồm các hần t kij, . Từ đó, có thể dùng một hương trình dư i đ y để mô tả toàn bộ các hàm trên. 43
  50. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng hé nh n ma trận trong hương trình trên được xem là sự kết hợ tuyến tính của các vector. Bốn bảng 256 từ (1024 byte) được định nghĩa như sau: Đầu vào mỗi bảng là 1 byte và cho ra một vector cột (một từ 32 bit) là một hàm của S-box. Như vậy, hoạt động của mỗi vòng trên mỗi cột của ma trận đầu vào được xác định như sau: Nhận thấy rằng, việc thực hiện AES ch dựa vào việc tra 4 bảng và thực hiện các 4 hé XOR trên mỗi cột cho mỗi vòng, cộng v i 4 Kbyte để lưu trữ bảng. 2.4 Các ứng dụng của mật mã khối 2.4.1 Mật mã hóa nhiều lần Đối mặt v i nguy cơ tấn công brute-force của mật mã DES, đã có rất nhiều hư ng quan t m trong việc tìm ra hương há thay thế. Một cách tiế cận là thiết kế một thuật toán m i hoàn toàn, AES là một ví dụ. Một cách khác có thể bảo tồn được các đầu tư trư c đó về hần cứng cũng như hần mềm đó là s dụng mật mã hóa nhiều lần v i DES và s dụng nhiều khóa. DES hai lần (Double DES) Dạng đơn giản nhất của mật mã hóa nhiều lần có hai giai đoạn mật mã hóa và s dụng hai khóa như hình 2.24. V i bản rõ và hai khóa mật mã 1 và 2, bản mã C được tạo ra như sau: CEKEKP ( , ( , )) 21 Giải mật mã yêu cầu biết các khóa đó và được thực hiện ngược lại như sau: PDKKC (12 ,D( , )) 44
  51. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Điều này giống như là Double DES dùng một khóa có kích thư c là 112 byte, ch có một hạn chế là tốc độ chậm hơn DES vì hải dùng DES hai lần. Tuy nhiên người ta đã tìm được một hương há tấn công Double DES có tên gọi là gặ -nhau-ở-giữa (meet-in- themiddle). Đ y là một hương há tấn công chosen-plaintext. hương há tấn công này có thể được hiểu như sau. Như ch ra trong hình 2.24 a, XEKP (,) 1 XDKC (,)2 Nếu biết trư c một cặ ( ,C), kẻ tấn công sẽ thực hiện như sau. Đầu tiên mật mã hóa v i 256 giá trị có thể của khóa 1. Lưu các kết quả đó trong 1 bảng. Tiế theo, giải mật mã C s dụng 256 giá trị có thể của khóa 2. V i mỗi kết quả giải mật mã, so sánh v i kết quả trong bảng. Nếu có giá trị nào giống nhau, th lại hai khóa được tìm ra đó v i cặ ( ,C) đã biết m i. Nếu hai khóa đó cho ra bản mã đúng, hai khóa đó được coi là hai khóa đúng. Hình 2.24: Mật mã hóa nhiều lần a. Mật mã hóa hai lần b. Mật mã hóa ba lần 45
  52. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Triple DES Để khắc hục được sự tấn công của Double DES, DES ba lần v i ba khóa khác nhau được lựa chọn. Chiều dài khóa là 168 bít sẽ g y hức tạ hơn nhiều cho việc há mã bằng hương há tấn công gặ -nhau-ở-giữa. Tri le DES được mô tả như hình 2.24b. Bản mã được xác định như sau: CEKDEKP (3 , (K 2 , ( 1 , ))) Trong thực tế người ta ch dùng Tri le DES v i hai khóa 1, 2 mà vẫn đảm bảo độ an toàn cần thiết. hi đó, bản mã và bản rõ được xác định bởi. CEKDEKP (1 , (K 2 , ( 1 , ))) PDKEDKC (1 , (K 2 , ( 1 , ))) 2.4.2 Các chế độ và ứng dụng mật mã khối Mật mã khối được á dụng để mật mã hóa một khối dữ liệu có kích thư c xác định. Để mật mã hóa một bản tin dài, bản tin được chia ra thành nhiều khối và á dụng mật mã khối cho từng khối một. Có nhiều mô hình ứng dụng mật mã khối như ECB, CBC, CTR, OFB và CFB. Chế độ ECB (Electronic Codebook) Trong mô hình ECB, mỗi khối được mật mã hóa một cách riêng rẽ, dùng chung một khóa K. Mô hình mật mã hóa và giải mật mã của ECB được mô tả trong hình 2.25. 46
  53. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.25: Mô hình mật mã hóa và giải mật mã của ECB Đặc điểm nổi bật của mô hình ECB là nếu như bản rõ giống nhau thì bản mã giống nhau. V i mô hình đơn giản của ECB, kẻ tấn công có thể dựa vào một số đặc tính thống kê của dữ liệu để tiến hành há mã. ECB ch thích hợ để mật mã hóa cho các bản tin có kích thư c ngắn, ví dụ như mật mã hóa cho khóa, Do đó, nếu muốn truyền khóa DES hoặc AES một cách an toàn, ECB là một hương há thích hợ để truyền khóa đó. V i các bản tin dài hơn, ECB có thể không an toàn. Chế độ CBC (Cipher Block Chaining) Để khắc hục được nhược điểm an toàn của chế độ ECB, chế độ CBC được đưa ra v i mục đích là tạo ra các khối bản mã khác nhau khi đầu vào là các bản rõ giống nhau. Hình 2.26 mô tả mô hình CBC đó. 47
  54. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.26: Mô hình mật mã hóa và giải mật mã CBC Trong sơ đồ mật mã hóa CBC, đầu vào của mỗi khối mật mã hóa là kết quả của hé XOR giữa bản rõ hiện tại và bản mã trư c đó, s dụng cùng một khóa cho mỗi khối. CEPKi (C,) i i 1 v i i = 1, 2, , N Do đó để mã hóa khối đầu tiên, người ta dùng một khối dữ liệu giả được gọi là vector khởi tạo (initialization vector – IV) và được chọn ngẫu nhiên: C11  E(,) P IV K Quá trình giải mật mã được thực hiện ngược lại. P11  D(,) C K IV PDKi (C i , ) C i 1 v i i = 1, 2, , N Bêm mật mã hóa và bên giải mật mã hải dùng chung vector khởi tạo IV. Vector khởi tạo không cần giữ bí mật nên thường được gắn vào trư c bản mã trư c khi truyền 48
  55. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng bản tin ( IVC12 C CN ). Có thể thấy rằng nội dung của bản mã Ci không ch hụ thuộc vào bản rõ Pi mà còn hụ thuộc vào tất cả các bản rõ đứng trư c và IV. Do đó nếu có hai bản rõ giống nhau thì hai bản mã sẽ không giống nhau (do IV ngẫu nhiên). Điều này khắc hục được hạn chế của mô hình ECB, từ bản mã kẻ tấn công không thể hát hiện ra những đặc tính thống kê của dữ liệu. Ngược lại, đối v i việc giải mật mã, bản rõ i không ch hụ thuộc vào bản mã Ci mà còn hụ thuộc vào bản mã Ci-1 đứng trư c. Do đó nếu xảy lỗi trên đường truyền, ch cần một bít bị hỏng thì dẫn đến không thể giải mật mã được bản mã đó và bản mã tiế theo sau. Chế độ CFB (Cipher Feedback) Đối v i AES, DES, hay bất cứ mật mã khối nòa, việc mật mã hóa được thực hiện trên mỗi khối b bit. Trong trường hợ DES, b= 64 bit và trong AES, b = 128 bit. Tuy nhiên, có thể biến đổi từ mật mã khối thành mật mã dòng, s dụng một trong ba chế độ gồm CFB, OFB và CTR. Mật mã dòng loại bỏ được các bit đệm vào bản tin để được số nguyên các khối. Nó có thể hoạt động theo thời gian thực. Do đó, nếu dòng ký tự đang được truyền đi, mỗi ký tự có thể được mật mã hóa và truyền đi ngay lậ tức nhờ s dụng mật mã dòng hư ng ký tự. Một đặc tính mong muốn của mật mã dòng là bản mã có cùng độ dài v i bản rõ. Do đó, nếu các ký tự 8 bit được truyền đi, mỗi ký tự sẽ được mật mã hóa để tạo ra bản mã 8 bit đầu ra. Nếu nhiều hơn 8 bit được tạo ra, dung lượng truyền dẫn sẽ bị lãng hí. Hình 2.27 mô tả sơ đồ CFB. Giả thiết đơn vị truyền dẫn là s bit, thường s = 8. Trong sơ đồ này, bản rõ được chia thành các đoạn s bit. Trong quá trình mật mã hóa, đầu vào của khối chức năng mật mã hóa là thanh ghi dịch b bit được thiết lậ khởi tạo bởi một vector khởi tạo (IV). S bit bên trái của khối mật mã hóa được thực hiện XOR v i hần bản rõ đầu tiên 1 để tạo ra đoạn bản mã C1 đầu tiên. Nội dung của thanh ghi dịch được dịch trái s bit, và C1 được đặt vào s bit bên hải của thanh ghi dịch.Quá trình tiế tục cho đến khi tất cả các đoạn bản rõ được mật mã hóa. Đối v i quá trình giải mật mã, sơ đồ thực hiện cũng tương tự, ngoại trừ đoạn bản mã nhận được được thực hiện XOR v i đầu ra của khối mật mã hóa để tạo ra đoạn bản rõ. Chú ý rằng, ở đ y khối mật mã hóa được s dụng chứ không hải khối giải mật mã được s dụng. Điều này được giải thích cụ thể như sau. Gọi MSBs () X là s bit có ý nghĩa nhất (các bit bên trái) của X. Ta có, 49
  56. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng C11  P MSB[ E ( K , IV )] Do đó, P11  C MSB[ E ( K , IV )] Hình 2.27: Chế độ CFB Chế độ OFB (Output Feedback) 50
  57. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Chế độ OFB tương tự như CFB. Đầu ra của khối mật mã hóa được đưa ngược lại thành đầu vào để mật mã hóa khối bản rõ tiế theo (hình 2.28). Trong chế độ OFB, đơn vị khối bản rõ và bản mã có kích thư c bất kỳ. Mật mã hóa OFB được mô tả như sau: CPEKj  j(,O) j 1 Trong đó, OEKjj 12 (,O) . Hình 2.28: Chế độ OFB Một ưu điểm của chế độ OFB là các lỗi bit trong quá trình truyền dẫn không bị truyền đi. Ví dụ, nếu lỗi bit xảy ra tại C1, ch có giá trị bản rõ khôi hục 1 bị ảnh hưởng; 51
  58. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng các đoạn bản rõ tiế theo không bị ảnh hưởng. Tuy nhiên, nó có nhược điểm là dễ bị tấn công hơn CFB. Chế độ CTR (counter) Hình 2.29 mô tả sơ đồ khối của CTR. Một Counter có kích thư c bằng kích thư c của khối bản rõ được s dụng. Giá trị của counter hải khác v i mỗi khối bản rõ được mật mã hóa. Cụ thể, counter được khởi tạo tại một giá trị nào đó, sau đó được tăng lên 1 cho các khối tiế theo. Đối v i quá trình mật mã hóa, counter được mật mã hóa và được thực hiện XOR v i bản rõ để tạo ta khối bản mã. Đối v i quá trình giải mật mã, mỗi counter được mật mã hóa được thực hiện XOR v i bản mã để khôi hục khối bản rõ tương ứng. V i các counter lần lượt là T1, T2, , Tn, chế độ CTR được định nghĩa như sau: Đối v i khối bản rõ cuối cùng (có thể ch có u bit), ch u bit có ý nghĩa nhất (bên trái) của khối mật mã cuối cùng được s dụng cho hé XOR cùng khối bản rõ đó. 52
  59. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.29: Chế độ CTR 2.5 Tạo số giả ngẫu nhiên và mật mã dòng 2.5.1 Nguyên lí tạo số giả ngẫu nhiên Số ngẫu nhiên đóng vai trò quan trọng trong việc s dụng mật mã hóa cho các ứng dụng, các giao thức, và các thuật toán an toàn mạng khác nhau như trong các sơ đồ h n hối khóa và nhận thực lẫn nhau, tạo khóa hiên, tạo các khóa cho thuật toán mật mã khóa công khai RSA, hay tạo luồng bit cho mật mã dòng đối xứng. 53
  60. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Có hai tiêu chí được s dụng để đánh giá tính ngẫu nhiên của chuỗi ngẫu nhiên, đó là: Phân phối đồng nhất: phân phối các bit trong chuỗi phải là đồng nhất; nghĩa là tần suất xuất hiện của các bit 0 và 1 phải là như nhau. Độc lập: không chuỗi con nào trong chuỗi ngẫu nhiên đó có thể được suy ra từ các chuỗi con khác. Trong các ứng dụng như nhận thực lẫn nhau, tạo khóa hiên, và mật mã dòng, tính không thể dự đoán trư c được yêu cầu. Yêu cầu này không ch là chuỗi số đó là ngẫu nhiên thống kê mà các thành hần kế tiế trong chuỗi đó còn hải là không dự đoán trư c được. V i các chuỗi ngẫu nhiên “đúng”, mỗi số là độc lậ thống kê v i các số khác trong chuỗi đó và vì vậy là không thể dự đoán trư c được. Mặc dù, các số ngẫu nhiên đúng được s dụng trong một số ứng dụng, chúng có một số hạn chế như tính không hiệu quả. Do vậy, việc s dụng các thuật toán để tạo các chuỗi số ngẫu nhiên là hiệu quả hơn. Các ứng dụng mật mã hóa thường tận dụng các kỹ thuật thuật toán cho việc tạo số ngẫu nhiên. Các thuật toán này là xác định và vì vậy tạo ra các chuỗi số không hải là ngẫu nhiên thống kê. Tuy nhiên, nếu thuật toán tốt, chuỗi số kết quả sẽ qua được nhiều bài kiểm tra về tính ngẫu nhiên. Các số như vậy được gọi là các số giả ngẫu nhiên. Hình 2.30 mô tả bộ tạo số ngẫu nhiên đúng (TRNG) v i hai bộ tạo số giả ngẫu nhiên. TRNG có đầu vào là một nguồn thực sự ngẫu nhiên; nguồn này thường được đề cậ đến là nguồn entro y (entro y source). Nguồn entro y được lấy ra từ môi trường vật lý của máy tính và có thể tính đến cả các mẫu định thời bấm hím, hoạt động của ổ đĩa, sự di chuyển chuột, và các giá trị tức thời của đồng hồ hệ thống. Một nguồn, hoặc sự kết hợ của các nguồn, được coi là đầu vào của thuật toán để tạo ra đầu ra là chuỗi nhị h n ngẫu nhiên. TRNG có thể ch đơn giản là hé biến đổi các nguồn tương tự thành đầu ra nhị h n. Ngược lại, RNG có đầu vào là một giá trị cố định, được gọi là hạt giống (seed), và tạo ra chuỗi bit đầu ra s dụng một thuật toán xác định. Thường thì seed được tạo ra bởi một bộ TRNG. Như ch ra trong hình 2.30, một số kết quả của thuật toán được hản hồi lại như là đầu vào của thuật toán bằng một đường hồi tiế . Chú ý rằng, dòng bit đầu ra được xác định ch bởi một hoặc nhiều giá trị đầu vào, do đó kẻ tấn công mà biết thuật toán và seed thì có thể tạo lại toàn bộ dòng bit. Hình 2.30 đưa ra hai bộ tạo chuỗi giả ngẫu nhiên khác nhau: 54
  61. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Bộ tạo số giả ngẫu nhiên: thuật toán được s dụng để tạo ra chuỗi bit kết thúc mở được gọi là PRNG. Ứng dụng phổ biến cho chuỗi bit này là đầu vào của mật mã dòng đối xứng. Hàm giả ngẫu nhiên ( RF): RF được s dụng để tạo ra chuỗi bit giả ngẫu nhiên có độ dài cố định. RF cũng có đầu vào là seed và một thông tin khác như là ID người s dụng hay ID ứng dụng. Hình 2.30: Nguyên lý tạo số ngẫu nhiên và giả ngẫu nhiên 2.5.2 Bộ tạo số giả ngẫu nhiên Trong hần này, hai kiểu thuật toán cho bộ RNG được trình bày. Các bộ tạo đồng dạng tuyến tính (Linear Congruential) ỹ thuật được s dụng rộng rãi cho việc tạo số giả ngẫu nhiên là thuật toán đồng dạng. Thuật toán này có 4 tham số như sau: Chuỗi số ngẫu nhiên {Xn} được tính như sau: Xnn 1 ( aX c )mod m Nếu m, a, c, và X0 là số nguyên, kĩ thuật này sẽ tạo ra chuỗi số nguyên v i mỗi số nguyên nằm trong dải 0 Xmn . 55
  62. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Việc lựa chọn các giá trị cho a, c, và m là vấn đề then chốt trong việc hát triển một bộ tạo số ngẫu nhiên tốt. Ví dụ, v i a = c = 1. Chuỗi được tạo ra rõ ràng là không thỏa mãn. V i các giá trị a 7, c = 0, m = 32, và X0 = 1. Bộ tạo ngẫu nhiên tạo ra chuỗi {7, 17, 23, 1, 7, }, chuỗi này cũng không thỏa mãn. Trong số 32 giá trị có thể, ch bốn giá trị được s dụng; do đó, chuỗi đó được coi là có chu kỳ là 4. Nếu thay a bằng 5, thì chuỗi m i là {5, 25, 29, 17, 21, 9, 13, 1, 5, }, khi đó chu kỳ tăng lên thành 8. Nếu m là một số rất l n, có khả năng tạo ra một chuỗi dài các số ngẫu nhiên khác nhau. Tiêu chí chung đó là m gần v i số nguyên không m l n nhất có thể đối v i mỗi máy tính xác định trư c. Do đó, giá trị của m gần hoặc bằng 231 sẽ được lựa chọn. Có ba tiêu chí được s dụng để đánh giá bộ tạo số ngẫu nhiên như sau: Hàm tạo sẽ là hàm tạo toàn chu kỳ. Nghĩa là, hàm tạo sẽ tạo ra tất cả các số từ 0 đến m-1 trư c khi lặp lại. Chuỗi được tạo ra phải là ngẫu nhiên Hàm sẽ thực hiện một cách hiệu quả v i số 32 bit. V i các giá trị thích hợ của a, c, và m, chuỗi số tạo ra có thể đá ứng được ba tiêu chí đánh giá trên. V i tiêu chí đánh giá đầu tiên, nếu m là số nguyên tố và c = 0, thì đối v i giá trị nào đó của a, chu kỳ của hàm tạo số ngẫu nhiên sẽ là m-1. Đối v i số 32 b , giá trị nguyên tố của m là 231-1. Do đó, hàm tạo số ngẫu nhiên trở thành: 31 Xnn 1 ( aX )mod 2 1 Độ mạnh của thuật toán đồng dạng tuyến tính hụ thuộc vào số nh n a và m được lựa chọn. Tuy nhiên, không có sự ngẫu nhiên nào trong thuật toán, ngoại trừ việc lựa chọn giá trị khởi tạo X0. hi giá trị đó được lựa chọn, các số còn lại là chuỗi theo sau được xác định. Điều này là lợi thế cho các kẻ tấn công. Nếu kẻ tấn công biết rằng thuật toán đồng dạng tuyến tính được s dụng và nếu các tham số đã biết (ví dụ a = 75, c = 0, m = 231-1), thì khi một số được hát hiện ra, tất cả các số tiế theo sẽ biết được, ch cần biết một hần nhỏ của chuỗi số là đủ để xác định các tham số của thuật toán. Giả s rằng kẻ tấn công có khả năng xác định các giá trị X0, X1, X2, và X3, thì X10 ( aX c )mod m X21 ( aX c )mod m X32 ( aX c )mod m 56
  63. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Từ các hương trình này, các giá trị của a, c, và m có thể tìm được. Do đó, mục tiêu của bộ RNG là làm sao để hần chuỗi mà kẻ tấn công có thể khám há ra là không đủ để xác định các thành hần tiế theo của chuỗi. Mục tiêu đó có thể đạt được bằng một số cách, ví dụ như s dụng đồng hồ hệ thống nội để thay đổi dòng số ngẫu nhiên. Một cách s dụng đồng hồ là khởi tạo lại chuỗi đó sau mỗi N số s dụng giá trị đồng hồ hiện tại (mod m) làm seed m i. Cách khác đơn giản hơn là thêm giá trị đồng hồ hiện tại vào mỗi số ngẫu nhiên (mod m). Bộ tạo BBS (Blum Blum Shub) Một hương há hổ biến để tạo các số giả ngẫu nhiên an toàn được biết như là bộ tạo BBS (hình 2.31). Hoạt động của bộ tạo BBS như sau. Đầu tiên, lựa chọn hai số nguyên tố l n, và q. Hai số đó khi chia cho 4 đều có số dư là 3, nghĩa là pq(mod4) (mod4) 3 Ví dụ, các số nguyên tố 7 và 11 đều thỏa mãn điều kiện trên. Đặt n p q . Hình 2.31: Sơ đồ khối bộ tạo BBS Tiế theo, chọn số ngẫu nhiên s, sao cho cả và q đều không hải là thừa số của s. Sau đó, bộ tạo BBS tạo ra chuỗi bit Bi theo thuật toán sau: 57
  64. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng 2 X0 smod n for i 1 to 2 Xii X 1 mod n BXii mod 2 Do đó, bit có ý nghĩa thấ nhất được lấy ra tại mỗi vòng lặ . Bảng sau ch ra ví dụ hoạt động của bộ tạo BBS v i n 192649 383 503và seed s 101355. Bảng 2.5: ví dụ hoạt động của bộ tạo BBS BBS còn được gọi là bộ tạo bit giả ngẫu nhiên an toàn bảo mật (CS RBG). Tính an toàn của BBS hụ thuộc vào hai thừa số nguyên tố và q của n. 2.5.3 Mật mã dòng Mật mã dòng thực hiện mật mã bản rõ theo từng byte tại một thời điểm, mặc dù mật mã dòng có thể được thiết kế để hoạt động trên từng bit tại một thời điểm hoặc trên đơn vị l n hơn 1 byte tại một thời điểm. Hình 2.32 đưa ra sơ đồ cấu trúc của mật mã dòng. Trong cấu trúc này, khóa là đầu vào của bộ tạo bit giả ngẫu nhiên. Bộ tạo bit giả ngẫu nhiên này tạo ra dòng số 8 bit ngẫu nhiên. Đầu ra của bộ tạo, được gọi là dòng khóa, được kết hợ một byte tại một thời điểm v i dòng bản rõ s dụng hé XOR. Ví dụ, nếu byte tiế theo được tạo ra bởi bộ tạo này là 01101100 và byte bản rõ tiế theo là 11001100, thì byte bản mã sẽ là: Giải mật mã yêu cầu s dụng cùng chuỗi giả ngẫu nhiên: 58
  65. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.32: Sơ đồ mật mã dòng Như vậy, có thể thấy mật mã dòng tương tự như mật mã hóa One-Time ad. Điểm quan trọng nhất của các mật mã dòng là bộ tạo số ngẫu nhiên. Nếu chọn khóa có chiều dài ngắn thì không bảo đảm an toàn, còn nếu chọn khóa có chiều dài bằng chiều dài bản tin như One-Time ad thì lại không thực tế. Bộ tạo số của mật mã dòng c n bằng giữa hai điểm này, cho hé dùng một khóa ngắn nhưng dãy số tạo ra bảo đảm một độ ngẫu nhiên cần thiết như khóa của One-time ad, dùng rằng không hoàn toàn thực sự ngẫu nhiên. hần tiế theo trình bày hương há mật mã hóa dòng tiêu biểu là RC4. 2.5.4 RC4 RC4 là một hương há mật mã dòng được thiết kế vào năm 1987 bởi Ron Rivest cho RSA. Nó là một mật mã dòng có kích thư c khóa thay đổi v i các hoạt động hư ng byte. Thuật toán được dựa trên việc s dụng hé hoán vị ngẫu nhiên. RC4 được dùng trong giao thức SSL để bảo mật dữ liệu trong quá trình truyền dữ liệu giữa Web Server và trình duyệt Web. Ngoài ra RC4 còn được s dụng trong giao thức mã hóa WEP và giao thức W A (Wifi rotected Access) của mạng Wireless LAN. Thuật toán RC4 là khá đơn giản. hóa có độ dài thay đổi từ 1 t i 128 byte (8 đến 2048 bit) được s dụng để khởi tạo vector S gồm 256 byte, v i các hần t là S[0], S[1], , S[255]. Tại tất cả các thời điểm S gồm một hoán vị của tất cả các số 8 bit từ 0 59
  66. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng đến 255. Đối v i quá trình mật mã hóa và giải mật mã, byte k (hình 2.32) được tạo ra từ S bằng cách lựa chọn một trong 255 hần t theo một cách có hệ thống. hi mỗi giá trị của k được tạo ra, các hần t trong S lại được hoán vị một lần nữa. Khởi tạo S Để bắt đầu, các hần t của S được thiết lậ v i các giá trị từ 0 đến 255 theo tứ tự tăng dần; nghĩa là S[0]=0, S[1]=1, , S[255]=255. Một vector tạm thời T cũng được tạo ra. Nếu độ dài khóa là 256 byte, thì được chuyển t i T. Nếu không, đối v i khóa có độ dài keylen byte, keylen hần t đầu tiên của T được sao ché từ , và sau đó được lặ lại nhiều lần để điền đầy vào T. Hoạt động đó có thể tóm tắt như sau: for i 0 to 255 do S[]; i i T[ i ] K [ i mod keylen ]; Tiế theo, T được s dụng để tạo ra hoán vị đầu tiên của S, cụ thể như sau: j 0; for i 0 to 255 do j j S[i]+T[ i ] mod 256; Sw ap ( S [ i ],S[ j ]); Bởi vì hé toán thực hiện trên S ch là tráo đổi các hần t của S, ảnh hưởng duy nhất là hoán vị. S vẫn chứa tất cả các số từ 0 đến 255. Tạo dòng hi vector S đã được khởi tạo, khóa đầu vào không còn được s dụng nữa. Việc tạo dòng được thực hiện như sau: ij, 0; while ( true ) ii ( 1) mod 256; j (j S [ i ]) mod 256; Sw ap ( S [ i ],S[ j ]); t (S[i ] S [ j ]) mod 256; k S[ t ]; Để mật mã hóa, thực hiện hé XOR giá trị k v i byte tiế theo của bản rõ. Để giải mật mã, thực hiện XOR giá trị k v i byte tiế theo của bản mã. Hình 2.33 minh họa hoạt động của RC4. 60
  67. An ninh mạng viễn thông Chương 2: Mật mã khóa đối xứng Hình 2.33: RC4 Quá trình tạo số của RC4 cũng tạo ra dãy số ngẫu nhiên, khó đoán trư c, vì vậy RC4 đạt được mức độ an toàn cao hơn mật mã hóa One-Time Pad. Mật mã hóa RC4 hoàn toàn được thực hiện trên các số nguyên một byte do đó tối ưu cho việc thiết lậ bằng hần mềm và tốc độ thực hiện nhanh hơn so v i mật mã khối. 61
  68. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Chương 3: Mật mã khóa bất đối xứng 3.1. Mật mã khóa công khai và RSA 3.1.1 Nguyên lí hệ thống mật mã khóa công khai hái niệm về mật mã khóa công khai hát triển từ một nỗ lực tấn công hai trong những vấn đề khó khăn của mã hóa đối xứng. Vấn đề đầu tiên là h n hối khóa và vấn đề thứ hai là chữ ký số. Vấn đề h n hối khóa trong hệ mật đối xứng yêu cầu hoặc (1) hai thành viên cùng chia sẻ khóa và cách nào để h n hối cho chúng, hoặc (2) s dụng một trung t m h n hối khóa. Whitfield Diffie, người hát hiện ra mã hóa khóa công khai (cùng v i Martin Hellman, Đại học Stanford), lý luận rằng yêu cầu thứ hai này hủ nhận bản chất của mật mã: khả năng duy trì bí mật tổng thể sẽ x m hạm thông tin riêng tư. Vấn đề thứ hai không liên quan vấn đề đầu tiên, là chữ ký kỹ thuật số. Nếu việc s dụng mật mã đã trở nên hổ biến, không ch trong những tình huống qu n sự mà còn trong thương mại và mục đích cá nh n, thì tin nhắn điện t và các văn bản sẽ cần xác nhận tương đương v i chữ ký được s dụng trong các tài liệu giấy. 3.1.1.1 ệ ậ Giải thuật bất đối xứng dựa trên cơ chế s dụng một khóa để mã hóa và một khóa khác (có liên quan t i khóa mã) để giải mã. Các giải thuật này có đặc điểm quan trọng sau đ y. Nó là tính toán khả thi để xác định một khóa giải mã duy nhất thông hiểu về thuật toán mã hóa và khóa mã hóa. Thêm vào đó, đối v i một số thuật toán như RSA còn bổ sung một số đặc tính sau: Một trong hai khoá có liên quan có thể được s dụng để mã hóa, và cái còn lại để giải mã. Một lưu đồ mã hóa khóa công khai có sáu thành hần (hình 3.1a); laintext (bản rõ): Đ y là bản tin hoặc dữ liệu có thể đọc được và là đầu vào của thuật toán. Thuật toán mã hóa: Các thuật toán mã hóa thực hiện các biến đổi khác nhau trên bản rõ. 62
  69. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng hóa công cộng và khóa riêng: Đ y là một cặ chìa khóa đã được chọn để nếu một khóa được s dụng để mã hóa, thì khóa kia được s dụng để giải mã. Các hé chuyển đổi chính xác được thực hiện bởi các thuật toán hụ thuộc vào khóa công khai hoặc riêng mà được coi là các đầu vào. Hình 3. 1: Hệ mật khóa công khai Bản mã: Đ y là bản tin được tạo ra tại đầu ra thuật toán, nó hụ thuộc vào bản rõ và khóa. Đối v i một bản tin, hai khóa khác nhau sẽ tạo ra hai bản mã khác nhau. 63
  70. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Thuật toán giải mã: Thuật toán này chấ nhận các bản mã và khóa hù hợ để các bản rõ ban đầu. Một số bư c cơ bản có thể gồm: Mỗi người s dụng tạo ra một cặ khóa được s dụng để mã hóa và giải mã các bản tin. Mỗi người s dụng đặt một trong hai khóa làm khóa công cộng và khóa kia bí mật. Như hình 3.1a, mỗi người dùng duy trì một tậ của các khóa công cộng thu được từ những người khác. Nếu Bob muốn g i một bản tin bí mật cho Alice, Bob mã hóa bản tin bằng khóa công khai của Alice. hi Alice nhận được bản tin, cô giải mã bằng khóa riêng của mình. hông người nhận nào khác có thể giải mã bản tin bởi vì ch có Alice biết khóa riêng của Alice. V i tiế cận này, tất cả những thành viên tham gia đều có quyền truy cậ vào các khóa công khai và khóa riêng được tạo cục bộ của từng người tham gia và không cần cơ chế h n hối. Chừng nào khóa riêng của người dùng được bảo vệ và bí mật, thì truyền thông đến là an toàn. Tại bất kỳ thời điểm nào, một hệ thống có thể thay đổi khóa riêng của nó và tạo ra khóa công khai m i để thay thế khóa công khai cũ của nó. Bảng 9.2 tóm tắt một số khía cạnh quan trọng của mã khóa đối xứng và khóa công khai. Để h n biệt, chúng tôi tham khảo các khóa được s dụng trong mã hóa đối xứng như một khóa bí mật. Hai khóa được s dụng để mã hóa bất đối xứng được gọi là khóa công khai và khóa riêng. Tất nhiên là khóa riêng được giữ bí mật, nhưng nó được gọi là khóa riêng chứ không hải là một khóa bí mật để tránh nhầm lẫn v i mã hóa đối xứng. Chúng ta hãy xem xét kỹ hơn các yếu tố thiết yếu của một lưu đồ mã hóa khóa công khai trên hình 3.2. đ y có một số nguồn A tạo ra một bản tin rõ, X = [X1, X2, , XM]. M hần t của X là các chữ cái trong bảng chữ cái. Bản tin này được g i đến cho các điểm đến B. B tạo ra một cặ quan hệ của các khóa: một khóa công khai b và một khóa riêng Rb. hóa b được công khai truy nhậ bởi A. V i bản tin X và mã hóa bởi khóa b, A tạo các bản mã Y = [Y1, Y2, , YN]: Y = E (PUb, X) Bên hía nhận có khóa riêng hù hợ , thực hiện biến đổi ngược: 64
  71. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng X = D (PRb, Y) Bảng 3.1: Mã khóa công khai và truyền thống Mã hóa truyền thống Mã hóa công khai Yêu cầu hoạt động Yêu cầu hoạt động - Cùng thuật toán và cùng khóa để mã hóa - Một thuật toán và một khóa để mã hóa và giải mã và một thuật toán khác và một khóa - Bên g i và bên nhận hải chia sẻ thuật khác để giải mã toán và khóa - Bên g i và bên nhận hải giữ một khóa Yêu cầu bảo mật riêng - hóa hải giữ bí mật Yêu cầu bảo mật - hải bất khả thi trong việc giải mã nếu - Một trong hai khóa hải giữ bí mật không có khóa bí mật - hải bất khả thi trong việc giải mã nếu - Hiểu biết về thuật toán và các mẫu của không có khóa bí mật bản mã không đủ để xác định khóa - Hiểu biết về thuật toán và các mẫu của bản mã không đủ để xác định khóa Hình 3. 2: Bảo mật của hệ mật khóa công khai Một kẻ tấn công quan sát Y và có quyền truy cậ vào b, nhưng không có quyền truy cậ vào Rb hoặc X, hải cố gắng để khôi hục lại X và / hoặc Rb. Giả thiết rằng, 65
  72. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng kẻ tấn công không biết về sự thuật tóan mã hóa (E) vàgiải mã (D). Nếu kẻ tấn công ch quan t m đến bản tin cụ thể, thì sẽ tậ trung vào mục tiêu khôi hục X bằng cách tạo ra một bản rõ ư c tính Xˆ . Thông thường, kẻ tấn công thường hư ng đến các bản tin tương PRˆ lai và hư ng đến sự khôi hục Rb bằng cách tạo ra một ư c tính b . Ta đã biết, một trong hai khoá có liên quan có thể được s dụng để mã hóa, và khóa khác đang được s dụng để giải mã. Điều này cho hé nhiều hơn một lược đồ mã hóa khác nhau thực hiện. Lưu đồ trong hình 3.2 cung cấ bảo mật, và lư đồ trong 3.1 và 3.3 s dụng khóa công khai để cung cấ nhận thực: Y = E (PUa, X) X = D (PUa, Y) Trong trường hợ này, A chuẩn bị một bản tin đến B và mã hóa nó bằng khóa riêng của mình trư c khi truyền nó. B có thể giải mã các bản tin bằng khóa công khai của nó. Bởi vì các bản tin được mã hóa bằng khóa riêng của A, thì ch có duy nhất A tạo ra được bản tin như vậy. Vì thế, toàn bộ tin nhắn được mã hóa hục vụ như một chữ ký kỹ thuật số. Thêm vào đó, không thể thay đổi được bản tin mà không truy cậ vào khóa riêng của A, nên bản tin được xác thực cả về nguồn và về tính toàn vẹn của dữ liệu. Hình 3. 3: Nhận thực của hệ mật khóa công khai Điều quan trọng cần nhấn mạnh là quá trình mã hóa được mô tả trong Hình 3.1b và 3.3 không cung cấ bảo mật. Vì thế, bản tin được g i an toàn khi không có sự thay đổi 66
  73. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng nhưng không hải từ việc nghe trộm. Đ y là rõ ràng trong trường hợ của một chữ ký dựa trên một hần của bản tin, vì hần còn lại của bản tin được truyền rõ ràng. Ngay cả trong trường hợ mã hóa toàn bộ như trong hình 3.3, thì bản tin cũng không bí mật bởi vì bất kỳ người khác nào đều có thể giải mã bản tin bằng cách s dụng khóa công khai của người g i. Tuy nhiên, có thể cung cấ cả chức năng xác thực và bảo mật bằng việc s dụng ké hai lược đồ khóa công khai (hình 9.4): Z = E (PUb, E (PRa, X)) X = D (PUa, D (PRb, Z)) Trong trường hợ này, ta bắt đầu như trư c bằng cách mã hóa một bản tin, s dụng khóa của người g i tin để cung cấ chức năng ký kỹ thuật số. Sau đó, ta mã hóa một lần nữa, bằng cách s dụng khóa công khai của người nhận, bản mã cuối cùng có thể được giải mã ch của người nhận có khóa riêng hù hợ và đảm bảo tính bảo mật. Điểm bất lợi của tiế cận này là độ hức tạ của thuật toán mã khóa công khai, hải thực hiện bốn lần thay vì hai lần trong mỗi hiên truyền thông. Hình 3. 4: Nhận thực và bảo mật của hệ mật khóa công khai 3.1.1.2 ứ ệ ậ Một hệ mật khóa công khai được đặc trưng bởi việc s dụng các thuật toán mã hóa và hai khóa. Tùy thuộc vào ứng dụng, bên g i có thể g i khóa bí mật, khóa riêng hoặc cả hai cho bên nhận và tạo thành các kiểu chức năng của hệ mật. Hệ mật khóa công khai có thể chia thành 3 dạng: 67
  74. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Mã hóa / giải mã: Người g i sẽ mã hóa một bản tin v i người nhận khóa công khai. Chữ ký kỹ thuật số: Người g i ký một tin nhắn v i khóa riêng của họ. ý được thực hiện bởi một thuật toán mãhóa á dụng cho cả bản tin hoặc một hần của bản tin. Trao đổi khóa: Hai bên hợ tác để trao đổi khóa hiên. Một số tiế cận khác nhau được tạo ra liên quan đến các khóa riêng của một hoặc cả hai bên. Một số thuật toán hù hợ cho tất cả ba ứng dụng trên, trong khi các thuật toán khác có thể ch được s dụng cho một hoặc hai trong số các ứng dụng này. Bảng 3.3 ch ra các ứng dụng được hỗ trợ bởi một số thuật toán quen thuộc. Bảng 3.2: Các ứng dụng cho hệ mật khóa công khai Thuật toán Mã hóa Giải mã Chữ k số Trao đổi khóa RSA Yes Yes Yes Đường cong elli tic Yes Yes Yes Diffie-hellman No No Yes DSS No Yes No 3.1.1.3 ầ đối vớ ệ ậ Các hệ thống mật mã minh họa trong hình 3.2 t i 3.4 hụ thuộc vào một thuật toán mã hóa v i hai khóa liên quan. Diffie và Hellman mặc nhiên công nhận hệ thống này mà không cần chứng minh rằng các thuật toán như vậy có tồn tại hay không. Tuy nhiên, họ đã đặt ra các điều kiện cho thuật toán hải được thực hiện gồm: Tính toán dễ dàng cho hía bên B để tạo ra một cặ khóa (công cộng b, khóa riêng PRb). Tính toán dễ dàng cho một người g i A, biết khóa công khai và bản tin được mã hóa, M, để tạo ra các bản mã tương ứng: C = E (PUb, M) Tính toán dễ dàng cho người nhận B để giải mã bản mã bằng cách s dụng khóa riêng để hục hồi bản tin gốc: M = D (PRb, C) = D [PRb, E (PUb, M)] 68
  75. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Tính toán không khả thi đối v i kẻ tấn công khi biết khóa công khai, nhằm xác định khóa riêng. 3.1.2 Giải thuật RSA Thuật toán Rivest-Shamir-Adleman (RSA) là thuật toán mã hóa khóa công khai được các tác giả Ronal Rivest, Adi Shamir và Leonard Adleman hát triển tại Học Viện Công nghệ Masachusetts (MIT) vào năm 1977. Đ y là thuật toán đầu tiên hù hợ v i việc tạo ra chữ ký điện t đồng thời v i việc mã hóa. Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc s dụng khóa công cộng. RSA đang được s dụng hổ biến trong thương mại điện t và được cho là đảm bảo an toàn v i điều kiện độ dài khóa đủ l n. 3.1.2.1 ậ RSA tạo một biểu thức v i các hàm mũ, bản rõ được mã hóa trong các khối, v i mỗi khối có một giá trị nhị h n nhỏ hơn một số n. Vì vậy, các khối kích thư c hải nhỏ ii 1 hơn hoặc bằng log2 (n) + 1; trong thực tế, kích thư c khối là i bit, v i 22 n . Mã hóa và giải mã được thực hiện theo dạng sau (các khối bản rõ M và bản mã C): C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n Cả người g i và người nhận hải biết giá trị của n. Người g i biết giá trị của e, và ch có người nhận biết được giá trị của d. Như vậy, đ y là một thuật toán mã hóa khóa công khai v i một khóa công khai của = {e, n} và một khóa riêng của R = {d, n}. Đối v i thuật toán này, để thỏa mãn cho việc mã hóa khóa công khai, các yêu cầu sau đ y hải được đá ứng. 1. Có thể tìm thấy giá trị của e, d, và n sao cho Med mod n = M cho tất cả giá trị M < n. 2. Nó là tương đối dễ dàng để tính toán Me mod n và Cd mod n cho tất cả các giá trị của M < n. 3. Nó có tính khả thi để xác định d khi biết e và n. Ta cần tìm mối quan hệ Med mod n = M. Các mối quan hệ trư c đó giữ nếu e và d là nh n nghịch đảo theo modulo ()n , v i là hàm Euler. Nó được biểu diễn cho , q 69
  76. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng là các số nguyên tố, (p , q ) ( p 1) ( q 1) . Mối quan hệ giữa e và d có thể được thể hiện như sau: ed mod ()n =1 Điều này tương đương v i ed1mod ( n ) 1 d emod ( n ) Vì vậy, e và d là nh n nghịch đảo của modulo ()n . Lưu ý rằng, theo quy tắc của số học modul, điều này ch đúng nếu d (và do đó e) là nguyên tố cùng nhau v i ()n . Ta tính toán RSA theo các thành hần như sau: - p, q, hai số nguyên tố (riêng, lựa chọn) - n = pq (công cộng, tính toán được) - e, v i gcd( (n ), e ) 1;1 e ( n ) (công khai, lựa chọn) - d e 1 mod ( n ) (riêng, tính toán được ) Các khóa riêng gồm {d, n} và khóa công khai bao gồm {e, n}. Giả s rằng người dùng A đã đưa ra khóa công khai của mình và rằng người dùng B muốn g i bản tin M t i A. Thì B sẽ tính toán C = Me mod n và truyền C. hi nhận được bản mã này, người dùng A giải mã bằng cách tính toán M = Cd mod n. Hình 3. 5: Thuật toán RSA 70
  77. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Hình 3.5 tóm tắt các thuật toán RSA. Nó tương ứng v i hình 3.1a: Alice tạo ra một cặ khóa công khai / riêng; Bob mã hóa bằng khóa công khai của Alice; và Alice giải mã bằng khóa riêng của mình. Một ví dụ được thể hiện trong hình 3.6, các khóa được tạo ra như sau. Chọn hai số nguyên tố, = 17, q = 11. 2. Tính n = pq = 17 * 11 = 187. 3. Tính ()n = (p - 1) (q - 1) = 16 * 10 = 160. 4. Chọn e mà e là số nguyên tố cùng nhau ()n = 160 và nhỏ hơn ()n ; ta chọn e = 7. 5. Xác định d sao cho de 1(mod160) và d < 160. Giá trị đúng là d = 23, vì 23 7 = 161 = (1 160) + 1; d có thể được tính toán bằng cách s dụng thuật toán Euclid mở rộng. Từ đó, thu được khóa công khai = {7, 187} và khóa riêng R = {23, 187}. Các ví dụ cho thấy việc s dụng các khoá cho một đầu vào bản rõ M = 88. Đối v i mã hóa, chúng ta cần hải tính toán C = 887 mod 187. hai thác các tính chất của modul số học, chúng ta có thể làm điều này như sau. 887 mod 187 = [(884 mod 187) * (882 mod 187)* (881 mod 187)] mod 187 881 mod 187 = 88 882 mod 187 = 7744 mod 187 = 77 884 mod 187 = 59.969.536 mod 187 = 132 887 mod 187 = (88 * 77 * 132) mod 187 = 894.432 mod 187 = 11 Để giải mã, ta tính toán M = 1123 mod 187: 1123 mod 187 = [(111 mod 187) * (112 mod 187) * (114 mod 187) * (118 mod 187) * (118 mod 187)] mod 187 111 mod 187 = 11 112 mod 187 = 121 114 mod 187 = 14.641 mod 187 = 55 118 mod 187 = 214.358.881 mod 187 = 33 1123 mod 187 = (11 * 121 * 55 * 33 * 33) mod 187 = 79.720.245 mod 187 = 88 71
  78. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Hình 3. 6: Ví dụ tính toán của thuật toán RSA Ta xem xét một ví dụ, trong đó RSA được s dụng để x lý nhiều khối dữ liệu v i bản rõ là một chuỗi chữ số, mỗi ký hiệu rõ được gán một mã số duy nhất của hai số thậ h n (ví dụ, A=00, A=26). Một khối bản rõ gồm 4 chữ số thậ h n hoặc hai ký tự. Hình 3.7a ch ra dãy các sự kiện cho mã hóa nhiều khối, hình 3.7b đưa ra một ví dụ đặc biệt. Các vòng tròn ch ra số các toán t thực hiện. Hình 3. 7: X lý RSA của đa khối 72
  79. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng (i) Các khía cạnh tính toán Vấn đề độ hức tạ tính toán cần thiết khi s dụng RSA là một vấn đề quan trọng. Trên thực tế, có hai vấn đề cần xem xét: mã hóa / giải mã và tạo khóa. Hàm mũ trong tính toán mudulo: Cả vấn đề mã hóa và giải mã trong RSA đều liên quan từ số nguyên t i lũy thừa số nguyên, mod n. Nếu một hé tinh lũy thừa được thực hiện trên số nguyên rồi giảm theo module n, thì các giá trị trung gian sẽ cực l n. Ví dụ dư i đ y sẽ s dụng đặc tính tinhs toán modulo. [(a mod n) * (b mod n)] mod n = (a * b) mod n Như vậy, chúng ta có thể làm giảm số kết quả trung gian modulo n. Điều này làm cho việc tính toán thực tế hơn. Một khía cạnh khác là hiệu quả của hàm mũ do RSA thường đưa ra các hàm mũ l n. Nếu xem xét việc tính x16 thì tiế cận trực tiế yêu cầu 15 hé nh n. x16 = x * x * x * x * x * x * x * x * x * x * x * x * x * x * x * x Tuy nhiên, chúng ta có thể đạt được kết quả cuối cùng cũng ch có bốn hé nh n nếu chúng ta nhóm các hần tạo thành (x2, x4, x8, x16). Một ví dụ khác, giả s muốn tinh x11 mod n cho một số các số nguyên x và n. Quan sát rằng x11 = x1 + 2 + 8 = (x) (x2) (x8). Trong trường hợ này, chúng ta tính x mod n, x2 mod n, x4 mod n, và x8 mod n và sau đó tính toán [(x mod n) (x2 mod n) (x8 mod n)] mod n. Tổng quát hơn, giả s chúng ta muốn tìm giá trị ab mod n v i a, b, và m nguyên dương. Nếu chúng ta biểu diễn b là một số nhị h n bKbk-1. . . b0, sau đó có b 2i boi Vì vậy, 2i  i ab a bi 0  a(2 ) bi 0 b (2i ) 2i amod n  a mod n a mod n mod n bbii 00 Từ đó có thể s dụng các thuật toán để tính toán ab mod n như thể hiện trong hình 3.8. Bảng 3.4 đưa ra ví dụ cụ thể về việc thực hiện các thuật toán này. Lưu ý rằng biến c ch để dùng cho mục đích giải thích. Giá trị cuối cùng của c là giá trị của số mũ. 73
  80. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Bảng 3.4: ết quả tính toán ab mod n v i a=7, b=560=1000110000 và n=561. Hình 3. 8: Thuật toán để tính ab mod n ạ độ ệ q sử Để tăng tốc độ hoạt động của thuật toán RSA bằng cách s dụng khóa công khai, ta thường lựa chọn e đặc biệt. Lựa chọn e hổ biến là 65537 (216 + 1); hoặc e chọn là 3 và 17. Lựa chọn này ch cần s dụng s dụng hai số (1 bit) nên số lượng các hé nh n cần thiết để thực hiện các lũy thừa được giảm thiểu. Tuy nhiên, v i một khóa công khai rất nhỏ như e = 3, RSA trở nên dễ bị tổn thương v i một cuộc tấn công đơn giản. Giả s ta có ba người dùng RSA khác nhau và tất cả những người s dụng các giá trị e = 3 nhưng có giá trị duy nhất của n, cụ thể là (n1, N2, n3). Nếu người dùng A g i cùng một bản tin M mã hóa cho tất cả ba người dùng, sau đó ba bản mã là C1 = M3 mod n1, là C2 = M3 mod n2, là C3 = M3 mod n3. Có khả năng là n1, n2, n3 và là cặ nguyên tố cùng nhau. Do đó, người ta có thể tính M3 mod (n1n2n3). Theo các quy tắc của thuật toán RSA, M ít hơn mỗi giá trị của ni; do đó M3< n1n2n3. Theo đó, những kẻ tấn công ch cần tính toán căn bậc ba của M3. Ta lưu ý rằng định nghĩa của các thuật toán RSA yêu cầu người s dụng chọn một giá trị của e là nguyên tố cùng nhau v i ()n . Như vậy, nếu một giá trị của e được lựa chọn đầu tiên và các số nguyên tố và q được tạo ra, nó có thể ch ra rằng gcd ( , e) 1. Trong trường hợ đó, người s dụng hải từ chối cặ giá trị , q và tạo ra một cặ m i. ạ độ ệ q sử r 74
  81. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Tương tự ta không thể lựa chọn một hằng số có giá trị nhỏ của d. Gía trị mà nhỏ sẽ dễ bị tấn công cưỡng bức và bị một số kiểu h n tích mật mã khác. Tuy nhiên có một cách để đẩy nhanh tốc độ tính toán s dụng CRT. Ta muốn tính giá trị M Cd mod n . Ta xác định các kết quả trung gian sau: d d Vp Cmod p Vq Cmod q Tiế theo CRT ch ra chất lượng 1 1 Xp q( q mod p ) Xq p( p mod q ) Sau đó CRT biểu diến M=(VpXP + VqXq) mod n Hơn nữa ta có thể đơn giản mà tính V và Vq s dụng lý thuyết Fermat v i p 1 ap1(mod ) nếu và a quan hệ nguyên tố cùng nhau. Và ta có d dmod( p 1) d dmod( q 1) Vp Cmod p C mod p Vq Cmod q C mod q Số lượng d mod ( -1) và d mod (q-1) có thể được tính toán lại. ết quả cuối cùng việc tính toán nhanh hơn xấ x 4 lần so v i tính M=Cd mod n một cách trực tiế . Tạ Trư c khi á dụng hệ thống mật mã khóa công khai RSA, mỗi bên tham gia hải tạo ra một cặ khóa theo các bư c sau: Xác định 2 số nguyên tố và q Lựa chọn hoặc e hoặc d và tính toán cái còn lại. Bởi vì giá trị n= q sẽ bị hát hiện bởi bất kỳ kẻ theo dõi tiềm năng nào nên những số nguyên tố này hải được chọn từ tậ đủ l n tức là và q hải là những số l n. Mặt khác hương há s dụng để tìm các số nguyên hải có hiệu quả hợ lý. Hiện tại không có những kỹ thuật hữu hiệu thu được các số nguyên tố l n một cách tùy ý nên một số cách thức để x trí vấn đề này là cần thiết. Thủ tục sẽ là nhặt ngẫu nhiên một số lẻ nằm trong độ l n mong muốn và kiểm tra xem nó có hải là số nguyên tố không. Nếu không hải nhặt các số ngẫu nhiên khác cho đến khi nó là số nguyên tố. Thủ tục để kiểm tra xem một số nguyên cho trư c n nào đó có hải là số nguyên tố là thực hiện một số tính toán liên quan đến n và một số nguyên ngẫu nhiên a. Nếu n “ không vượt 75
  82. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng qua” hé th thì n không hải là số nguyên tố. Nếu n “vượt qua” hé th thì n có thể là số nguyên tố hoặc là không. Nếu n vượt qua một số lượng hé th các giá trị a khác nhau được lựa chọn ngẫu nhiên thì ta có thể tin chắc n là số nguyên tố. Nhìn chung thủ tục lấy ra một số nguyên tố là: 1. Lấy ngẫu nhiên một số nguyên lẻ (ví dụ s dụng bộ tạo số giả ngẫu nhiên). 2. Lấy ngẫu nhiên một số nguyên a<n. 3. Thực hiện hé th xác suất căn bản v i a là một tham số. Nếu n không vượt qua hé th , loại bỏ n và quay về bư c 1. 4. Nếu n vượt qua đủ số lượng hé th chấ nhận n. Mặt khác chuyển sang bư c 2. Tuy nhiên tiến trình được thực hiện không thường xuyên mà ch khi cần một cặ ( , R) m i. Cũng cần hải lưu ý là sẽ có bao nhiêu số bị loại bỏ trư c khi một số nguyên tố được tìm ra. Lý thuyết số nguyên tố đã ch ra số các số nguyên tố ở gần N trung bình là một trong ln(N) số nguyên. Như vậy ta có thể hải kiểm tra đến ln(N) số nguyên trư c khi tìm ra một số nguyên tố. Vì các số nguyên chẵn sẽ bị loại ngay nên chính xác là sẽ hải kiểm tra ln(N/2) số. Ví dụ, nếu muốn tìm một số nguyên tố ở tầm 2200 thì hải th khoảng 2200/2=70 lần m i tìm ra. Sau khi có được số nguyên tố và q thì tiế theo là lựa chọn giá trị e và tính toán d hoặc ngược lại lựa chọn d và tính toán e. Nếu là trương hợ trư c thì ta cần chọn một số e 1 sao cho gdc ( (ne ), ) 1 và tính toán d e(mod ( n )) . Đ y là một thuật toán đơn nên cùng lúc nó sẽ tính toán ư c số chung l n nhất của 2 số nguyên và nếu gdc là 1 thì xác định nghịch đảo của một số nguyên modulo số còn lại. Như vậy thủ tục là tạo ra một chuỗi số ngẫu nhiên, kiểm tra chúng lần lượt v i ()n cho đến khi một số nguyên tố tương quan v i ()n được tìm ra. (ii) Vấn đề bảo mật của RSA Có 5 khả năng để tấn công thuật toán RSA: Tấn công cưỡng bức: Cố gắng bằng mọi khả năng tìm ra khóa riêng. Tấn công toán học: Nỗ lực tìm ra tích của 2 số nguyên tố. 76
  83. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng Tấn công thời gian: hụ thuộc vào thời gian hoạt động của thuật toán giải mã. Tấn công dựa trên lỗi hần cứng: G y ra các lỗi hần cứng trong bộ x lý tạo ra các chữ ký số. Tấn công vào bản mã: iểu tấn công này khai thác các đặc tính của thuật toán RSA. Việc chống lại tấn công cưỡng bức thì đối v i thuật toán RSA hay các hệ thống mật mã khác đều bằng cách s dụng không gian khóa đủ l n. Tức là số lượng bit trong d càng l n càng tốt. Tuy nhiên việc tính toán trong cả việc tạo khóa và việc mật mã hóa/giải mã đều hức tạ nên kích thư c khóa càng l n thì hệ thống hoạt động càng chậm. Bà ì ừ số đ y là tiế cận tấn công toán học vào RSA 1. Tìm thừa số n từ 2 thừa số nguyên tố của nó. Điều này cho hé tính toán được 1 (n ) ( p 1)( q 1) và từ đó xác định được d e(mod ( n )) . 2. Xác định một cách trực tiế ()n mà không cần xác định và q. Một lần nữa 1 nó cũng cho hé tính được d e(mod ( n )) . 3. Tìm ra d một cách trực tiế mà không cần xác định Tất cả các thảo luận về giải mật mã RSA đều tậ trung vào nhiệm vụ tìm ra n từ 2 thừa số nguyên tố. V i thuật toán đã biết việc xác định v i e và n đã cho ít nhất cũng tiêu tốn thời gian như bài toán h n tích thừa số. Vì vậy chúng ta có thể dùng cách này như một điểm chốt trong tính bảo mật của RSA. Nếu n l n thì việc h n tích ra nó là rất khó khăn. Năm 1977, ba nhà hát minh ra RSA đã thách thức các độc giả của tạ chí khoa học Mỹ giải mật mã một bản mã [GARD77]. Họ sẽ trả 100 SD tiền thưởng cho một c u trong bản rõ mà họ dự đoán rằng việc này hải làm trong 40 nghìn triệu năm. Tháng 4 năm 1994, một nhóm làm việc qua Internet đã nhận giải ch sau 8 tháng làm việc [LE T94]. Thách thức này s dụng kích thư c khóa công khai (độ dài của n) là 129 chữ số thậ h n hoặc khoảng 428 bít. Trong lúc đó ch cần thực hiện đối v i DES, các hòng thí nghiệm RSA đã đưa ra các thách thức cho mật mã RSA v i kích thư c khóa là 100,110,120 Thách thức cuối cùng được giải là RSA-768 v i độ dài khoa là 232 số thậ h n hoặc 768 bit. Bảng 9.5 ch ra kết quả 77
  84. An ninh mạng viễn thông Chương 3: Mật mã khóa bất đối xứng về mặt thời gian. Bộ x lý hàng triệu hé tính/gi y chạy trong 1 năm tức là khoảng 3x1013 hé tính được thực hiện. Cho đến giữa những năm 1990 việc tấn công tìm thừa số được thực hiện v i tiế cận sàng lọc bậc hai. Việc tấn công vào RSA-130 s dụng một thuật toán m i GNFS cho hé tìm được thừa số của số l n hơn RSA-129 mà ch mất 20% nỗ lực tính toán. Bảng 3.3: Tiến trình tìm ra thừa số trong RSA Việc đe dọa vào kích thư c khóa l n đã tăng lên gấ đôi bởi năng lực tính toán của máy tính đang ngày càng tăng và các thuật toán tìm thừa số tiế tục được hoàn ch nh. Như vậy chúng ta cần cẩn thận trong việc lựa chọn kích thư c khóa cho RSA. Ngoài việc xác định kích thư c của n, một số các ràng buộc khác cũng được gợi ý bởi các nhà nghiên cứu. Để tránh một số giá trị của n mà có thể tìm ra một cách dễ dàng các nhà hát minh thuật toán đưa ra các ràng buộc của và q. 1. và q nên khác nhau về độ dài trong vài con số. Như vậy đối v i khóa 1024- bit (309 số thậ h n) cả và q có thể ở độ l n tầm 1075 đến 10100 2. Cả ( -1) và (q-1) đều là số nguyên tố l n. 3. Gcd(p-1, q-1) có thể nhỏ. Thêm nữa cần hải nhấn mạnh rằng nếu e<n và d<n1/4 thì d có thể dễ dàng được xác định. Tấ ờ Tấn công thời gian cũng thể hiện được sự khó khăn để há vỡ tính an toàn của thuật toán mật mã hóa. aul ocher, một chuyên gia mật mã hóa, đã nhấn mạnh rằng một kẻ đi 78