Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
1,64 MB
Nội dung
TRƯỜNG HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA MẬT MÃ - - BÁO CÁO TÌMHIỂUVÀCÀIĐẶTTHUẬTTOÁNMÃHOÁAES256 Giáo viên hướng dẫn : Phạm Thị Hiên Lớp : H25 Nhóm sinh viên thực : Nguyễn Quang Vinh Phan Văn Vương Phạm Thị Hải Yến Hà Nội, 2017 Mục lục LỜI NÓI ĐẦU Phần 1: Tổng quan AES Giới thiệu AES Quy trình mã hố AES Phần 2: Các vòng AES Biến đổi SubBytes AES Phép biến đổi ShiftRows AES Phép biến đổi MixColumns AES Phép biến đổi AddRoundKey AES Mở rộng khoá Phần 3: Độ an toànAES 10 Đánh giá chung 10 Các tiêu chuẩn thiết kế an toànAES 10 a Tiêu chuẩn thiết kế Rijndael nêu đề nghị AES 10 b Tiêu chuẩn thiết kế S-hộp 10 c Tiêu chuẩn thiết kế cho số bước dịch 10 d Tiêu chuẩn thiết kế phép biến đổi MixColumns .11 e Tiêu chuẩn lựa chọn số vòng lặp 11 f Tiêu chuẩn mở rộng khoá 11 Phần 4: Chế độ hoạt động OFB 12 Giới thiệu chế độ hoạt động AES 12 Chế độ mã OFB 12 Độ an toàn chế độ OFB 14 LỜI NÓI ĐẦU Cùng với phát triển khoa học kỹ thuật ứng dụng tin học lĩnh vực đời sống an ninh quân quốc phòng giao dịch thương mại điện tử,…nhu cầu bảo vệ thông tin hệ thống ứng dụng ngày trọng Vì mà khoa học mật mã được ứng dụng rộng rãi với mong muốn bảo vệ thông tin sở liệu quan trọng Ứng dụng khoa học mật mã không đơn mã hố giải mã thơng tin mà bao gồm nhiều vấn đề khác ví dụ chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực người sở hữu mã khố, quy trình giúp trao đổi thông tin thực giao dịch điện tử an tồn Trong chương trình học tập an tồn thơng tin sinh viên việc tự mã giải mã liệu quan trọng Nó giúp sinh viên tìmhiểu sâu thuậttoánmã giải mã cung cấp cách càiđặtthuậttoán hệ điều hành Với lý trên, nhóm sinh viên chúng em chọn đề tài TìmhiểucàiđặtthuậttoánmãhoáAES256 Phần 1: Tổng quan AES Chuẩn mãhóa dữ liệ u tiên tiến AES Chuẩ n mãhóa dữ liệu tiên tiế n AES (Advanced Encryption Standard) một hệ mã khóa bí mật có tên Rijdael (do hai nhà mật mã học ngư ời Bỉ Joan Daemen Vincent Rijmen đư a trở thành chuẩ n từ năm 2002) cho phép xử lý khố i dữ liệu input có kích thước 128 bit sử dụng khóa có độ dài 128, 192 hoặc 256 bit Hệ mã Rijdael đư ợ c thiế t kế để có thể làm việc với khóa khớ i liệu có độ dài lớn nhiên chọn một chuẩn Ủy ban tiêu chuẩn của Hoa Kỳ đư a năm 2001, đư ợ c qui đinh ̣ chỉ làm việc với khối dữ liệu 128 bit khóa có độ dài 128, 192 hoặc 256 bit (do đặt cho tên AES-128, AES-192, AES-256 tư ơng ứng với độ dài khóa sử dụng) AES trở thành thuật tốn mãhóa phổ biến sử dụng khóa mã đối xứng để mãhóa giải mãAES có độ dài khóa 128 bit (một chữ số nhị phân có giá trị 1), 192 bít 256 bít tương ứng gọi AES-128, AES-192 AES-256 Cơ sở toán học AES: Trong AES phép toán cộng nhân đươ ̣c thực hiện byte trường hữu ̣n GF(2 ) a Các biểu diễn Byte Byte đơn vị xử lý hệ mật AES, dãy bit {𝑏7 𝑏6 … 𝑏1 𝑏0 } Các byte biểu diễn theo cách: - Một byte xâu bit có độ dài 8, ví dụ dãy bit {01100011} - Một byte viết ký tự hexa, ví dụ phần tử {01100011} viết thành {63} - Một byte viết thành đa thức GF(28) Phép nhân Ký hiệu quy ước Ký hiệu: Nb độ dài khối tính theo từ Nk độ dài khố tính theo từ Nr số vòng lặp Độ dài khóa(Nk từ) Độ dài khối Số vòng (Nb từ) (Nr) AES-128 4 10 AES-196 AES-256 4 12 14 Bảng 1: Tổ hợp Khóa-khối-vòng k0,0 k1,0 k2,0 k3,0 k0,1 k1,1 k2,1 k3,1 k0,2 k1,2 k2,2 k3,2 k0,3 k1,3 k2,3 k3,3 k0,4 k1,4 k2,4 k3,4 k0,5 k1,5 k2,5 k3,5 k0,6 k1,6 k2,6 k3,6 k0,7 k1,7 k2,7 k3,7 Bảng 2: Biểu diễn trạng thái khoá Nk = Vòng lặp AES thực hàm sau: SubBytes(), ShiftRows(), MixColumns() AddRoundKey() Ba hàm đầu vòng AES thiết kế để ngăn chặn phân tích mã phương thức “mập mờ“ (confusion) phương thức “khuếch tán“ (diffusion), hàm thứ tư thiết kế để mãhóa liệu Quy trình mã hố AES Khởi động vòng lặp: thực thao tác cộng khoá Thực vòng lặp: Thực (Nr – 1) chu kỳ mãhoá sử dụng thủ tục mãhoá Mỗi chu kỳ mãhoá gồm thao tác biến đổi: SubBytes, ShiftRows, MixColumns AddRoundKey Thực chu kỳ mãhóa cuối Trong chu kỳ bỏ qua thao tác MixColumns Phần 2: Các vòng AES Biến đổi SubBytes AES Phép biến đổi SubBytes phép thay phi tuyến thực độc lập byte trạng thái sử dụng bảng thay S-hộp Shộp có tính khả nghịch tạo phép biến đổi: Lấy nghịch đảo b a l GF28 với quy ước 0–l = Cho b0 , bl,, b7 biểu diễn nhị phân s Thực ánh xạ affine ′ 𝑏𝑖 = 𝑏𝑖 ⨁𝑏(𝑖+4)𝑚𝑜𝑑 ⨁𝑏(𝑖+5)𝑚𝑜𝑑8 ⨁𝑏(𝑖+6)𝑚𝑜𝑑 ⨁𝑏(𝑖+7)𝑚𝑜𝑑 ⨁𝑐𝑖 với ≤ 𝑖 < 8, bi bit thứ I byte b ci bit thứ i byte với giá trị {63} hay {01100011} 𝑏0′ 𝑏1′ 𝑏2′ 𝑏3′ = 𝑏4′ 𝑏5′ 𝑏6′ [𝑏7′ ] 1 1 0 [0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 𝑏0 𝑏1 𝑏 𝑏3 + 𝑏4 0 𝑏5 𝑏6 1] [𝑏 ] [0] y x a b c d e f 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e s8 a1 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf 6b 59 3f 96 6e fc 4d 9d 97 2a 06 d5 a6 03 d9 e6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99 a 67 a2 e5 80 d6 de 02 da 7e b8 ac f4 74 57 87 2d b ab af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce b0 d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54 e ab 72 31 b2 2f 58 9f f3 19 0b e4 ae 8b 1d 28 bb Bảng 2: S-hộp, thay giá trị theo byte {xy} (dạng hexa) f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16 Phép biến đổi ShiftRows AES Phép biến đổi ShiftRows thực biến đổi hàng mảng trạng thái Hàng r = không dịch chuyển, tấy hàng khác dịch vòng trái theo số lượng byte khác Cụ thể: ′ 𝑠𝑟,𝑐 = 𝑠𝑟,(𝑐+𝑠ℎ𝑖𝑓𝑡(𝑟,𝑁𝑏))𝑚𝑜𝑑𝑁𝑏 𝑣ớ𝑖 < 𝑟 < 𝑣à ≤ 𝑐 < 𝑁𝑏 Trong 𝑠ℎ𝑖𝑓𝑡(𝑟, 𝑁𝑏) phụ thuộc vào số hàng r: shift(1,4) = 1, shift (2,4) = 2, shift (3,4) = Hàm ShiftRows() dịch vòng hàng cuối mạng trạng thái Phép biến đổi MixColumns AES Phép biến đổi MixColumn thực biến đổi theo cột Mỗi cột xem đa thức hạng tử, cột xem đa thức trường GF(28) nhân theo modulo (x4 + 1) với đa thức cố định a(x) sau: 𝑎 (𝑥) = {03}𝑥 + {01}𝑥 + {01}𝑥 + {02} Điều biểu diễn dạng phép nhân ma trận: 𝑠 ′ (𝑥) = 𝑎(𝑥) 𝑠(𝑥) 𝑚𝑜𝑑(𝑥 + 1) Phép MixColumns() thao tác mảng trạng thái theo cách cột – cột ′ 𝑠0,𝑐 02𝐻 ′ 𝑠1,𝑐 01 =[ 𝐻 ′ 01𝐻 𝑠2,𝑐 ′ 03𝐻 [𝑠3,𝑐 ] 03𝐻 02𝐻 01𝐻 01𝐻 01𝐻 03𝐻 02𝐻 01𝐻 01𝐻 𝑆0,𝐶 01𝐻 𝑆1,𝐶 ] với ≤ 𝑐 < 𝑁𝑏 03𝐻 𝑆2,𝐶 02𝐻 [𝑆3,𝐶 ] Phép biến đổi AddRoundKey AES Phép biến đổi AddRoundKey() gọi phép cộng khố Trong phép biến đổi này, khố vòng cộng với trạng thái phép toán XOR đơn giản bit Mỗi khố vòng bao gồm Nb từ nhận từ lược đồ khoá Nb từ cộng với cột trạng thái cho: ′ ′ ′ ′ , 𝑠1,𝑐 , 𝑠2,𝑐 , 𝑠3,𝑐 [𝑠0,𝑐 ] = [𝑠0,𝑐 , 𝑠1,𝑐 , 𝑠2,𝑐 , 𝑠3,𝑐 ]⨁[𝑤𝑟𝑜𝑢𝑛𝑑 + 𝑁𝑏 + 𝑐] với ≤ 𝑐 < 𝑁𝑏 Thao tác AddRoundKey tác động lên mỗi cột của trạng thái Mở rộng khoá ThuậttoánAES nhận vào khoá mã K thực phép mở rộng khoá để tạo lược đồ khoá Phép mở rộng khoá tạo tổng số 𝑁𝑏 (𝑁𝑟 + 1) từ Lược đồ khoá cuối mảng tuyến tính từ byte ký hiệu [𝑊𝑖 ], với ≤ 𝑖 < 𝑁𝑏 (𝑁𝑟 + 1) Hàm SubWord(): hàm nhận từ byte làm đầu vào áp dụng S-Hộp byte để tạo thành đầu từ Hàm RotWord() nhận từ [𝑎0 , 𝑎1 , 𝑎2 , 𝑎3 ] làm đầu vào, thực phép hốn vị tuần hồn cho kết đầu từ [𝑎1 , 𝑎2 , 𝑎3 , 𝑎0 ] Với AES-256, Nk = (i – 4) bội số Nk hàm SubWord() áp dụng cho w[i – 1] trước áp dụng XOR Phép tạo hằng: Rcon[i] Rcon[i]=(Rc[1],’00’,’00’,’00’) với Rc[1]=01, Rc[i]={02}.Rc[1-1];(i ≥ 2) Phần 3: Độ an toànAES Đánh giá chung AES sử dụng phép biến đổi phép thay hoán vị nên dễ hiểu dễ càiđặt Do sử dụng phép tra bảng nên AES có tốc độ tính tốn nhanh Thiết kế độ dài khố thuật tốn AES (128, 192 256 bít) đủ an tồn để bảo vệ thơng tin xếp vào loại tối mật Các thông tin tuyệt mật phải dùng khóa 192 256 bít AES dường thách thức kiểu công Ví dụ cơng phương pháp vét cạn, ta phải 2128 phép tính tốn tìm khố Đối với tốc độ máy tính điều cho an tồn Vào thời điểm năm 2006, dạng công lên AES thành công công kênh bên Tấn công kênh bên không công trực tiếp vào thuật tốn mãhóamà thay vào đó, cơng lên hệ thống thực thuật tốn có sơ hở làm lộ liệu Các tiêu chuẩn thiết kế an toànAES a Tiêu chuẩn thiết kế Rijndael nêu đề nghị AES Kháng cự chống lại tất công biết Tốc độ tính gọn mã lệnh miền rộng kiến trúc phần cứng khác Tính đơn giản thiết kế b Tiêu chuẩn thiết kế S-hộp Tính phi tuyến: - Độ lớn tương quan đầu vào – đầu tối đa nhỏ tốt để chống lại cơng tuyến tính - Xác suất lan truyền sai khác cực đại nhỏ tốt để chống lại công vi sai Độ phức tạp đại số: biểu diễn đại số S-Hộp GF(28) cần phải phức tạp để chống lại công nội suy c Tiêu chuẩn thiết kế cho số bước dịch Tối ưu tính khuếch tán: để đảm bảo tính kháng cự chống lại cơng vi sai tuyến tính Tính kháng cự chống lại công vi sai chặt cụt cơng bão hồ cần phải cực đại 10 d Tiêu chuẩn thiết kế phép biến đổi MixColumns Kích thước: Phép biến đổi biến đổi xếp gạch thao tác cột gồm 4-byte Tính tuyến tính Khuếch tán Hiệu suất xử lý 8-bit: hiệu suất xử lý xử lý 8-bit cần phải cao Điều kiệ cần MixColumns bước mà việc đạthiệu suất tốt xử lý 8-bit khơng e Tiêu chuẩn lựa chọn số vòng lặp Phân tích mã khối sức kháng cự mã khối nhièu vòng chống lại cơng mã thám tăng lên với số vòng mã khối Số vòng lặp mã khối xác định cách xem xét số tối đa vòng mà chúng tìm công đường tắt hiệu đáng kể so với duyệt khố vét cạn Sau thêm số dư an tồn đáng kể Đối với AES có độ dài khối độ dài khố 128 bit, khơng có cơng đường tắt tìm thấy cho phiên rút gọn nhiều vòng Người ta thêm vào vòng độ dư an tồn Đối với phiên AES có khố dài hơn, vòng tăng thêm cho 32 bit thêm vào khố mã Do đó, phiên AES có Nk = số vòng Nr = 10, với Nk = số vòng Nr = 12 với Nk = số vòng Nr = 14 f Tiêu chuẩn mở rộng khố Tính hiệu quả: - Bộ nhớ làm việc: Có thể thực lược đồ khố mà sử dụng lượng nhớ làm việc - Hiệu suất: Cần có hiệu suất cao diên rộng xử lý Loại bỏ tính đối xứng: Tính phi đối xứng lược đồ khố chống lại tính đối xứng biến đổi vòng vòng dẫn tới điểm yếu cho phép cơng Ví dụ: khố yếu DES, cơng trượt khối Khuếch tán: Cần có độ khuếch tán hiệu sai khác khoá mã vào khoá mở rộng Phi tuyến: Cần đảm bảo đủ tính phi tuyến để ngăn cản việc xác định hồn tồn sai khác khố mở rộng từ sai khác khoá mã 11 Phần 4: Chế độ hoạt động OFB Giới thiệu chế độ hoạt động AES Mật mã khối xử lý thơng báo có cỡ cỡ khối liệu Thơng thường, độ dài thơng báo lớn cỡ khối liệu, khó thơng báo chia thành khối liệu liên tiếp mã khối xử lý khối Có nhiều chế độ hoạt động khác cho mã khối Sau AES đời, NIST định nghĩa chế độ hoạt động: - Chế độ sách mã điện tử (EBC) - Chế độ xích khối mã (CBC) - Chế độ phản hồi đầu (OFB) - Chế độ phản hồi mã (CFB) - Chế độ đếm (CTR) Ký hiệu: EK: hàm mãmã khối E tham số hoá khoá K 𝐸𝐾−1 ( DK): hàm giải mã Thông báo rõ 𝑥 = 𝑥1 , 𝑥2 , … 𝑥𝑡 giả thiết chứa khối n-bit cho chế độ ECB CBC khối r-bit cho chế độ CFB OFB với 𝑟 ≤ 𝑛 cố định thích hợp IV: vecto khởi tạo n-bit Chế độ mã OFB Chế độ mã dòng OFB sử dụng cho ứng dụng cơng lan sai cần phải tránh Chế độ cho phép mã hố khối có kích thước khác đầu hàm mã E phản hồi Có hai phiên OFB sử dụng mã khối n-bit: Chế độ OFB phản hồi đầy đủ Chế độ OFB phản hồi r-bit 12 Chế độ phản hồi đầu OFB Thuậttoán 1: Chế độ OFB phản hồi đầy đủ Mã hố Đầu vào: Khố K có k-bit, n-bit IV, khối rõ r-bit 𝑥1 , … 𝑥𝑢 (1 ≤ 𝑟 ≤ 𝑛) Đầu ra: Các khối mã 𝑐1 , … 𝑐𝑢 khối có r-bit 𝐼1 ← 𝐼𝑉 (𝐼1 𝑙à 𝑔𝑖á 𝑡𝑟ị đầ𝑢 𝑣à𝑜 𝑐ủ𝑎 𝑡ℎ𝑎𝑛ℎ 𝑔ℎ𝑖 𝑑ị𝑐ℎ), 𝑣ớ𝑖 ≤ 𝑗 ≤ 𝑢: a) 𝑂𝑗 ← 𝐸𝐾 (𝐼𝑗 ) b) 𝑡𝑗 ← 𝑟 bit bên trái 𝑂𝑗 ( giả sử bit bên trái định danh bit thứ nhất) c) 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 ( truyền khối mã r-bit 𝑐𝑗 ) d) 𝐼𝑗+1 ← 𝑂𝑗 (cập nhật đầu vào mã khối cho khối tiếp sau) Giải mã Đầu vào: Khoá K có k-bit, n-bit IV, khối mã 𝑐1 , … 𝑐𝑢 khối có r-bit Đầu ra: khối rõ, khối có r-bit 𝐼1 ← 𝐼𝑉, 𝑣ớ𝑖 ≤ 𝑗 ≤ 𝑢: 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 𝑡𝑗 , 𝑂𝑗 , 𝐼𝑗 tính 13 Thuậttoán 2: Chế độ OFB phản hồi đầu r-bit Mã hố Đầu vào: Khố K có k-bit, n-bit IV, khối rõ r-bit 𝑥1 , … 𝑥𝑢 (1 ≤ 𝑟 ≤ 𝑛) a) 𝑂𝑗 ← 𝐸𝐾 (𝐼𝑗 ) b) 𝑡𝑗 ← 𝑟 bit bên trái 𝑂𝑗 ( giả sử bit bên trái định danh bit thứ nhất) c) 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 ( truyền khối mã r-bit 𝑐𝑗 ) d) 𝐼𝑗+1 ← (2𝑟 ∗ 𝐼𝑗 + 𝑡𝑗 )𝑚𝑜𝑑2𝑛,, ( dịch đầu 𝑡𝑗 đầu cuối bên trái ghi) Đầu ra: Các khối mã 𝑐1 , … 𝑐𝑢 Giải mã Đầu vào: Khố K có k-bit, n-bit IV, khối mã 𝑐1 , … 𝑐𝑢 khối có r-bit Đầu ra: khối rõ, khối có r-bit 𝐼1 ← 𝐼𝑉, 𝑣ớ𝑖 ≤ 𝑗 ≤ 𝑢: 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 𝑡𝑗 , 𝑂𝑗 , 𝐼𝑗 tính Các tính chất: - Các rõ giống nhau, việc thay đổi IV làm cho rõ mã thành đầu khác - Dòng khố khơng phụ thuộc vào rõ - Lan sai: hay nhiều lỗi bit ký tự mã 𝑐𝑗 ảnh hưởng tới việc giải mã ký tự đó, xác vị trí mà 𝑐𝑗 có lỗi, làm cho bit rõ khôi phục tương ứng bị đảo ngược - Khôi phục sau lỗi: chế độ OFB khôi phục lại từ lỗi bit mã, tự đồng sau bit mã Độ an toàn chế độ OFB - Các mẫu rõ che dấu - Đầu vào mã pháp khối ngẫu nhiên 14 - Nhiều thông báo mãhoá với khoá với điều kiện IV khác sử dụng - Bản rõ xử lý dễ dàng, thay đổi nàp mã ảnh hưởng trực tiếp đến rõ 15 ... tự mã giải mã liệu quan trọng Nó giúp sinh viên tìm hiểu sâu thuật toán mã giải mã cung cấp cách cài đặt thuật toán hệ điều hành Với lý trên, nhóm sinh viên chúng em chọn đề tài Tìm hiểu cài đặt. .. hiểu cài đặt thuật toán mã hoá AES 256 Phần 1: Tổng quan AES Chuẩn mã hóa dữ liệ u tiên tiến AES Chuẩ n mã hóa dữ liệu tiên tiế n AES (Advanced Encryption Standard) một hệ mã khóa bí... 192 hoặc 256 bit (do đặt cho tên AES- 128, AES- 192, AES- 256 tư ơng ứng với độ dài khóa sử dụng) AES trở thành thuật tốn mã hóa phổ biến sử dụng khóa mã đối xứng để mã hóa giải mã AES có