Mạng thay thế-hoán vị

Mạng thay thế-hoán vị (Substitution-Permutation Network - SPN)

sửa

Mạng thay thế-hoán vị (SPN) là một cấu trúc cơ bản được sử dụng trong nhiều giải thuật mã hóa khối hiện đại, bao gồm cả DES, AES, và Blowfish. SPN hoạt động bằng cách kết hợp hai phép toán cơ bản:

  • Thay thế (Substitution): Mỗi bit đầu vào được thay thế bằng một bit khác theo một bảng thay thế cố định (S-box). Bảng S-box được thiết kế để tạo ra sự nhiễu loạn (confusion) trong dữ liệu, khiến cho việc phân tích mật mã trở nên khó khăn hơn.
  • Hoán vị (Permutation): Các bit đầu vào được sắp xếp lại theo một thứ tự cố định. Hoán vị được sử dụng để khuếch tán (diffusion) dữ liệu, khiến cho các thay đổi nhỏ ở đầu vào dẫn đến những thay đổi lớn ở đầu ra.

SPN thường được lặp lại nhiều lần trong một giải thuật mã hóa khối. Mỗi vòng lặp sẽ sử dụng một bảng S-box và một hoán vị khác nhau, giúp tăng cường tính bảo mật của giải thuật.

Ưu điểm của SPN:

  • Dễ dàng thiết kế và triển khai
  • Hiệu quả cao
  • Có thể mở rộng dễ dàng

Nhược điểm của SPN:

  • Có thể bị tấn công bằng phương pháp phân tích vi sai (differential cryptanalysis)
  • Dễ bị tấn công bằng phương pháp tấn công bằng kênh bên (side-channel attack)

Ví dụ về SPN:

Mạng Feistel là một ví dụ điển hình của SPN. Mạng Feistel được sử dụng trong giải thuật DES và nhiều giải thuật mã hóa khối khác. Mạng Feistel bao gồm 16 vòng lặp, mỗi vòng lặp bao gồm:

  • Thay thế các bit đầu vào bằng S-box
  • Hoán vị các bit đầu vào
  • Kết hợp đầu ra của vòng lặp trước với đầu vào của vòng lặp hiện tại

Một số ứng dụng của SPN:

sửa
  • Mã hóa dữ liệu
  • Bảo mật giao tiếp mạng
  • Xác thực người dùng
  • Chữ ký điện tử

Tìm hiểu thêm:

sửa
  • https://simple.wikipedia.org/wiki/Substitution-permutation_network
  • https://en.wikipedia.org/wiki/Data_Encryption_Standard
  • https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
  • https://en.wikipedia.org/wiki/Blowfish_%28disambiguation%29