Thuật toán mã hóa khóa bí mật AES

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 28)

Thuật toán mã hóa tiên tiến AES [17] là một thuật toán mã khóa bí mậtdo hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen đề xuất ra và được Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ NIST chọn làm tiêu chuẩn liên bang, có hiệu lực từ ngày 26 tháng 5 năm 2002. AES cho phép xử lý các khối dữ liệu đầu vào có kích thước 128 bit và sử dụng các khóa có độ dài 128, 192 hoặc 256 bit. Các thông số chính của AES được tóm tắt như sau:

Bảng 1.3 Các thông số của thuật toán AES

Thông số AES-128 AES-192 AES-256

Chiều dài khóa (bit) 128 192 256

Kích thước khối (bit) 128 128 128

Số vòng mã (vòng) 10 12 14

Chiều dài khóa phụ (bit) 128 128 128

Chiều dài khóa mở rộng (bit) 176 208 240

Cơ sở toán học và nguyên lý làm việc của AES:

Cấu trúc cơ sở và nguyên lý làm việc của thuật toán AES bao gồm bốn giai đoạn tạo nên một vòng lặp với 10 lần lặp đối với AES-128, 12 lần với AES-192 và 14 lần cho AES- 256, như được mô tả trong Hình 1.4.

15

Trong đó:

- Giai đoạn 1: Biến đổi “SubButyes” là biến đổi các byte trong khối trạng thái bằng

cách sử dụng một bảng thay thế byte phi tuyến S-box.

- Giai đoạn 2: Biến đổi “ShiftRows” là dịch chuyển quay vòng (hoán vị) các byte

trong một khối.

- Giai đoạn 3: Biến đổi “MixColumns” là biến đổi tất cả các cột thành các cột mới

bằng cách nhân cột đó với một đa thức cố định.

- Giai đoạn 4: Biến đổi “AddRoundkey” là phép XOR từng bit của khối trạng thái

với Roundkey.

Thuật toán AES sử dụng mạng thay thế và hoán vị. Hầu hết các phép toán trong thuật toán AES đều thực hiện trong một trường hữu hạn của các byte. Mỗi khối dữ liệu 128 bit đầu vào được chia thành 16 byte, có thể xếp thành 4 cột, mỗi cột 4 phần tử, hay là một ma trận 4x4 của các byte, và nó được gọi là ma trận trạng thái (State). Trong quá trình thực hiện thuật toán các toán tử tác động để biến đổi ma trận trạng thái này. AES sử dụng quá trình tạo khóa con để mở rộng khóa từ khóa chính cho các vòng trong quá trình thực hiện mã hóa. Mỗi khóa con cũng là một cột gồm 4 byte. AES có thể dễ dàng thực hiện ở tốc độ cao bằng phần cứng hoặc bằng phần mềm mà không đòi hỏi tốn nhiều bộ nhớ.

Độ phức tạp của AES:

Về các nguyên lý thiết kế mật mã khối, người ta đã ghi nhận 2 nguyên tắc cơ sở sau để có độ bảo mật cao, đó là việc tạo ra tính hỗn loạn và tính khuếch tán.

Tính hỗn loạn (Confusion): Sự phụ thuộc của bản mã đối với bản rõ phải thực sự phức

tạp để gây rắc rối, cảm giác hỗn loạn đối với kẻ tấn công có ý định phân tích tìm qui luật để phá mã. Có nghĩa là quan hệ hàm số của bản mã và bản rõ là phi tuyến (non-linear). Trong thuật toán AES, tính hỗn loạn này được thể hiện bằng việc thực hiện phép thay thế với bảng S-box.

Tính khuếch tán (Diffusion): Sự khuếch tán những mẫu văn bản mang đặc tính thống

kê (gây ra do dư thừa của ngôn ngữ) lẫn vào toàn bộ văn bản. Nhờ đó tạo ra khó khăn cho kẻ tấn công trong việc dò phá mã trên cơ sở thống kê các mẫu lặp lại cao. Sự thay đổi của một bit trong một bản rõ phải dẫn tới sự thay đổi hoàn toàn trong bản mã tạo ra.

Một cách đơn giản nhất, tính hỗn loạn có thể được thực hiện bằng phép thay thế (substitution) trong khi tính khuếch tán được tạo ra bằng các phép chuyển đổi chỗ hay hoán vị. Toàn bộ sơ đồ biến đổi mật mã sẽ là một lưới các biến đổi thay thế-hoán vị.

Độ an toàn của AES:

Theo số liệu trong Bảng 1.2 ta thấy, thiết kế AES với các chiều dài khóa là 128, 192 hoặc 256 bit mang đến cho thuật toán này một độ an toàn rất cao đối với các tấn công và khả năng tính toán của máy tính hiện nay.

16 Phương pháp thường d ng nhất để tấn công các dạng mã hóa khối là thử các kiểu tấn công lên phiên bản có số vòng thu gọn. Đối với khóa 128, 192 và 256 bit, AES có tương ứng 10, 12 và 14 vòng. Tại thời điểm năm 2006, những tấn công thành công được biết đến là 7 vòng đối với khóa 128 bit, 8 vòng với khóa 192 bit và 9 vòng với khóa 256 bit.

Các cuộc tấn công phục hồi khóa đầu tiên trên các AES đầy đủ là do Andrey Bogdanov và cộng sự đưa ra và xuất bản vào năm 2011 [55]. Tấn công này là một dạng tấn công Biclique và nhanh hơn bốn lần so với tấn công vét cạn. Nó đòi hỏi 2126,1 tính toán phức tạp để phục hồi một khoá AES-128. Với AES-192 và AES-256, thì cần tương ứng 2189,7 và 2254,4 tính toán phức tạp.

Như vậy, "thiết kế và độ dài khóa của thuật toán AES (128, 192 và 256 bit) là đủ an toàn để bảo vệ các thông tin được xếp vào loại TỐI MẬT (secret). Các thông tin TUYỆT MẬT (top secret) sẽ phải d ng khóa 192 hoặc 256 bit” [56].

Vấn đề còn lại của thuật toán AES là vấn đề lưu trữ và trao đổi khóa bí mật. Mỗi khi cần trao đổi khóa qua mạng thì yêu cầu một đường truyền bảo mật được thiết lập (Hình 1.5) hoặc phải áp dụng một cơ chế an toàn để trao đổi khóa trên đường truyền thông, ví dụ giao thức trao đổi khóa Diffie–Hellman [20].

Hình 1.5 Mô hình mã hóa khóa bí mật

Một phần của tài liệu Luận án tiến sĩ kỹ thuật điện tử bảo mật bitstream FPGA (Trang 28)