tìm hiểu và cài đặt thuật toán mã hoá aes 256

16 290 0
tìm hiểu và cài đặt thuật toán mã hoá aes 256

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG HỌC VIỆN KỸ THUẬT MẬT KHOA MẬT - - BÁO CÁO TÌM HIỂU CÀI ĐẶT THUẬT TOÁN HOÁ AES 256 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 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àn AES 10 Đánh giá chung 10 Các tiêu chuẩn thiết kế an toàn AES 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ế độ 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ì khoa học mật đượ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 không đơn hố giải thơng tin 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 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ự giải liệu quan trọng Nó giúp sinh viên tìm hiểu sâu thuật toán giải 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 thuật toán hoá AES 256 Phần 1: Tổng quan AES Chuẩn hóa dữ liệ u tiên tiến AES Chuẩ n hóa dữ liệu tiên tiế n AES (Advanced Encryption Standard) một hệ khóa bí mật có tên Rijdael (do hai nhà mật 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ệ 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 hóa phổ biến sử dụng khóa đối xứng để hóa giải 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 phương thức “mập mờ“ (confusion) phương thức “khuếch tán“ (diffusion), hàm thứ tư thiết kế để hóa liệu Quy trình 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ỳ hoá sử dụng thủ tục hoá Mỗi chu kỳ hoá gồm thao tác biến đổi: SubBytes, ShiftRows, MixColumns AddRoundKey  Thực chu kỳ 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  GF28  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ật toán AES nhận vào khoá 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àn AES Đá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 hóa 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àn AES 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 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 việc đạt hiệ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 khối sức kháng cự khối nhièu vòng chống lại cơng thám tăng lên với số vòng khối Số vòng lặp khối xác định cách xem xét số tối đa vòng 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ố 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ố 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á 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á 11 Phần 4: Chế độ hoạt động OFB Giới thiệu chế độ hoạt động AES Mật 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 khối xử lý khối Có nhiều chế độ hoạt động khác cho khối Sau AES đời, NIST định nghĩa chế độ hoạt động: - Chế độ sách điện tử (EBC) - Chế độ xích khối (CBC) - Chế độ phản hồi đầu (OFB) - Chế độ phản hồi (CFB) - Chế độ đếm (CTR) Ký hiệu: EK: hàm khối E tham số hoá khoá K 𝐸𝐾−1 ( DK): hàm giải 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ế độ OFB Chế độ dòng OFB sử dụng cho ứng dụng cơng lan sai cần phải tránh Chế độ cho phép hố khối có kích thước khác đầu hàm E phản hồi Có hai phiên OFB sử dụng 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ật toán 1: Chế độ OFB phản hồi đầy đủ 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 𝑐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 r-bit 𝑐𝑗 ) d) 𝐼𝑗+1 ← 𝑂𝑗 (cập nhật đầu vào khối cho khối tiếp sau) Giải Đầu vào: Khoá K có k-bit, n-bit IV, khối 𝑐1 , … 𝑐𝑢 khối có r-bit Đầu ra: khối rõ, khối có r-bit 𝐼1 ← 𝐼𝑉, 𝑣ớ𝑖 ≤ 𝑗 ≤ 𝑢: 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 𝑡𝑗 , 𝑂𝑗 , 𝐼𝑗 tính 13 Thuật toán 2: Chế độ OFB phản hồi đầu r-bit 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 r-bit 𝑐𝑗 ) d) 𝐼𝑗+1 ← (2𝑟 ∗ 𝐼𝑗 + 𝑡𝑗 )𝑚𝑜𝑑2𝑛,, ( dịch đầu 𝑡𝑗 đầu cuối bên trái ghi) Đầu ra: Các khối 𝑐1 , … 𝑐𝑢 Giải Đầu vào: Khố K có k-bit, n-bit IV, khối 𝑐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õ 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ự 𝑐𝑗 ảnh hưởng tới việc giải ký tự đó, xác vị trí 𝑐𝑗 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 Độ an toàn chế độ OFB - Các mẫu rõ che dấu - Đầu vào pháp khối ngẫu nhiên 14 - Nhiều thông báo 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 ả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ó

Ngày đăng: 19/05/2019, 20:59

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan