Chuẩn Mã hóa Cấp cao

Thuật toán mã hóa đối xứng phổ biến và được chấp nhận rộng rãi hơn có thể gặp ngày nay là Tiêu chuẩn mã hóa nâng cao (AES). Nó được tìm thấy nhanh hơn ít nhất sáu lần so với DES gấp ba lần.

Cần thay thế cho DES vì kích thước khóa của nó quá nhỏ. Với sức mạnh tính toán ngày càng tăng, nó được coi là dễ bị tấn công trước cuộc tấn công tìm kiếm khóa toàn diện. Triple DES được thiết kế để khắc phục nhược điểm này nhưng nó bị chậm.

Các tính năng của AES như sau:

  • Mật mã khối đối xứng khóa đối xứng
  • Dữ liệu 128 bit, khóa 128/192/256 bit
  • Mạnh hơn và nhanh hơn Triple-DES
  • Cung cấp đầy đủ thông số kỹ thuật và chi tiết thiết kế
  • Phần mềm có thể triển khai trong C và Java

Hoạt động của AES

AES là một dạng lặp chứ không phải là mật mã Feistel. Nó dựa trên 'mạng thay thế-hoán vị'. Nó bao gồm một loạt các hoạt động được liên kết, một số liên quan đến việc thay thế các đầu vào bằng các đầu ra cụ thể (thay thế) và một số khác liên quan đến việc xáo trộn các bit xung quanh (hoán vị).

Điều thú vị là AES thực hiện tất cả các phép tính của nó trên byte chứ không phải bit. Do đó, AES xử lý 128 bit của khối văn bản rõ là 16 byte. 16 byte này được sắp xếp thành bốn cột và bốn hàng để xử lý dưới dạng ma trận -

Không giống như DES, số vòng trong AES có thể thay đổi và phụ thuộc vào độ dài của khóa. AES sử dụng 10 vòng cho các phím 128 bit, 12 vòng cho các phím 192 bit và 14 vòng cho các phím 256 bit. Mỗi vòng này sử dụng một khóa tròn 128 bit khác nhau, được tính từ khóa AES ban đầu.

Sơ đồ cấu trúc AES được đưa ra trong hình minh họa sau:

Quy trình mã hóa

Ở đây, chúng tôi giới hạn mô tả về một vòng mã hóa AES điển hình. Mỗi vòng bao gồm bốn quy trình phụ. Quy trình của vòng đầu tiên được mô tả dưới đây -

Thay thế Byte (SubByte)

16 byte đầu vào được thay thế bằng cách tra cứu một bảng cố định (hộp S) được đưa ra trong thiết kế. Kết quả là trong một ma trận gồm bốn hàng và bốn cột.

Shiftrows

Mỗi hàng trong số bốn hàng của ma trận được chuyển sang trái. Bất kỳ mục nào 'rơi ra' sẽ được chèn lại ở phía bên phải của hàng. Ca được thực hiện như sau:

  • Hàng đầu tiên không bị dịch chuyển.

  • Hàng thứ hai được dịch chuyển một (byte) vị trí sang trái.

  • Hàng thứ ba được chuyển hai vị trí sang trái.

  • Hàng thứ tư được chuyển ba vị trí sang trái.

  • Kết quả là một ma trận mới bao gồm 16 byte giống nhau nhưng được dịch chuyển đối với nhau.

MixColumns

Mỗi cột bốn byte hiện được biến đổi bằng cách sử dụng một hàm toán học đặc biệt. Hàm này nhận bốn byte của một cột đầu vào và xuất ra bốn byte hoàn toàn mới, thay thế cột ban đầu. Kết quả là một ma trận mới khác bao gồm 16 byte mới. Cần lưu ý rằng bước này không được thực hiện trong vòng cuối cùng.

Addroundkey

16 byte của ma trận bây giờ được coi là 128 bit và được XOR thành 128 bit của khóa tròn. Nếu đây là vòng cuối cùng thì đầu ra là bản mã. Nếu không, 128 bit kết quả được hiểu là 16 byte và chúng ta bắt đầu một vòng tương tự khác.

Quy trình giải mã

Quá trình giải mã của một bản mã AES tương tự như quá trình mã hóa theo thứ tự ngược lại. Mỗi vòng bao gồm bốn quy trình được tiến hành theo thứ tự ngược lại -

  • Thêm phím tròn
  • Trộn các cột
  • Chuyển hàng
  • Thay thế byte

Vì các quy trình phụ trong mỗi vòng diễn ra theo cách ngược lại, không giống như Feistel Cipher, các thuật toán mã hóa và giải mã cần được triển khai riêng biệt, mặc dù chúng có liên quan rất chặt chẽ.

Phân tích AES

Trong mật mã ngày nay, AES được chấp nhận và hỗ trợ rộng rãi trong cả phần cứng và phần mềm. Cho đến nay, không có cuộc tấn công phân tích mật mã thực tế nào chống lại AES được phát hiện. Ngoài ra, AES được tích hợp tính linh hoạt về độ dài khóa, cho phép mức độ 'kiểm chứng trong tương lai' chống lại sự tiến bộ trong khả năng thực hiện tìm kiếm toàn diện.

Tuy nhiên, đối với DES, bảo mật AES chỉ được đảm bảo nếu nó được triển khai chính xác và quản lý khóa tốt được sử dụng.