Mã hóa bảo mật trong Wimax

MỤC LỤC CHƯƠNG I : GIỚI THIỆU VỀ WIMAX 12 1.1. Giới thiệu về công nghệ Wimax 12 1.1.1. Một số đặc điểm của Wimax 14 1.1.2. Cấu hình mạng trong Wimax 15 1.1.2.1. Cấu hình điểm-đa điểm 15 1.1.2.2. Cấu hình MESH 16 1.2. Giới thiệu các chuẩn Wimax 17 1.2.1. Một số chuẩn Wimax đầu tiên 18 1.2.1.1. Chuẩn IEEE 802.16d-2004 20 1.2.1.2. Chuẩn IEEE 802.16e-2005 20 1.2.2. Một số chuẩn IEEE 802.16 khác 21 1.3. Lớp con bảo mật trong Wimax 26 1.4. Kết luận 27 CHƯƠNG II : CÁC PHƯƠNG PHÁP MÃ HÓA BẢO MẬT 28 2.1. Giới thiệu về mã hóa bảo mật 28 2.2. Các phương pháp mã hóa bảo mật 28 2.2.1.Mã hóa không dùng khóa 28 2.2.1.1. Hàm mũ rời rạc 28 2.2.1.2. Hàm bình phương module 30 2.2.1.3. Bộ tạo bít ngẫu nhiên 30 2.2.2. Mã hóa khóa bí mật 33 2.2.2.1. Mật mã Ceasar 34 2.2.2.2. Mật mã Affine 35 2.2.2.3. Mật mã thay thế (Substitution cipher) 36 2.2.2.4. Các mã hoán vị (Transposition cipher) 37 2.2.2.5. Mật mã Hill 39 2.2.2.6. Mật mã Vigenere 40 2.2.2.7. One time pad 42 2.2.2.8. Mã RC4 43 2.2.2.9. DES (Data Encryption Standard) 44 2.2.2.10. AES (Advanced Encryption Standard) 46 2.2.3. Mã hóa khóa công khai 46 2.2.3.1. Mã RSA 47 2.2.3.2. Hệ mật Rabin 49 2.2.3.3. Hệ mật ElGamal 50 2.2.3.4. Hệ mật Mekle-Hellman 51 2.2.3.5. Hệ mật Mc Elice 51 2.2.3.6. Mật mã đường cong Elip 51 2.2.3.7. Các hàm băm và tính toàn vẹn của dữ liệu 52 2.2.3.8. MD4 và MD5 55 2.2.3.9. SHA và SHA-1 55 2.3. So sánh – Ứng dụng – Xu hướng phát triển của mã hóa bảo mật 55 2.3.1. So sánh mã hóa khóa bí mật và mã hóa khóa công khai 55 2.3.2. Một số ứng dụng tiêu biểu 57 2.3.3. Xu hướng của mã hóa trong tương lai 60 2.4. Kết luận 64 CHƯƠNG III : MÃ HÓA DỮ LIỆU TRONG WIMAX 65 3.1. Tiêu chuẩn mã hóa dữ liệu DES – Data Encryption Standard 65 3.1.1. Giới thiệu về mã hóa DES 65 3.1.2. Thuật toán mã hóa DES 67 3.1.3. DES trong Wimax 85 3.2. Tiêu chuẩn mã hóa tiên tiến AES – Advanced Encryptiom Standard 90 3.2.1. Giới thiệu về mã hóa AES 90 3.2.2. Thuật toán mã hóa AES 93 3.2.3. AES-CCM trong Wimax 102 3.3. Kết luận 106

doc113 trang | Chia sẻ: banmai | Lượt xem: 1922 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Mã hóa bảo mật trong Wimax, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ết vào trong một khối đơn 32 bit biểu diễn đầu vào của P. Đầu ra (3.7) sau đó là đầu ra của hàm f với các đầu vào R và K. Kết quả thu được sau khi hoán vị được XOR với Lj-1 và chuyển vào Rj. Rj-1 được chuyển vào Lj. Lúc này ta có Lj và Rj mới. Ta tiếp tục tăng j và lặp lại các bước trên cho đến khi j = 17, điều đó có nghĩa là 16 vòng đã được thực hiện và các chìa khoá con k1 – k16 đã được sử dụng. [32] Khi đã có L16 và R16, chúng được ghép lại với nhau theo cách chúng bị tách ra (L16 ở bên trái và R16 ở bên phải) thành 64 bit. Lưu ý trong vòng lặp cuối cùng thì hai phần bên phải và bên trái sẽ không đổi chỗ cho nhau nữa. Thay vì thế các khối ghép R16 || L16 sẽ được sử dụng như là đầu vào của hoán vị cuối cùng của 3.5.[13] Bước 3: Áp dụng hàm hoán vị ngược IP-1 cho đầu ra của bước 2. Nếu đầu ra của bước 2 là (L16,R16) thì c = IP-1 = (R16, L16). Hàm hoán vị ngược được minh hoạ trong bảng 3.5 dưới đây: 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Bảng 3.5. Hoán vị khởi tạo ngược IP-1 của DES . Sơ đồ tạo khoá của DES. Cuối cùng, chúng ta phải giải thích 16 khoá k1, …, k16 {0,1}48 được tạo ra từ khoá DES k {0,1}64 như thế nào. Chúng ta sử dụng 2 hàm được gọi là PC1 và PC2. PC1 ánh xạ một chuỗi 64 bit, cụ thể là khoá k của DES thành 2 chuỗi 28 bit C và D. Cụ thể là : PC1: {0,1}64 à{0,1}28 x {0,1}28. (3.8) Và PC2 ánh xạ 2 chuỗi 28 bit thành 1 chuỗi 48 bit. Cụ thể là: PC2: {0,1}28 x {0,1}28 è {0,1}48 (3.9) Hàm PC1 được minh hoạ trong bảng 3.6. 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Bảng 3.6: Hàm lựa chọn hoán vị 1: PC1 Nửa trên của bảng chỉ ra các bit được lấy từ khoá k để xây dựng C, và nửa dưới của bảng chỉ ra các bit được lấy từ k để xây dựng D. Nếu k = k1k2…k64, thì C=k57k49…k36 và D = k63k55…k4. Lưu ý rằng, 8 bit chẵn lẻ k8, k16, …, k64 không được xét đến và không xuất hiện trong C và trong D. Hàm PC2 được minh hoạ trong bảng 3.7 chuỗi 28 bit là đầu vào của hàm được ghép thành một chuỗi 56 bit. Nếu chuỗi này là b1b2…b56 thì hàm PC2 trả chuỗi này về dạng b14b17…b32. Lưu ý rằng, chỉ 48 bit được xét đến và b9, b18, b22, b25, b35, b38, b43 và b54 bị loại bỏ. 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Bảng 3.7 : Hàm lựa chọn hoán vị 2: PC2. Để tạo ra 16 khoá vòng k1, …, k16 từ khoá k của DES, (C0, D0) trước hết được khởi tạo với PC1(k) theo cấu trúc trước đó đã nói. Với i = 1, 2, …, 16, Ci sau đó được được tạo thành một chuỗi là kết qủa từ một phép dịch vòng trái của Ci-1 đi vi vị trí và Di được tạo thành một chuỗi là kết quả của việc dịch vòng trái Di-1 đi vi vị trí. Chúng ta định nghĩa vi với i = 1, …, 16: Sơ đồ sau dịch vòng trái: Số lần lặp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Số lần dịch vòng trái vi 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Bảng 3.8. Sơ đồ dịch vòng trái (sách FIP) Chẳng hạn, C3 và D3 có được từ C2 và D2 tương ứng bằng 2 lần dịch trái, C16 và D16 có được từ C15 và D15 tương ứng bằng một dịch trái. Trong tất cả các trường hợp, bằng một dịch trái đơn nghĩa là một phép quay các bit đi một vị trí sang bên trái, vì vậy sau một lần dịch trái, các bit trong 28 vị trí là các bit ở các vị trí 2, 3,…, 28, 1 trước đó. [20] Cuối cùng, khoá vòng ki là kết quả của sự ghép nối Ci và Di, và việc áp dụng PC2 để tạo ra kết quả. Cụ thể là ki = PC2(Ci//Di). Do đó, bit đầu tiên của Kn là bit thứ 14 của CnDn, bit thứ 2 của Kn là bit thứ 17 của CnDnvà cứ như vậy, bit thứ 47 của Kn là bit thứ 29 của CDn và bit thứ 48 của Kn là bit thứ 32 của CnDn Sơ đồ tính toán khoá được minh hoạ trong hình 3.5. Hình 3.4. Sơ đồ tính toán khóa. Ví dụ về tính toán khoá: Giả thiết rằng khóa đầu vào 64 bit là K = 581fbc94d3a452ea, có bao gồm cả 8 bit chẵn lẻ. Chỉ tìm ba từ khóa đầu tiên K1, K2, K3: C0 = bcd1a45 D0 = d22e87f Sử dụng hình 3.4, các khối C1 và D1 được tạo ra từ các khối C0 và D0 bằng cách dịch đi 1 bit sang bên trái như sau: C1 = 79a348b D1 = a45d0ff Khóa 48 bit k1 được lấy ra nhờ sử dụng bảng 2.3 (PC 2) bằng cách nhập vào khối ghép ( C1,D1) do vậy k1 = 27a169e58dda. Khối được ghép ( C2, D2) được tính từ khối ( C1,| D1) bằng cách dịch đi 1 bit sang bên trái như dưới đây: ( C2, D2) =f346916 48ba1ff Sử dụng bảng 3.7 (PC 2), khóa 48 bit k2 tại vòng lặp 2 sẽ được tính như sau: k2=da91ddd7b748. Tương tự như vậy ( C3, D3) được tạo ra bằng cách dịch ( C2, D2) sang bên trái 2 bit như sau: ( C3, D3) =cd1a456 22e87fd Sử dụng bảng 3.7 ta có: k3=1dc24bf89768 Hoàn toàn tương tự, tất cả các khóa sau 16 vòng lặp đều có thể tính được và toàn bộ các khóa DES được liệt kê như dưới đây: k1 = 27a169e58dda k2 = da91ddd7b748 k3 = 1dc24bf89768 k4 = 2359ae58fe2e k5 = b829c57c7cb8 k6 = 116e39a9787b k7 = c535b4a7fa32 k8 = d68ec5b50f76 k9 = e80d33d75314 k10 = e5aa2dd123ec k11 = 83b69cf0ba8d k12 = 7c1ef27236bf k13 = f6f0483f39ab k14 = 0ac756267973 k15 = 6c591f67a976 k16 = 4f57a0c6c35b Giải mã hoá DES Hoán vị IP-1 được áp dụng cho khối đầu ra là ngược lại với hoán vị khởi tạo IP được áp dụng cho đầu vào. Hơn nữa, từ (3.2) có: [20] và (3.2) Do đó, để giải mã nó chỉ cần áp dụng thuật toán tương tự vào một khối bản tin đã được mã hoá, chú ý rằng tại mỗi phép lặp của việc tính toán khối giống nhau của các bit khoá K được sử dụng trong suốt việc giải mã như được sử dụng trong suốt việc mã hoá của khối. Việc sử dụng các ký hiệu của mục trước, hoán vị này được biểu diễn bởi phương trình sau: (3.4) Ở đây, R16L16 là khối đầu vào được hoán vị cho việc tính toán giải mã và L0R0 là khối đầu ra trước. Đó là, với việc tính toán giải mã với R16L16 như là đầu vào, k16 được sử dụng trong phép lặp đầu tiên, k15 được sử dụng trong phép lặp thứ 2, và cứ như vậy với K1 được sử dụng cho phép lặp thứ 16. [13] Như vậy: DES là một mật mã Feistel và như vậy thuật toàn mã hoá tương tự như thuật toán mã hoá. Điều này có nghĩa là thuật toán mã hoá cũng được sử dụng cho thuật toán giải mã. Sự khác nhau duy nhất là sơ đồ khoá phải đảo ngược lại, nghĩa là các khóa vòng của DES phải được sử dụng theo thứ tự ngược lại tức là k16…k1 để giải mã văn bản mã hoá nhận [10] nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên Rj-1 sẽ được XOR với k17-j chứ không phải với kj. Ở thời điểm DES ra đời, người ta đã tính toán rằng việc phá được khoá mã DES là rất khó khăn, nó đòi hỏi chi phí hàng chục triệu USD và tiêu tốn khoảng thời gian rất nhiều năm. Cùng với sự phát triển của các loại máy  tính và mạng máy tính có tốc độ tính toán rất cao, khoá mã DES có thể bị phá trong khoảng thời gian ngày càng ngắn với chi phí ngày càng thấp. Dù vậy việc này vẫn vượt xa khả năng của các hacker thông thường và mã hoá DES vẫn tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin... đặc biệt với sự ra đời của thế hệ DES mới-"Triple DES". Sau đây, chúng ta sẽ xét đến các vấn đề về an ninh của DES. [32] Các xem xét về an ninh của DES. Do được công nhận là chuẩn vào những năm 1970, DES là đối tượng của rất nhiều sự nghiên cứu cẩn thận của công chúng. Chẳng hạn, người ta đã tìm ra có 4 khoá yếu và 12 khoá bán yếu. Một khoá DES được gọi là yếu nếu DESk(DESk(m))= m với tất cả , nghĩa là việc mã hoá DES với khoá k là ngược với chính nó. Tức là nếu m được mã hoá 2 lần với một khoá yếu thì kết quả lại là m. Các khoá k1 và k2 của DES được gọi là bán yếu nếu DESk1(DESk2(m)) = m với tất cả m M ={0,1}64, nghĩa là việc mã hoá DES với khoá k1 và k2 là ngược nhau. Do các đặc tính bền của các khoá DES yếu và bán yếu mà chúng không được sử dụng trong thực tế. Vì chỉ có 16 = 24 khoá như vậy nên xác suất tạo ra ngẫu nhiên một khoá như vậy là: Xác suất này không gây rắc rối đặc biệt. Do đó, không cần lo lắng quá nhiều về các khoá yếu và bán yếu trong việc thiết lập một ứng dụng xác định. Từ quan điểm thực tế, vấn đề an ninh và dễ bị tổn thương chính của DES chính là chiều dài khoá (và không gian khoá) tương đối nhỏ của nó. Lưu ý rằng, một khoá DES là một chiều dài 56 bit hiệu quả, và do đó, không gian khoá chỉ bao gồm 256 phần tử. Do đó, việc tìm kiếm thành công một khoá trong trường hợp xấu nhất là sau 256 lần thử nghiệm và trung bình là 256/2 = 255 lần thử nghiệm. Hơn nữa, mã hoá DES có đặc tính sau: (3.10) Đặc tính này có thể được sử dụng trong tấn công văn bản gốc đã biết để thu hẹp không gian khoá 2 lần. Nếu một đối phương biết 2 cặp văn bản gốc – văn bản mã hóa với và với thì anh ta có thể tính toán cho mọi khoá có thể chọn giá trị và kiểm tra giá trị này có phù hợp với hay hay không. Nếu thì là khoá đúng. Thực tế do và . Nếu thì là khóa đúng. Thực tế, do , và . Vì vậy, trong mọi thử nghiệm với khoá có thể chọn k’, đối phương cũng có thể kiểm tra việc thêm vào khoá có thể chọn . Như đã đề cập từ trước, điều này thu hẹp không gian khoá với hệ số 2. Có thể kết luận rằng việc tìm kiếm một toàn bộ khoá thành công sau trung bình 254 thử nghiệm. Tính khả thi của việc tìm kiếm toàn bộ khoá được thảo luận chung vào năm 1977. Lưu ý rằng việc tìm kiếm toàn bộ khoá cần nhiều thời gian nhưng hầu như không cần bộ nhớ. Mặt khác, nếu có nhiều bộ nhớ và sẵn sàng để tính toán trước văn bản mật mã cho bất kỳ bản tin văn bản gốc đã nhận m nào và tất cả các khoá k có thể thì có thể lưu trữ các cặp (c, k) và nhanh chóng tìm ra khoá đúng trong một tấn công văn bản gốc đã biết. Do đó, có nhiều lý do cho việc cân bằng thời gian - bộ nhớ. Trong trường hợp khác, rất nhiều người thảo luận về khả năng thiết kế và xây dựng thực các máy kỹ thuật chuyên dụng để thực hiện việc tìm kiếm một khoá toàn thể cho DES. Năm 1998 khi một máy tìm kiếm dựa trên phần cứng có tên là Deep Crack được xây dựng bởi Hiệp hội chuyên bảo vệ quyền tự do cho người dùng máy tính EFF (Electronic Frontier Foundation). Deep Crack chi 200.000$ để xây dựng và bao gồm 1536 bộ xử lý, mỗi bộ xử lý có khả năng tìm kiếm 60 triệu khoá một giây. Thời gian để thực hiện một tìm kiếm khoá toàn bộ là: Do đó, Deep Crack có thể khôi phục một khoá DES trong xấp xỉ 6516 giây, 109 giờ hay 4.5 ngày. Hơn nữa, cũng có thể giành thời gian rỗi của các hệ thông máy tính mạng để tìm kiếm các khoá DES và chạy một tìm kiếm toàn bộ khoá. Nếu đủ các hệ thống máy tính tham gia vào tìm kiếm thì một khoá DES có thể được tìm kiếm mà không cần xây dựng một máy chuyên dụng như Deep Crack. Ví dụ, vào tháng 1 năm 1999, sự tham gia của dự án mạng phân bố đã phá một khoá DES trong 23 giờ. Hơn 100.000 hệ thống máy tính tham gia, nhận và thực hiện một phần nhỏ công việc. Điều này cho phép có thể kiểm tra các khoá với tốc độ 250 tỷ khoá trong một giây. Rõ ràng là chiều dài khoá tương đối nhỏ và tính khả thi tương ứng của việc tìm kiếm toàn bộ khoá là vấn đề an ninh và dễ bị tổn thương nghiêm trọng nhất của DES. Chỉ có một vài khả năng để bảo vệ mật mã khối với chiều dài khoá nhỏ, như DES, chống lại loại tấn công này. Ví dụ, một người có thể thay đổi thường xuyên khoá, xoá văn bản gốc đã biết hoặc sử dụng một phương pháp tạo khoá phức tạp. Một ý tưởng thú vị để giảm chậm một tấn công tìm kiếm toàn bộ khoá được đưa ra do Rivest và được biết đến với tên “mã hoá tất cả hoặc không gì cả”. Nó tạo ra một chế độ mã hoá cho các mật mã khối mà đảm bảo rằng phải giải mã toàn bộ văn bản mật mã trước khi có thể xác định một khối bản tin văn bản mã hoá. Điều này có nghĩa là một tấn công tìm kiếm toàn bộ khoá tương phản với mã hoá tất cả hoặc không gì cả được làm chậm lại bởi một hệ số bằng với số các khối văn bản mật mã. Phương pháp đơn giản nhất để bảo vệ mật mã khối chống lại việc tìm kiếm toàn bộ khoá là làm việc với các khoá dài phù hợp. Nó không nói rằng các mật mã hiện đại với chiều dài khoá 128 bit và nhiều hơn là bền vững với các tấn công tìm kiếm khoá toàn bộ với công nghệ hiện tại. Trong một tư liệu năm 1996 được viết bởi một nhóm các nhà mật mã học nổi tiếng đã phán đoán rằng các khoá cần có chiều dài ít nhất là 75 bit và chúng dài ít nhất 90 bit nếu dữ liệu phải được bảo vệ thoả đáng trong 20 năm tới (tức là tới tận năm 2016). Lưu ý rằng những con số này chỉ cung cấp một giới hạn thấp cho chiều dài khoá, không có lý do nào cho làm việc với các khoá dài hơn trong vị trí đầu tiên. Trong thực hành, có 3 khả năng để giải quyết vấn đề về chiều dài khoá nhỏ của DES: DES có thể được cải tiến theo cách mà bù chiều dài khoá tương đối nhỏ của nó. DES có thể được lặp lại nhiều lần. Có thể sử dụng một hệ thống mã hoá đối xứng khác với chiều dài khoá lớn hơn. Khả năng đầu tiên dẫn tới một cải tiến DES được gọi là DESX. Khả năng thứ 2 dẫn tới TDEA. Khả năng thứ ba dẫn tới AES. DESX. Để tới gần với một cải tiến của DES mà bù chiều dài khoá tương đối nhỏ của nó, Rivest phát triển và đề xuất một kỹ thuật đơn giản gọi là DESX. DESX phù hợp thực tế vì trước hết nó là hệ thống mã hoá đối xứng đầu tiên được sử dụng bởi hệ thống tệp mã hoá (EFS: Encryption File System) trong hệ điều hành Microsoft Windows 2000. Cấu trúc DESX được minh hoạ trong hình 3.7. Hình 3.5: Cấu trúc DESX. Bổ sung vào khoá k của DES, cấu trúc DESX sử dụng 2 khoá bổ sung 64 bit k1 và k2. Chúng được cộng modulo 2 với bản tin văn bản gốc m trước và sau khi diễn ra mã hoá DES. Do đó, mã hoá DESX của bản tin văn bản gốc m sử dụng các khoá k, k1, k2 có thể được biểu diễn theo công thức dưới đây: (3.11) DESX yêu cầu tổng số 56 + 64 + 64 = 184 bit cho các khoá. Như vậy, nó cải thiện tính bền chống lại việc tìm kiếm toàn bộ khoá . Tuy nhiên, nó không cải thiện độ bền chống lại các tấn công phân tích mật mã khác, như là phân tích mật mã vi phân hay phân tích mật mã tuyến tính (việc bảo vệ tương phản với những tấn công này không là một mục tiêu thiết kế của DESX). TDEA Như đã đề cập từ trước, một khả năng để giải quyết vấn đề chiều dài khoá nhỏ là lặp lại DES nhiều lần. Có 2 điểm để tạo thành khả năng trên: Thứ nhất, việc lặp lại nhiều lần với khóa giống nhau không an toàn hơn nhiều so với một mã hoá đơn. Đó là do một đối phương cũng có thể lặp lại các hàm mã hoá nhiều lần. Ví dụ, nếu DES được lặp lại 2 lần (với khoá giống nhau) thì mỗi bước của việc kiểm tra khoá cũng là 2 lần (vì đối phương phải làm một mã hóa kép). Do đó, việc lặp lại nhiều phải thường xuyên được thực hiện với các khoá khác nhau để cải thiện an ninh. Thứ hai, việc lặp lại nhiều lần chỉ ra rằng các hàm mã hoá DES không đóng với vấn đề ghép chuỗi (tức là chúng không cung cấp một nhóm). Nếu các hàm mã hoá DES cung cấp một nhóm thì chúng sẽ tồn tại một khóa k3 cho tất cả các cặp (k1,k2) của các khoá DES, như . Điều này là đáng tiếc, và việc sử dụng DES lặp lại không cung cấp bất kỳ ưu điểm an ninh nào. Chống lại điều này, khả năng đầu tiên là để lặp DES là mã hoá kép với 2 khoá độc lập nhau. Tuy nhiên, lần đầu tiên nó được Diffie và Hellman chỉ ra rằng mã hoá kép không đặc biệt hữu ích do sự tồn tại của một tấn công “giao nhau ở giữa”. Giả sử một đối phương có một vài cặp văn bản gốc – văn bản mã hoá (mi, ci), trong đó ci được tạo ra từ một mã hoá kép của mi với k1 và k2, và anh ta muốn tìm k1 và k2. Tấn công “giao nhau ở giữa” được minh hoạ trong hình 3.7, nó hoạt động theo 4 bước sau đây: Đối phương tính toán một bảng trước tiên (tức là bảng 1) với 256 phần tử. Mỗi phần tử bao gồm một khoá DES ki có thể chọn và kết quả của việc áp dụng khoá đó để mã hoá bản tin văn bản gốc m1. Bảng 1 được sắp xếp theo thứ tự số bằng các văn bản mật mã kết quả. Do đó, phần tử (ci,ki) trỏ tới văn bản mật mã là kết quả của việc mã hoá m1 với khoá ki với i =1,…, 256. Đối phương tính toán bảng thứ hai (cụ thể là bảng 2) với 256 phần tử. Mỗi phần tử bao gồm một khoá DES có thể chọn kj và kết quả của việc áp dụng khoá đó để giải mã văn bản mã hóa c1. Bảng 2 được sắp xếp theo thứ tự số bằng các văn bản gốc kết quả. Do đó, phần tử (mj, kj) trỏ tới văn bản gốc là kết quả của việc giải mã c1 với kj với j = 1,…,256. Hình 3.6: Tấn công “giao nhau ở giữa” chống lại DES kép. . Đối phương tìm kiếm qua các bảng được sắp xếp để tìm các phần tử phù hợp. Mỗi phần tử phù hợp ci = pj tạo ra ki như một khoá có thể chọn cho k1 và kj như một khoá có thể chọn cho k2 (vì ki mã hóa m1 thành một giá trị mà kj giải mã ra c1). Nếu có nhiều cặp phù hợp (hầu như chắc chắn sẽ xảy ra), đối phương kiểm tra các cặp có thể chọn (k1,k2) chống lại m2 và c2. Nếu nhiều cặp có thể chọn vẫn làm việc với m2 và c2 thì phương pháp kiểm tra tương tự được áp dụng cho m3 và c3. Việc này tiếp tục cho tới khi còn lại một cặp có thể chọn đơn. Lưu ý rằng cặp có thể chọn đúng luôn làm việc trong khi một cặp có thể chọn không đúng hầu như chắc chắn không làm việc được với bất kỳ cặp (mi,ci) riêng biệt nào. Tấn công “ giao nhau ở giữa” không gây rắc rối đặc biệt, vì nó yêu cầu 2 bảng với mỗi bảng có 256 phần tử. Tuy nhiên, sự tồn tại kết hợp của các tấn công là đủ lý do để lặp lại DES 3 lần, và thực hiện triple DES (3DES). Có thể là DES kép là đủ tốt nhưng do triple DES không khó hơn nhiều, nó thường được thực hiện ở vị trí đầu tiên. Như đã đề cập từ trước, FIPS PUB 46 – 3 đã định rõ TDEA và sự xác định này cũng phù hợp với ANSI X9.52. Thuật toán mã hoá dữ liệu bội ba (Triple DES hay 3DES) Một khoá TDEA bao gồm 3 khoá được trỏ tới như một chùm chìa khoá (tức là k= (k1k2k3)) [10]. Thao tác mã hoá TDEA biến đổi một khối đầu vào 64 bit thành một khối đầu ra 64 bit được xác định như sau:[20] (3.12) Do đó, một mã hoá TDEA hay 3DES thường được trỏ tới như EDE (mã hoá-giải mã – mã hoá: encrypt – decrypt - encryp). Lý do mà phép lặp thứ 2 của DES là giải mã (thay thế cho một sự mã hoá) là việc thực một 3DES có thể dễ dàng trở về việc thực hiện DES một khoá đơn bằng việc thực hiện tất cả 3 phép lặp với cùng khoá k. Nếu chúng ta tính , thực tế chúng ta tính .[10] Thao tác giải mã TDEA: việc biến đổi một khối đầu vào 64 bit thành một khối đầu ra 64 bit được xác định như sau:[20] (3.13) FIPS PUB 46 – 3 xác định 3 lựa chọn sau đây cho chùm khoá k = (k1, k2,k3): Lựa chọn khoá 1: k1, k2 và k3 là các khoá độc lập; Lựa chọn khoá 2: k1, k2 là các khoá độc lập và k3 = k1; Lựa chọn khoá 3: Tất cả các khoá bằng nhau (tức là k1 = k2 = k 3 ). Như đã đề cập từ trước, việc thực hiện 3DES biểu diễn việc thực hiện DES một khoá đơn.[10] Việc mã hoá và giải mã TDEA được minh hoạ trong hình dưới đây: Hình 3.7. Sơ đồ mã hoá và giải mã Triple DES.[13] Ứng dụng của thuật toán DES: DES thường được dùng để mã hoá bảo mật các thông tin trong quá trình truyền tin cũng như lưu trữ thông tin. Một ứng dụng quan trọng khác của DES là kiểm tra tính xác thực của mật khẩu truy nhập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn thông…), hay tạo và kiểm tra tính hợp lệ của một mã số bí mật (thẻ internet, thẻ điện thoại di động trả trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ payphone…). Sau đây ta xét ứng dụng của DES trong Wimax. Đó là DES trong chế độ CBC (DES - CBC) [32] 3.1.3. DES trong chế độ CBC Phần này nói về thuật toán DES được sử dụng trong chế độ Cipher Block Chaining (CBC) và được coi là phương pháp đảm bảo an toàn cho việc đóng gói các tải trọng (ESP: Encapsulating Security Payload). ESP đảm bảo tính bí mật cho các datagram IP bằng cách mật mã hóa các dữ liệu tải trọng. [13] Trong IEEE 802.16, sử dụng DES trong chế độ CBC cho bảo mật dữ liệu. DES trong chế độ CBC (chuỗi khối mật mã) sử dụng khoá DES 56 bit (TEK) và CBC – IV (véctơ khởi tạo). Chế độ CBC yêu cầu một vectơ khởi tạo ngẫu nhiên để an toàn hệ thống (RSA, 2004). [31] Việc sử dụng DES trong chế độ CBC, trường tải tin của MAC PDU được mã hoá, nhưng GMH và CRC thì không. Hình 3.9 minh họa quá trình mã hoá. Hình 3.8. Mã hoá DES – CBC. Chế độ CBC yêu cầu một vectơ khởi tạo IV dài 64 bit-trùng chiều dài với kích thước khối. IV phải là một số ngẫu nhiên để ngăn ngừa việc tạo ra các thông tin mã hóa có thể nhận dạng được [13]. IV được tính toán bằng việc thực hiện hàm XOR của tham số IV trong SA và nội dung của trường đồng bộ PHY. CBC IV được tính toán khác nhau cho DL và UL. Trong DL, CBC được khởi tạo với hàm XOR trong của tham số IV có trong thông tin khoá TEK và số khung hiện tại (được căn chỉnh đúng). Trong UL, CBC được khởi tạo với hàm XOR của tham số IV có trong thông tin khoá TEK và số khung của khung mà trong đó UL – MAP cấp sự truyền dẫn đặc thù được truyền dẫn [6]. Quá trình mã hoá DES sử dụng IV và TEK từ SA của kết nối để mã hoá tải của PDU. Tải văn bản mã hoá này sau đó thay thế tải văn bản gốc ban đầu. Bit EC trong GMH sẽ được lập lên 1để chỉ rằng một tải được mã hoá và các bit EKS đã được sử dụng để mã hoá tải. Nếu bao gồm CRC, thì CRC sẽ được cập nhật cho tải văn bản mã hoá mới.[2] Việc mã hoá khối bản tin văn bản nguyên gốc mi, không chỉ phụ thuộc vào mi và khoá k mà còn phụ thuộc vào tất cả các khối bản tin m1, …, mi-1 trước đó cũng như một vectơ khởi tạo IV phải không được giữ bí mật. Hàm mã hoá kết quả theo ngữ cảnh, nghĩa là các khối bản tin văn bản nguyên gốc giống nhau thường được ánh xạ vào các khối văn bản mật mã khác nhau. Đặt m M là một bản tin văn bản nguyên gốc dài một cách tuỳ ý được chia thành t khối n bit m1, m2, …, mt. Nguyên lý làm việc của chế độ CBC được minh hoạ trong hình vẽ 3.10. Hình 3.9. Nguyên lý làm việc của chế độ CBC. Trong bước đầu tiên, c0 được khởi tạo với vectơ khởi tạo (bước này không được minh hoạ trong hình). Với i = 1, 2, …, t, khối bản tin văn bản nguyên gốc mi sau đó được cộng modulo 2 với ci-1 (tức là khối văn bản mã hoá từ vòng trước) và tổng được mã hoá với khoá k để tạo ra khối văn bản mã hoá ci (ở phía trái). Bởi vậy, hàm mã hoá có thể được định nghĩa đệ quy như sau: (3.14) với (3.15) Do sử dụng một IV, văn bản mật mã là một khối dài hơn bản tin văn bản gốc. Do đó, chế độ CBC không bảo toàn độ dài và dẫn tới sự mở rộng bản tin của một khối (tức là, sự mở rộng bản tin thực tế phụ thuộc vào chiều dài khối của hệ thống mã hoá sử dụng). Trong trường hợp khác, các khối văn bản mật mã kết quả ci (i= 0, 1, …, t) được truyền tới thiết bị giải mã và đầu vào một hàng đợi (được sử dụng cho giải mã). Một lần nữa, hàng đợi được khởi tạo với c0 = IV. Để giải mã ci (i = 1, …, t), thiết bị giải mã giải mã ci với khoá k và cộng kết quả với ci-1 theo modulo 2 (ở phía bên phải). Kết quả tạo ra khối bản tin văn bản gốc mi. Do đó, hàm giải mã có thể được định nghĩa đệ quy như sau: với (3.16) Có thể được kiểm tra một cách dễ dàng, hàm đệ quy này tạo ra một khối bản tin văn bản gốc mi đúng: (3.17) Ưu điểm chính của chế độ CBC là nó loại bỏ những nhược điểm đã được đề cập ở trước của chế độ ECB. Đó là: [10] Trong chế độ ECB, các bản tin văn bản gốc giống nhau được ánh xạ vào các khối văn bản mã hoá giống nhau (nếu khoá như nhau). Điều này là bất lợi, vì một văn bản mã hoá nhiều khối có thể khám phá/ bộc lộ ra số liệu thống kê về bản tin văn bản gốc tương ứng, thậm chí nếu không thể giải mã toàn bộ văn bản mã hoá. Thực tế, loại số liệu thống kê này là cái mà phép phân tích mã hoá thường tìm kiếm và là cái mà chúng cố gắng để lợi dụng theo cách này hay cách khác. các khối bản tin văn bản nguyên gốc giống nhau thường được ánh xạ vào các khối văn bản mật mã khác nhau Trong chế độ CBC, các khối bản tin văn bản nguyên gốc giống nhau thường được ánh xạ vào các khối văn bản mật mã khác nhau Chế độ ECB không bảo vệ một chuỗi các khối văn bản mã hóa. Điều này có nghĩa là một đối phương có thể thay đổi một bản tin dài một cách đơn giản bằng cách xoá đi hay sắp xếp lại các khối đơn lẻ trong đó. Nếu một đối phương có các khối văn bản mã hoá được mã hoá với khoá giống nhau thì anh ta cũng có thể chèn chúng vào văn bản mã hoá. Lưu ý rằng, trong các trường hợp này, đối phương cần được có thể giải mã bất kỳ khối văn bản mã hoá nào được sử dụng trong cuộc tấn công. [13] Tuy nhiên, cũng có một vài nhược điểm cần phải nhớ khi sử dụng hệ thống mã hoá bất đối xứng trong chế độ CBC. Thực trạng các khối văn bản mật mã được xâu chuỗi lại cũng nghĩa là các lỗi được truyền lan, và phải xử lý với truyền lan lỗi và các hệ quả của các khối văn bản mật mã được truyền không đúng (nghĩa là các lỗi truyền dẫn). Chẳng hạn, nếu khối văn bản mật mã ci được truyền dẫn với một lỗi thì ci và khối dãy con (nghĩa là ci+1) giải mã không đúng. Tất cả các khối văn bản mã hoá khác (là c1, …, ci-1, ci+2, …, ct) giải mã đúng, trừ khi có các lỗi truyền dẫn khác. Lưu ý rằng thực trạng một khối văn bản mật mã truyền không đúng chỉ ảnh hưởng đến 2 khối đề xuất rằng các phần tử giao tiếp có thể bắt đầu với các IV khác nhau, và sự khác nhau chỉ ảnh hưởng đến khối văn bản mật mã đầu tiên (đặc tính này là quan trọng nếu 2 phần tử không chia sẻ một IV chung). [10] Nếu sử dụng Triple DES với 3 khóa khác nhau thì sẽ có hai chế độ làm việc chính là chế độ bên trong CBC và chế độ bên ngoài CBC như đã minh họa trên 3.10. Chế độ bên trong (inner) CBC: Chế độ này có 3 IV khác nhau: S0 = EK1(P1 Å (IV)1), T0 = EK1(P2 Å S0),R0 = EK1(P3 Å T0) (3.18) S1 = DK2(S0 Å(IV)2), T1 = DK2(T0 Å S1),R1 = DK2(R0 Å T1) (3.19) C1= EK3 (S1 Å(IV)3), C2 = EK3(T1 Å C1),C3 = EK3(R1 Å C2) (3.20) Chế độ bên ngoài (outer) CBC: Chế độ này chỉ yêu cầu 1 IV: C1 = EK3(DK2(EK1(P1 Å IV))) (3.21) C2 = EK3(DK2(EK1(P2 Å C1))) (3.22) C3 = EK3(DK2(EK1(P3 Å C2))) (3.23) Hình 3.11 mô tả hoạt động của Triple DES trong chế độ CBC [13] Hình 3.10. Triple DES trong chế độ CBC . Như vậy: Để cung cấp sự an toàn cho dữ liệu được truyền trong Wimax, chuẩn IEEE 802.16 thực hiện sử dụng DES trong chế độ CBC. Hiện nay, DES được xem như là không an toàn (do những vấn đề về an ninh đã phân tích ở trên) và được thay thế bởi chuẩn mã hoá tiên tiến AES. Do đó, chuẩn IEEE 802.16e xác định việc sử dụng AES trong mã hoá. Phần tiếp theo của chương, nhóm sẽ trình bày về chuẩn mã hoá tiên tiến AES. [2] 3.2. Chuẩn mã hóa tiên tiến AES-Advanced Encryptiom Standard 3.2.1. Giới thiệu về mã hóa AES. Chuẩn mã hóa tiên tiến AES là loại mã giành chiến thắng trong cuộc thi, được tổ chức vào năm 1997 bởi chính phủ US, sau khi chuẩn mã hóa dữ liệu DES được cho là quá yếu do nó có kích thước khóa nhỏ và do sự phát triển của công nghệ về sức mạnh của vi xử lý. 15 ứng cử viên được chấp nhận vào năm 1998, và căn cứ vào những bình luận của cộng đồng, danh sách rút gọn còn 5 ứng cử vào năm 1999. Tháng 10 năm 2000, một thuật toán trong số 5 thuật toán này đã được lựa chọn như là một chuẩn của tương lai, đó là: phiên bản được chỉnh sửa của Rijndael [15]. Thuật toán này được thiết kế để thay thế cho thuật toán DES, do các nhà khoa học người Bỉ là Joan Daemen và Vincent Rijmen phát minh năm 1997. Do vậy nó còn được gọi là thuật toán Rijndael, đây là thuật toán các khối cipher, là đưa n bit của một khối dữ liệu cần mật mã (plaintext) ở đầu vào và chuyển đổi nó thành n bit của một khối dữ liệu đã mật mã hóa (ciphertext) ở đầu ra thông qua việc sử dụng một khóa đối xứng [13]. AES dùng một khối đầu vào thường có độ lớn 128 bit và tạo ra đầu ra tương ứng một khối cùng kích cỡ. Một đặc điểm quan trọng là khóa có thể có kích thước bất kì, phụ thuộc vào mục đích sử dụng, và AES thường sử dụng 3 loại khóa khác nhau đó là 128, 192 và 256 bit, kí hiệu AES-128, AES-192, AES-256 [15]. Một số quy ước kí hiệu: Đầu vào và đầu ra: Mỗi đầu vào và đầu ra đối với thuật toán AES bao gồm một chuỗi 128 bit. Các chuỗi bit này đôi khi còn được gọi là các khối và số bit chúng chứa trong đó dùng để chỉ độ dài của khối. Khóa mã hóa cho thuật toán AES cũng là một chuỗi bit có độ dài 128, 192 hay 256 bit. Các bit trong chuỗi được đánh số bắt đầu từ 0 và kết thúc ở vị trí nhỏ hơn chiều dài chuỗi là 1. Số i được gán cho 1 bit được xem như là chỉ số, và nằm trong dải 0 ≤ i < 128, 0 ≤ i <192, 0 ≤ i <256, tùy thuộc vào chiều dài khối và chiều dài khóa như trên. Bytes : Đơn vị cơ bản của quá trình thực hiện trong AES là byte. Đầu vào, đầu ra và khóa mã hóa được mô tả như là một dãy byte. Đầu vào, đầu ra, khóa được kí hiệu là a, các byte trong dãy kết quả được kí hiệu theo 2 dạng an hoặc a[n], trong đó n là một trong các số trong các dải sau : Block length = 128 bits, 0 ≤ n < 16 , Key length = 128 bits, 0 ≤ n < 16, Key length = 192 bits, 0 ≤ n < 24, Key length = 256 bits, 0 ≤ n < 32 Tất cả các giá trị trong thuật toán AES được biểu diễn như là sự ghép nối của các giá trị bit riêng biệt được sắp xếp {b7, b6, b5, b4, b3, b2, b1, b0}. Các byte như này biểu diễn được như là các phần tử trường hữu hạn sử dụng biểu diễn đa thức sau : Dãy các byte: Dãy các byte được biểu diễn dưới dạng a0a1a2… a15. Các byte và các bit trong byte được viết từ dãy 128 bit input0 input1 input2 … input126 input127 đuợc viết như sau : a0 = {input0, input1,…,input7} a0 = {input8, input9,…,input15} … a0 = {input120, input121,…,input127} Một cách tổng quát : an = {input8n, input8n+1,…,input8n+7} Hình 3.11: Chỉ số byte và bit Bảng trạng thái (State): Hoạt động của thuật toán AES được biểu diễn theo một mảng hai chiều các bytes, gọi là bảng trạng thái. Bảng trạng thái bao gồm 4 hàng bytes, mỗi hàng chứa Nb byte, trong đó Nb là độ dài khối chia cho 32. Trong bảng trạng thái, byte được ký hiệu là s, và mỗi byte có 2 chỉ số riêng biệt là chỉ số hàng r, 0 ≤ r < 4 và chỉ số cột c, 0 ≤ c < Nb, kí hiệu s[r,c], hay sr,c. Tại bước bắt đầu mã hóa hay giải mã, đầu vào được sao chép vào bảng trạng thái. Quá trình mã hóa và giải mã sau đó được thực hiện trên bảng trạng thái này, rồi các giá trị cuối cùng của bảng được sao chép thành đầu ra, được mô tả như hình sau: Hình 3.12 : Bảng trạng thái đầu vào và đầu ra . Với s[r, c] = in[r + 4c],0≤ r < 4, 0≤ c < Nb và out[r + 4c] = s[r, c], ≤ r <4, 0≤ c<Nb. Bảng trạng thái như là một mảng của các cột: 4 byte trong mỗi cột của bảng trạng thái hình thành từ mã 32 bit, trong đó số hàng r cung cấp chỉ số cho 4 byte trong mỗi từ. Bảng trạng thái do đó được biểu diễn như là một mảng một chiều gồm các từ 32 bit w0…w3 : w0 = s0,0 s1,0 s2,0 s3,0 ; w2 = s0,2 s1,2s2,2s3,2 ; w1 = s0,1 s1,1 s2,1 s3,1 ; w3 = s0,3 s1,3 s2,3 s3,3 Các phép toán được sử dụng: Phép cộng XOR Phép nhân: Trong biểu diễn đa thức, phép nhân trong trường hữu hạn GF(28) kí hiệu là · tương ứng với phép nhân đa thức theo modulo của một đa thức sinh bậc 8 (một đa thức được gọi là đa thức sinh nếu nó chỉ chia hết cho 1 và chính nó). Đối với thuật toán AES, đa thức sinh này là : m(x) = x8 + x4 + x3 + x +1. Ví dụ : Các đa thức với hệ số trong trường GF(28): Các đa thức bậc 4 với các hệ số là các thành phần trường hữu hạn có thể được định nghĩa như sau: a(x) = a3x3 + a2x2 + a1x + a0, được kí hiệu như là một từ mã [a0, a1, a2, a3], biểu diễn một từ 4 byte. Khi thực hiện cộng hay nhân hai đa thức kiểu này, ta chỉ thực hiện cộng XOR, nhân các hệ số ( mỗi hệ số là 1 chuỗi 8 bit) với nhau. Ví dụ : c(x) = c6x6 + c5x5 + c4x4 + c3x3 + c2x2 + c1x + c0 c0 = a0 · b0 c4 = a3 · b1 Å a2 · b2 Å a1 · b3 c1 = a1 · b0 Å a0 · b1 c5 = a3 · b2 Å a2 · b3 c2 = a2 · b0 Å a1 · b1 Å a0 · b2 c6 = a3 · b3 Trong đó ta kí hiệu c(x)=a(x) Ä b(x), b(x) = b3x3 + b2x2 + b1x + b0. Kết quả c(x) thu được không biểu diễn một từ 4 byte, do vậy bước tiếp theo khi thực hiện phép nhân là chia c(x) theo modulo cho đa thức bậc 4 (chia lấy dư), kết quả thu được sẽ là đa thức có bậc nhỏ hơn 4. Đối với thuật toán AES, bước này được thực hiện với đa thức x4 + 1, do đó ta có xi mod (x4 + 1) = xi mod 4. Bởi vì x4 + 1 không phải là đa thức bất khả quy trên trường GF(28), nên phép nhân với một đa thức bậc 4 cố định là tất yếu không khả nghịch. Tuy nhiên thuật toán AES chỉ rõ một đa thức bậc 4 cố định có hàm nghịch đảo, đó là : a(x) = {03}x3 + {01}x2 + {01}x + {02} a-1(x) = {0b}x3 + {0d}x2 + {09}x + {0e} 3.2.2. Thuật toán mã hóa AES. Với thuật toán AES, độ dài khối đầu vào, khối đầu ra và bảng trạng thái là 128 bit. Điều này được thể hiện bởi giá trị Nb=4, tương ứng với các từ mã 32 bit (số cột) trong bảng trạng thái. Độ dài của khóa K là 128, 192 và 256 bit. Độ dài khóa được biểu diễn bởi Nk = 4, 6 hay 8, tương ứng với các từ mã 32 bit (số cột) trong khóa. Số vòng lặp được dùng trong quá trình thực hiện thuật toán phụ thuộc vào kích thước của khóa. Số vòng lặp được kí hiệu là Nr, trong đó Nr=10 khi Nk=4, Nr=12 khi Nk=6 và Nr=14 khi Nk=8. Bảng 3.9 : Khóa - khối bit - số vòng . Cho cả hai quá trình mã hóa và giải mã, thuật toán AES sử dụng một hàm vòng lặp bao gồm 4 phép chuyển đổi định hướng byte : Thay thế byte, sử dụng một bảng thay thế (S-box). Dịch chuyển các hàng trong bảng trạng thái bằng các độ dịch khác nhau. Kết hợp dữ liệu trong các cột của bảng trạng thái. Cộng khóa vòng lặp vào bảng trạng thái. Hình 3.13: Sơ đồ thuật toán mã hóa và giải mã AES-128 [7] Mã hóa: Khởi đầu quá trình mã hóa, đầu vào được sao chép vào bảng trạng thái. Sau khi khóa vòng lặp khởi đầu được cộng vào, bảng trạng thái được chuyển đổi bằng cách thực hiện hàm vòng lặp 10,12 hay 14 lần (tùy thuộc vào độ dài khóa), với vòng lặp cuối cùng khác chút ít so với Nr-1 vòng trước đó. Bảng trạng thái cuối cùng sau đó được sao chép đến đầu ra. Hàm lặp được tham số hóa bằng cách sử dụng hệ thống khóa, bao gồm một mảng một chiều của các từ mã 4 byte được suy ra từ phương pháp mở rộng khóa. 4 phép chuyển đổi được ký hiệu SubBytes, ShiftRows, MixColumns và AddRoundKey. Vòng lặp cuối cùng sẽ không bao gồm hàm chuyển đổi MixColumns Chuyển đổi SubBytes: Phép chuyển đổi SubBytes là một phép thay thế byte không tuyến tính, hoạt động một cách độc lập trên mỗi byte của bảng trạng thái bằng cách sử dụng một bảng thay thế S-box. Hình 3.14: Áp dụng S-box cho mỗi byte của bảng trạng thái S-box được sử dụng trong phép chuyển đổi SubBytes dưới dạng hexa: Bảng 3.10: Bảng S-box Hình 3.15 : Dịch vòng trong 3 hàng cuối của bảng trạng thái . Phép chuyển đổi ShiftRows: Trong phép chuyển đổi ShiftRows, các byte trong 3 hàng cuối của bảng trạng thái được dịch quay vòng theo số byte. Hàng đầu tiên, r=0, không dịch chuyển. Chuyển đổi ShiftRows được thực hiện theo biểu thức sau: Trong đó giá trị dịch shift(r,Nb) phụ thuộc vào số hàng, r. Ví dụ shift(1,4)=1; shift(2,4)=2; shift(3,4)=3. Mô tả trong hình 3.18 Phép chuyển đổi MixColumns: Phép chuyển đổi MixColumns thực hiện trên từng cột của bảng trạng thái. Các cột được xem như là các đa thức trên trường GF(28) và nhân modulo x4+1 với đa thức cố định a(x): a(x) = {03}x3 + {01}x2 + {01}x + {02} Ta được : s¢(x) = a(x)Äs(x) và Từ kết quả của phép nhân, 4 byte trong 1 cột được thay thế bởi : · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) Hình 3.16: Hoạt động Mixcolumn trên từng cột của bảng trạng thái Phép chuyển đổi AddRoundKey: Một khóa vòng lặp được cộng vào bảng trạng thái bằng phép cộng XOR. Mỗi khóa vòng bao gồm có Nb từ mã từ hệ thống khóa. Nb từ mã này được cộng vào các cột của bảng trạng thái: Å trong đó [wi] là từ mã hệ thống khóa và vòng lặp round là một giá trị trong dải 0≤round ≤Nr. Trong mã hóa, việc cộng khóa vòng khởi tạo được thực hiện khi round=0 và việc áp dụng phép chuyển đổi AddRoundKey với Nr round còn lại được thực hiện khi 1≤round≤Nr. Hình 3.17: XOR mỗi cột trong bảng trạng thái với một từ trong hệ thống khóa Hình 3.18: Vòng lặp mã hóa AES [7] . Mở rộng khóa: Thuật toán AES lấy khóa mã hóa K và thực hiện quá trình mở rộng khóa để tạo ra hệ thống khóa. Việc mở rộng khóa tạo ra tổng cộng Nb(Nr+1) từ mã: thuật toán yêu cầu một bộ Nb từ mã khởi tạo , và mỗi Nr vòng yêu cầu Nb từ mã của dữ liệu khóa, do vậy tổng cộng là Nb(Nr+1). Hệ thống khóa thu được bao gồm một mảng tuyến tính các từ mã 4 byte, kí hiệu [wi], với i năm trong khoảng 0≤i≤Nb(Nr+1). Thuật toán mở rộng khóa thực hiện với 3 hàm sau: Hàm RotWord: lấy một từ 4 byte làm đầu vào [a0,a1,a2,a3] và tiến hành việc hoán vị vòng như sau: [a1,a2,a3,a0] . Hàm SubWord: lấy một từ 4 byte làm đầu vào và sử dụng bảng S-box cho từng byte trong số bốn 4 byte này để tạo ra từ đầu ra. Hàm Rcon[i]: biểu thị ma trận từ hằng số lặp và chứa giá trị được cho như sau: [xi-1,{00},{00},{00}] trong đó x = {02} Thuật toán mở rộng khóa như sau : i=0 while (i<Nk) w[i] = word (key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]) i = i+1 end while i = Nk while (i<Nb*(Nr+1)) temp = w[i-1] if (i mod Nk = 0) temp = SubWord (RotWord(temp)) xor Rcon[i/Nk] else if (Nk>6 and i mod Nk = 4) temp = SubWord(temp) end if w[i] = w[i-Nk] xor temp i=i+1 end while Ví dụ: mở rộng khóa 128 bit Giả sử khóa là : 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c Với Nk=4 ta có : w0 = 2b7e1516 ; w1 = 28aed2a6 ; w2 = abf71588 ; w3 = 09cf4f3c … Bảng 3.11: Mở rộng khóa 128bit Giải mã: Quá trình giải mã được thực hiện ngược lại với quá trình mã hóa. Các phép chuyển đổi được sử dụng trong quá trình giải mã là InvShiftRows, InvSubBytes, InvMixColumns và AddRoundKey. Ban đầu khóa vòng khởi tạo cũng được cộng XOR với đầu vào. Hình 3.24 là sơ đồ giải mã AES Chuyển đổi InvShiftRows : đây là hàm ngược của hàm ShiftRows. Các byte trong 3 hàng cuối của bảng trạng thái được dịch chuyển vòng. Hàng đầu tiên r=0 không dịch chuyển. Theo biểu thức sau : Hình 3.19 : InvShiftRows . Chuyển đổi InvSubBytes : đây là phép chuyển đổi ngược với phép chuyển đổi thay thế, mà trong đó bảng S-box ngược được áp dụng vào đối với mỗi byte trong bảng trạng thái. Bảng 3.12 : Bảng S-box đảo Phép chuyển đổi InvMixColumns: là phép đảo của MixColumns. Phép này thực hiện trên từng cột của bảng trạng thái. Các cột được xem như là các da thức trên trường GF(28) và nhân modulo x4+1 với một đa thức cố định ( đa thức a-1(x) đã nêu ở trên) : s¢(x) = a-1 (x)Äs(x). Ta thu được : Khai triển ra ta được: · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) · s0,c ) Å · s1,c) Å · s2,c) Å · s3,c) Hình 3.20: Sơ đồ giải mã AES-128 . Ví dụ về mã hóa AES-128: Giả sử ta có : Input = 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34 Cipher Key = 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c Như vậy Nb=4, Nk=4 và Nr=10. Ta có tiến trình mã hóa như sau: … Bảng 3.13: Mã hóa AES-128 . 3.2.3. AES-CCM trong Wimax Chuẩn IEEE 802.16e đã bổ sung thêm sử dụng AES để cung cấp một phương pháp mã hóa dữ liệu mạnh. Nó xác định sử dụng AES trong 4 chế độ : CBC (Cipher Block Chaining) , counter encryption (CTR), CTR cùng với mã nhận thực bản tin CBC (CCM) và ECB [2]. ECB đơn giản là mã hóa từng khối độc của văn bản gốc, sử dụng cùng một khóa. Trong chế độ CBC, đầu vào của thuật toán mã hóa là phép XOR của khối bản tin gốc với khối bản tin được mã hóa trước đó. Với chế độ CTR, một khối của bản tin gốc chưa mã hóa được XOR với khối đếm [7]. Chế độ CTR được xem như tốt hơn chế độ CBC do nó có khả năng thực hiện quá trình xử lý dữ liệu song song, thực hiện xử lý trước các khối dữ liệu, và nó hoạt động đơn giản hơn. Chế độ CCM bổ sung thêm khả năng xác định nhận thực của bản tin được mã hóa cho chế độ CTR. Chế độ ECB được sử dụng để mã hóa các TEK (Traffic Encryption Key – khóa mật mã lưu lượng – được sử dụng để mã hóa dữ liệu truyền dẫn giữa các trạm gốc BS và các trạm thuê bao SS) [2]. Chuẩn IEEE 802.16e bổ sung thuật toán bảo mật AES-CCM sử dụng khóa 128 bit (TEK) như một phương thức mã hóa dữ liệu mới, trong đó việc đảm bảo sự kiểm tra tính nguyên vẹn của bản tin và chống lại phương thức tấn công replay (phát lại) bằng cách sử dụng số PN (Packet Number). Phía phát xây dựng một lần duy nhất sự ngẫu nhiên hóa mật mã cho mỗi gói, bảo đảm tính duy nhất và thêm vào kỹ thuật nhận thực dữ liệu [3]. CCM là chế độ làm việc trong đó cùng một khóa có thể được sử dụng cho cả việc mật mã hóa cũng như nhận thực.CCM sử dụng AES-CTR cho việc mật mã hóa, CBC-MAC cho đảm bảo tính toàn vẹn của bản tin. Trước tiên nó sẽ tính toán MIC (message integrity code: Mã toàn vẹn của bản tin) bằng cách sử dụng CBC-MAC , tiếp đó mật mã hóa bản tin và MAC bằng cách sử dụng AES-CTR [13]. Đối với việc truyền dữ liệu, các thiết bị của chuẩn 802.16 sử dụng thuật toán AES-CCM (hoặc DES-CBC cũng được phép sử dụng, tuy nhiên nó không cung cấp đủ sự bảo vệ) để đóng gói. [13] Chế độ hoạt động CCM của AES yêu cầu máy phát tạo ra một nonce duy nhất, là một bộ ngẫu nhiên mã hóa từng gói tin. IEEE 802.16e định rõ một nonce có 13 byte, như hình vẽ. Byte từ 0 đến 4 được xây dựng từ 5 byte đầu tiên của GMH (Generic MAC Header). Byte từ 5-8 được dùng để dự trữ và tất cả đều được đặt bằng 0. Byte từ 9-12 được đặt cho số gói (Packet Number – PN). PN liên quan tới một SA (SA là tập hợp của thông tin bảo mật một trạm gốc BS và một hay nhiều trạm thuê bao SS của nó, chia sẻ để hỗ trợ bảo mật cho cuộc truyền thông thông qua mạng Wimax) và được đặt bằng 1 khi SA (Security Association – liên kết bảo mật) được thiết lập và khi một TEK mới được cài đặt. Vì nonce phụ thuộc vào GMH, nên những thay đổi trên GMH có thể được phát hiện bới máy thu.[2] Việc xây dựng CCM trong 802.16 yêu cầu một giá trị ngẫu nhiên (nonce) 13 byte. Một bộ đếm lớn sẽ cho phép thông tin được tiếp tục thực hiện mà không phải nạp lại khoá, trong khi vẫn xâm nhập được vào phần mào đầu khá lớn của PDU. Một giá trị PN nhỏ hơn sẽ dẫn tới việc phải nạp lại khoá thường xuyên hơn. Để tối ưu hoá phần mào đầu cho PDU, chuẩn 802.16 sử dụng 5 byte đầu tiên của GMH và 4 byte có giá trị là 0 để điền đầy 9 byte và sử dụng 4 byte PN để xây dựng nonce. [13] Hình 3.21: Nonce. Hình 3.22: CCM CBC Block Hình 3.23 : CCM counter block . Để tạo một mã nhận thực bản tin, AES-CCM sử dụng một sự thay đổi của chế độ CBC. Thay vì sử dụng một IV, một khối CBC khởi tạo được nối thêm vào phần mở đầu của bản tin trước khi nó được mã hóa. Như trong hình 3.27, khối CBC khởi tạo bao gồm một cờ, gói nonce, và độ dài tải tin. Để mã hóa tải tin và mã nhận thực bản tin, AES-CCM sử dụng chế độ CTR. Với chế độ hoạt động này, n khối bộ đếm được tạo, trong đó n là số khối cần thiết để phù hợp kích thước bản tin cộng với một khối dành cho mã nhận thực bản tin (AES sử dụng khối dữ liệu 128 bit). Khối đầu tiên được sử dụng để mã hóa mã nhận thực bản tin và các khối còn lại dùng để mã hóa tải tin. Như trong hình 3.28, khối bộ đếm bao gồm 1 cờ, gói nonce và khối số đếm i, trong đó i từ 0 đến n. Mã nhận thực bản tin được tạo ra bằng cách mã hóa khối CBC khởi tạo và tải tin gốc. Hình 3.29 miêu tả việc tạo mã nhận thực bản tin và sự mã hóa của mã nhận thực bản tin. Bước đầu tiên trong việc tạo mã nhận thực bản tin là tách tải tin gốc chưa mã hóa từ PDU và thêm vào khối CBC khởi tạo vào đầu gói. Sau đó khối này được mã hóa bằng cách sử dụng thuật toán AES trong chế độ CBC với TEK từ SA của kết nối. 128 bit sau cùng (kích thước của một khối AES) của đầu ra đã mã hóa được lựa chọn để biểu diễn mã nhận thực bản tin. Bên gửi sẽ thực hiện quá trình này và sau đó sẽ mã hóa mã nhận thực bản tin cùng với bản tin. Bên nhận sẽ giải mã bản tin và mã nhận thực bản tin, và sau đó thực hiện quá trình tương tự trên bản tin. Phía bên nhận sau đó sẽ so sánh mã nhận thực bản tin nó đã tạo ra với mã nhận thực bản tin đã nhận được. Nếu chúng giống nhau thì bản tin là xác thực, nếu không thì bản tin sẽ bị hủy bỏ. [2] Việc mã hóa mã nhận thực bản tin được tiến hành bằng khối đếm mã hóa 0 sử dụng AES trong chế độ CTR với TEK từ SA của kết nối. Khối được mã hóa này sau đó được cộng XOR với mã nhận thực bản tin để tạo ra phiên bản được mã hóa. Hình 3.24 : Quá trình mã hóa và tạo mã nhận thực bản tin . Hình 3.25: Mã hóa tải tin AES-CCM . PN sau đó được thêm vào phía trước tải tin được mã hóa và mã nhận thực bản tin được thêm vào phía sau. Sau đó khối dữ liệu này thay thế cho bản tin gốc chưa mã hóa. Bit EC trong GMH sẽ được đặt bằng 1 để xác định tải tin được mã hóa và các bit EKS sẽ được set để xác định TEK được sử dụng để mã hóa tải tin. Nếu có thêm CRC thì nó sẽ cập nhật những tải tin mới. 3.3. Kết luận Chương 3 giới thiệu về các chuẩn mã hoá trong Wimax. Phần đầu giới thiệu về chuẩn mã hoá dữ liệu DES, thuật toán mã hoá dữ liệu DES các phân tích an ninh khi sử dụng DES và từ đó đưa ra thuật toán mã hoá dữ liệu TDEA. Ứng dụng của thuật toán DES. Phần này cũng đã nêu ra được ứng dụng của DES trong Wimax là sử dụng DES trong chế độ CBC. Phần tiếp theo giới thiệu về chuẩn mã hoá tiên tiến AES, thuật toán mã hoá AES, ứng dụng của AES và ứng dụng cụ thể trong Wimax. KẾT LUẬN Hoạt động của bảo mật trong chuẩn IEEE 802.16 bao quát một phạm vi rất rộng của kỹ thuật mật mã, nó đã ứng dụng những tiêu chuẩn mới nhất của ngành Mật mã học. Sau khi hoàn thành Bài tập lớn Mã hóa bảo mật Wimax đã nêu ra được một số nội dung chính như sau : Chương 1: Giới thiệu về công nghệ Wimax, các chuẩn Wimax và lớp con bảo mật trong Wimax. Chương 2: Giới thiệu về các phương pháp mã hóa bảo mật, các ứng dụng và xu hướng phát triển của các phương pháp mã hoá trong tương lai. Chương 3: Giới thiệu về các chuẩn mã hoá trong Wimax. Đó là chuẩn mã hoá dữ liệu DES (gồm thuật toán mã hoá dữ liệu DES và TDEA)và chuẩn mã hoá tiên tiến AES (thuật toán mã hoá AES) và ứng dụng của các chuẩn mã hoá này trong Wimax. Đó là DES – CBC và AES – CCM trong Wimax. Trong bài tập này, nhóm chỉ giới thiệu tổng quan về các phương pháp mã hoá bảo mật nói chung và mã hoá bảo mật trong Wimax, chưa đi sâu vào nghiên cứu chi tiết về phương pháp bảo mật khác trong Wimax là phương pháp quản lý khoá và tình hình ứng dụng của Wimax hiện nay cũng như xu hướng phát triển trong tương lai. Vì vậy, hướng nghiên cứu tiếp theo của nhóm là phương pháp quản lý khoá trong Wimax và ứng dụng và tình hình phát triển của Wimax hiện nay và tương lai. Trong quá trình làm bài tập, nhóm đã nhận được sự giúp đỡ của các thầy cô và các bạn trong lớp. Nhóm xin gửi lời cảm ơn chân thành đến các thầy cô và các bạn. Đặc biệt nhóm xin gửi lời cảm ơn sâu sắc tới thầy giáo – Th.S. Nguyễn Việt Hùng là người đã trực tiếp hướng dẫn và góp ý để nhóm có thể có hướng đi đúng và hoàn thành bài tập này. Nhóm sinh viên Nhóm 3 lớp D05VT2 TÀI LIỆU THAM KHẢO WiMAX Forum ® WiMAX ™ Technology Forecast (2007-2012) – Wimax forum, Copyright 2008 WiMAX Forum. WiMAX Standards and Security, CRC Press 2008, Taylor & Francis Group, Edited by SYED AHSON and MOHAMMAD ILYAS (p37 to p48) Bảo mật trong WiMAX, TS. Lê Nhật Thăng & KS. Hoàng Đức Tỉnh, Tạp chí BCVT&CNTT, 14/12/2007. . Fixed, nomadic, portable and mobile applications for 802.16-2004 and 802.16e WiMAX networks, November 2005, Wimax Forum. Công nghệ truy cập mạng NGN - Nguyễn Việt Hùng – Tổng công ty Bưu chính Viễn thông Việt Nam – Học viện công nghệ Bưu chính Viễn thông – 5/2007. Auerbach - WiMAX MobileFi Advanced Research and Technology, Dec 2007 Cryptography and Network Security Principles and Practices, Fourth Edition, Nov 2005 - Prentice Hall Modern Cryptography : Theory and Practice, By Wenbo Mao Hewlett-Packard Company, 2003, Prentice Hall PTR. An Introduction To Cryptography, 2nd Edition, 2007, Discrete Mathematics and its applications, Series Editor KENNETH H. ROSEN. Contemprary Cryptography, Rolf Oppliger, Artech House Computer Security Series, 2005. Cryptography: Theory and Practice, Douglas Stinson, CRC Press, CRC Press LLC, 1995. Cryptography: A Very Short Introduction, by Fred Piper and Sean Murphy, Oxford University Press 2002. Bảo mật trong Wimax - Đồ án tốt nghiệp ĐH - Nguyễn Xuân Cường, Lớp HCD05VT2. – Giáo viên hướng dẫn: Cô giáo Nguyễn Thị Thu Hằng và Các thầy cô giáo của Bộ Môn Mạng Viễn Thông. Apress WiMax Operators Manual Building 802.16.Wireless Networks, 2nd.Edition, November 2005. Advanced Encryption Standard (AES) - Laurent Haan - Public Research Centre Henri Tudor, Luxembourg, 5/14/2007. The Future of Encryption - Richard Moulds - nCipher - Monday, 18 February 2008, published by HNS Consulting Ltd . Giáo trình mật mã học – PGS_TS Nguyễn Bình. NXB Bưu điện 01/2004. RC4 Encryption Algorithm, David Jamieson, VOCAL Technologies Ltd, 2003. Wimax – A wireless Technology Revolution, G.S.V.Radha Krishna Rao, G.Radhamani, Auerbach Publications, Taylor & Francis Group, 2008 Data Encryption Standard (DES) - U.S. Department of Commerce/National Institute of Standards and Technology, Federal Information Processing Standards Publication, 1999 October 25. Cryptography A-Z - SSH Communications Security , Business Systems International Ltd, 2004, House 59 Markham Street, London, SW3 3NR, UK, +44 (0) 20 7352 7007, SSH@e-business.com . Announcing the Advanced Encryption Standard (AES) - Federal Information Processing Standards Publication, November 26, 2001. Cryptography - Surender R Chiluka, University of Rhode Island Department of Computer Science and Statistics, 2003. WiMAX Technology for Broadband Wireless Access, Loutfi Nuaymi, John Wiley & Sons, 2007. Introduction to cryptography, Part 1, 2, 3, 4 - Murdoch Mactaggart, IBM website, 01 Mar 2001. . Bảo mật trong Wimax, Nguyễn Thế Anh, Bùi Thị Ngọc Huyền, Nguyễn Thị Tới, Nguyễn Thị Quỳnh Trang, D04VT1, Tháng 10/2007. Thông tin lượng tử - Ngô Tứ Thành & Lê Minh Thanh – Nhà xuất bản ĐHQG HN, 2007. Đôi nét về mật mã – KS. Nguyễn Phương Mai – Ban Cơ yếu Chính phủ - Tạp chí An toàn thông tin, số 03 (004) 2007. Quantum Cryptography – Steven J.Van Enk – Bell Laboratories, Lucent Technologies – Murray Hill, New Jersy – 2003. IEEE 802.16 Wimax Security, Dr. Kitti Wongthavarawat Wireless Security R&D ThaiCERT, NECTEC-March 28, 2005. Jamshed Hasan, School of Computer and Information, Science, Edith Cowan University, Australia - Security Issues of IEEE 802.16 (WiMAX), 2006 Thuật toán mã hoá bảomật DES - Nguyễn Lê Cường, Tạp chí BCVT&CNTT 20/11/2007. Elliptic Curve Cryptography and Its Applications to Mobile Devices - Wendy Chou, University of Maryland, College Park, Advisor: Dr. Lawrence Washington, Department of Mathematics Handbook of Applied Cryptography, by A. Menezes, P. van Oorschot, and S. Vanstone, CRC Press, 1996 WiMax - Công nghệ truy nhập mạng không dây băng rộng, ThS. Nguyễn Quốc Khương-TS, Nguyễn Văn Đức-ThS, Nguyễn Trung Kiên-KS, Nguyễn Thu Hà, 13/03/2006. www.tapchibcvt.gov.vn/vi-VN/congnghetruyenthong/2006/4/16376.bcvt?SearchTerm=Wimax

Các file đính kèm theo tài liệu này:

  • docNhom 3 D05VT2 Ma hoa bao mat trong Wimax.doc