Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
800,6 KB
File đính kèm
Source_code.rar
(537 KB)
Nội dung
CàiđặtthuậttoánAES 128 Mục lục Page CàiđặtthuậttoánAES 128 DANH MỤC TỪ VIẾT TẮT DES AES NIST Data Encryption Standard Advanced Encryption Standard National Institute of Standards and Technology Page Càiđặtthuật tốn AES 128 DANH MỤC HÌNH ẢNH Page Càiđặtthuật tốn AES 128 LỜI NĨI ĐẤU Từ trước công nguyên người phải quan tâm tới việc làm để đảm bảo an tồn bí mật cho liệu, văn quan trọng, đặc biệt lĩnh vực như: quân sự, ngoại giao Ngày nay, với việc xuất máy tính, tài liệu văn thơng tin quan trọng số hóa xử lý máy tính truyền môi trường mạng, môi trường không an tồn truyền liệu Do cần có yêu cầu việc có giải pháp để bảo vệ an tồn cho liệu, thơng tin nhạy cảm, quan trọng ngày cấp thiết Môn học mậtmã giúp cho nghiêncứuthuật tốn mã hóa quan trọng, giúp đảm bảo an toàn cho liệu Page CàiđặtthuậttoánAES 128 CHƯƠNG 1: TỔNG QUAN VỀ THUẬT TỐN MÃ HĨA AES 1.1 LỊCH SỬ PHÁT TRIỂN Do tốc độ tính tốn máy tính ngày tăng cao thuật tốn DES trở nên khơng an tồn ( năm 1999 mạng máy tính gồm 100.000 máy giải mã thư tín mã hóa DES chưa đầy 24 giờ) Vì Cơng nghệ Hoa Kỳ chọn thuật tốn thay DES Năm 1997 NIST (trước NBS) thông báo thi tìm kiếm thuật tốn thay DES tổ chức hội thảo công khai tiêu chí cho chuẩn mã hóa nâng cao Độ dài khóa quan trọng Một hội đồng đặc biệt nhóm họp năm 1996 cho 90 bit độ dài khóa tối thiểu để đảm bảo an ninh liệu vòng 20 năm NIST yêu cầu cao định độ dài khóa tối thiếu 128bit Nhiều thuậttoán gửi đến, hội đồng xét tuyển thành lập làm việc qua nhiều vòng Cuối cùng, chọn thuật tốn có mức an toàn cao: RC6, MARS, Rijndael, Twofish, Spent Vào ngày 2-10-2000, NIST công bố người chiến thắng cho mục tiêu đề xuất Rijndael, Joan Daemen Vincent Rijmen Bỉ thiết kế Thiết kế họ đơn giản hợp lý, không dựa kiến trúc DES (DES sử dụng mạng Feistel, Rijndael sử dụng mạng thay hốn vị) Cuối cùng, Rijndael chọn có kết hợp tốt an tồn, kịch thực hiện, hiệu khả thực Người ta tin thuật tốn an toàn 20 năm Niềm tin dựa khơng gian khóa Rijndael lớn “Thuẫn” chống lại cơng tiếng biết Mặc dù tên AES Rijndael thường gọi thay cho thực tế thuật tốn khơng hồn tồn giống AES làm việc với khối liệu (đầu vào đầu ra) 128 bit khóa có độ dài 128,192 256 bít Rijndael làm việc với liệu khóa có độ dài bội số 32bit nằm khoảng từ 128 đến 256 bít Khối bổ sung chiều dài khóa Rijndael khơng đánh giá tiến trình lựa chọn AES, chúng khơng thông qua tiêu chuẩn FIPS hành 1.2 CẤU TRÚC AESAESmã khối khóa- lặp: Nó bao gồm việc áp dụng lặp ánh xạ vòng trạng thái Số vòng ký hiệu Nr phụ thuộc vào độ độ dài khóa Page Càiđặtthuật tốn AES 128 Hình 1: Cấu trúc AES Đầu vào, đầu ra: Là trạng thái biểu diễn dạng ma trận 4x4, ma trận kí tự biểu diễn dạng hexa Tầng phi tuyến: Áp dụng song song S-Box mà có tính chất phi tuyến Tầng trộn tuyến tính: Đảm báo khuếch tán cao qua nhiều vòng Tầng cộng khóa: Là phép XOR bit Round Key trạng thái trung gian Nguyên lý hoạt động AES biểu diễn hình Hình 2: Nguyên lý hoạt động AES 128bit Page CàiđặtthuậttoánAES 128 1.3 CÁC PHÉP TOÁN TRÊN BYTE 1.3.1 Cách biểu diễn byte Cho byte b7b6b5b4b3b2b1b0 ta có biểu diễn chọn cách tự biểu diễn này: • Một byte xâu bit có độ dài bit; ví dụ: 10111011; • Một byte viết kí tự hexa BF; • Một byte viết đa thức modulo bậc 43, tương ứng với vòng lặp sinh giá trị W tương ứng với giá trị W liên tiếp tạo nên khóa vòng (RoundKey), sau hàm mở rộng khóa thực xong ta có thêm 10 khóa vòng Qui tắc thực hàm mở rộng khóa sau: RoundKey(0) = key = w0 w1 w2 w3 Gán I =4 Vòng lặp : a Kiểm tra giá trị i có chia hết cho không: b Đúng (i chia hết cho 4) i Gán x = w[i-1] ii Gán x = RotWord(x) iii Gán x = SubWord(x) iv Gán x = x XOR Rcon[i/4] v Gán w[i] = x XOR w[i-4] vi I = I + vii I = 44 kết thúc c Sai (i không chia hết cho 4) i Gán x = w[i-1] ii Gán w[i] = x XOR w[i-4] iii I = I +1 iv I = 44 kết thúc Bảng giá trị Rcon i Rcon[i] 8d000000 01000000 02000000 04000000 08000000 10000000 20000000 Page CàiđặtthuậttoánAES 128 10 40000000 80000000 1b000000 36000000 1.4.1 Hàm RotWord Hàm RotWord dịch vòng cột cuối trạng thái Ở cột cuối trạng thái byte đầu tiền cột dịch vòng xuống thành byte cuối cột Ví dụ: 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 CF 4F 3C 09 1.4.2 Hàm SubWord Hàm SubWord hàm byte cho byte trạng thái biến đối tất định độc lập với byte khác trạng thái Nó tương tự hàm SubByte trình bày mục Mã hóa Điểm khác biệt hàm SubWord thay byte cột cuối trạng thái cũ để sử dụng làm cột trạng thái 1.4.3 Ví dụ chi tiết hàm tạo khóa: Ban đầu ta có Key: 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C Tiếp sau ta sử dụng cột cuối trạng thái key để thực RotWord 09 CF 4F 3C CF 4F 3C 09 Page 10 CàiđặtthuậttoánAES 128 1.5.2 Hàm ShiftRows Thực việc biến đổi dòng trạng thái Dòng khơng thay đổi, tất dòng khác bị dịch trái vòng theo byte Dòng thứ hai bị dịch vòng trái byte, dòng thứ bị dịch vòng trái byte dòng cuối bị dịch vòng trái byte Hình 7: Hoạt động hàm ShiftRow Ví dụ: ban đầu ta có trạng thái sau D 27 11 E0 B B B F 98 D F1 E5 E 41 52 A 30 E Hàng thứ ta không thực chuyển Hàng thứ thực dịch vòng trái byte ta kết sau B B 41 27 F Hàng thứ ta thực dịch vòng trái byte thu kết sau 5 D Hàng thứ ta thực dịch vòng trái byte thu kết sau A F E E Như sau thực phép ShiftRows từ trạng thái ban đâu ta thu trạng thái sau: Page 15 CàiđặtthuậttoánAES 128 D B F D 30 E0 B E B4 41 27 52 11 98 A E F1 E 1.5.3 Hàm MixColumns Phép biến đổi cột trạng thái độc lập với cột khác Giả sử c(x) đa thức cố định có bậc 3: c(x) = c0 + c1x + c2x2 + c3x3 Giả sử a(x) b(x) hai đa thức biến với hệ số c i di cách tương ứng (với 1