Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Vai trò của S-boxes trong DES (Data Encryption Standard)

Tổng quan DES

DES (Data Encryption Standard) là mật mã khối khóa đối xứng (symmetric-key block cipher) do Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) phát triển. DES được công bố như FIPS 46 trên Federal Register tháng 1/1977. NIST quy định DES làm tiêu chuẩn cho phần mềm phi mật. DES là mật mã khối khóa đối xứng phổ biến nhất kể từ khi công bố. NIST sau đó ban hành FIPS 46-3 xác nhận Triple DES (lặp DES 3 lần) cho ứng dụng tương lai.

DES: khối 64-bit, khóa 56-bit khi triển khai (8 bit parity loại bỏ từ khóa 64-bit). DES là hệ thống mật mã đối xứng, cụ thể là mật mã Feistel 16 vòng (16-round Feistel cipher).

Quy trình mã hóa DES

Khối cần mã hóa trải qua: hoán vị ban đầu (Initial Permutation - IP) → phép tính phụ thuộc khóa phức tạp → hoán vị nghịch đảo của IP (IP⁻¹).

Hoán vị (Permutation): phép toán bởi hàm, chuyển phần tử vị trí j sang vị trí k. Phép tính phụ thuộc khóa biểu diễn qua hàm f (cipher function) và hàm KS (key schedule).

Vai trò của S-boxes trong hàm F

Thay thế (substitution) bao gồm nhóm 8 S-boxes. Mỗi S-box nhận 6 bit đầu vào, sinh ra 4 bit đầu ra:

  • Bit đầu và cuối của đầu vào box Sᵢ tạo số nhị phân 2-bit chọn 1 trong 4 thay thế (4 hàng trong bảng Sᵢ).
  • 4 bit giữa chọn 1 trong 16 cột.
  • Giá trị thập phân ô được chọn (hàng, cột) chuyển sang biểu diễn 4-bit làm đầu ra.

Ví dụ: S1, đầu vào 011001 → hàng 01 (1), cột 1100 (12). Giá trị hàng 1 cột 12 = 9 → đầu ra 1001.

Nguyên tắc thiết kế S-boxes

  • Mỗi S-box: 6 bit đầu vào, 4 bit đầu ra.
  • Không bit đầu ra nào quá gần hàm tuyến tính của bit đầu vào. (S-boxes là yếu tố phi tuyến tính DUY NHẤT của DES - nguồn sức mạnh).
  • Mỗi "hàng" của S-box phải chứa tất cả đầu ra có thể (ngẫu nhiên hóa đầu ra).
  • Nếu 2 đầu vào S-box khác nhau đúng 1 bit → đầu ra phải khác nhau ít nhất 2 bit.
  • Nếu 2 đầu vào khác nhau chính xác 2 bit giữa → đầu ra khác nhau ít nhất 2 bit.
  • Nếu 2 đầu vào khác nhau 2 bit đầu và đồng ý 2 bit cuối → 2 đầu ra phải khác nhau.