Mụ tả mức cao của thuật toỏn

Một phần của tài liệu Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi (Trang 54 - 56)

2.4.3.1. Mở rộng khúa (KeyExpansion)

Là quỏ trỡnh tạo cỏc vũng khúa từ khúa chớnh, mỗi khúa con chứa 4 byte.

a. Quỏ trỡnh mó húa

Bao gồm cỏc bước: 1. Khởi động vũng lặp

AddRoundKey - Mỗi cột của trạng thỏi đầu tiờn lần lượt được kết hợp với một khúa con theo thứ tự từ đầu dóy khúa.

2. Vũng lặp

Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn

1. SubBytes - đõy là phộp thế (phi tuyến) trong đú mỗi byte trong trạng thỏi sẽ được thế bằng một byte khỏc theo bảng tra (Rijndael S-box). 2. ShiftRows - dịch chuyển, cỏc hàng trong trạng thỏi được dịch vũng theo số bước khỏc nhau.

3. MixColumns - quỏ trỡnh trộn làm việc theo cỏc cột trong khối theo một phộp biến đổi tuyến tớnh.

4. AddRoundKey 3. Vũng lặp cuối

1. SubBytes 2. ShiftRows 3. AddRoundKey

Tại chu trỡnh cuối thỡ bước MixColumns khụng thực hiện.

b. Bước SubBytes

Cỏc byte được thế thụng qua bảng tra S-box. Đõy chớnh là quỏ trỡnh phi tuyến của thuật toỏn. Hộp S-box này được tạo ra từ một phộp biến đổi khả nghịch trong trường hữu hạn GF (28) cú tớnh chất phi tuyến. Để chống lại cỏc tấn cụng dựa trờn cỏc đặc tớnh đại số, hộp S-box này được tạo nờn bằng cỏch kết hợp phộp nghịch đảo với một phộp biến đổi affine khả nghịch. Hộp S-box này cũng được chọn để trỏnh cỏc điểm bất động (fixed point).

c. Bước ShiftRows

Cỏc hàng được dịch vũng một số bước nhất định. Đối với AES, hàng đầu được giữ nguyờn. Mỗi byte của hàng thứ 2 được dịch vũng trỏi một vị trớ. Tương tự, cỏc hàng thứ 3 và 4 được dịch vũng 2 và 3 vị trớ. Do vậy, mỗi cột khối đầu ra của bước này sẽ bao gồm cỏc byte ở đủ 4 cột khối đầu vào. Đối với Rijndael với độ dài khối khỏc nhau thỡ số vị trớ dịch chuyển cũng khỏc nhau.

d. Bước MixColumns

Bốn byte trong từng cột được kết hợp lại theo một phộp biến đổi tuyến tớnh khả nghịch. Mỗi khối 4 byte đầu vào sẽ cho một khối 4 byte ở đầu ra với tớnh chất là mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra. Cựng với bước ShiftRows, MixColumns đó tạo ra tớnh chất khuyếch tỏn cho thuật toỏn. Mỗi cột được xem như một đa thức trong trường hữu hạn và được nhõn với đa thức (modulo ). Vỡ thế, bước này cú thể được xem là phộp nhõnma trận trong trường hữu hạn.

Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn

e. Bước AddRoundKey

Tại bước này, khúa con được kết hợp với cỏc khối. Khúa con trong mỗi chu trỡnh được tạo ra từ khúa chớnh với quỏ trỡnh tạo khúa con Rijndael; mỗi khúa con cú độ dài giống như cỏc khối. Quỏ trỡnh kết hợp được thực hiện bằng cỏch XOR từng bớt của khúa con với khối dữ liệu.

Một phần của tài liệu Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi (Trang 54 - 56)