1 .6 Mô hình an toàn mạng
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.
30
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.
31
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.
32
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
33
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 A B B A.
Hình 2.12: Vòng mật mã AES