Computer >> Máy Tính >  >> Lập trình >> Lập trình

Vai trò của S-box trong DES là gì?

Trong DES, nó là một mật mã khối khóa đối xứng được giới thiệu bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST). DES được giới thiệu là FIPS 46 trong Cơ quan Đăng ký Liên bang vào tháng 1 năm 1977.

NIST có thể đại diện cho DES là tiêu chuẩn để sử dụng trong phần mềm chưa được phân loại. DES đã là mật mã khối khóa đối xứng được sử dụng rộng rãi nhất vì nó đã được xuất bản. NIST sau đó đã ban hành một tiêu chuẩn mới (FIPS 46-3) xác nhận việc sử dụng bộ ba DES (mật mã DES lặp lại ba lần) cho phần mềm trong tương lai.

DES có kích thước khối 64 bit và cần khóa 56 bit trong quá trình thực hiện (8 bit chẵn lẻ bị tước khỏi khóa 64 bit hoàn chỉnh). DES là một hệ thống mật mã đối xứng, đặc biệt là một mật mã Feistel 16 vòng.

Một khối được kết hợp phải tuân theo một IP hoán vị ban đầu và do đó để tính toán phụ thuộc vào khóa acomplex và cuối cùng là một hoán vị ngược với IP hoán vị ban đầu −1 .

Hoán vị là một phép toán được thực hiện bởi một hàm, thay đổi một phần tử ở vị trí j thành vị trí k. Tính toán phụ thuộc vào khóa có thể được biểu diễn đơn giản dưới dạng hàm f được gọi là hàm mật mã và một hàm KS được gọi là lịch khóa.

Vai trò của các hộp S trong hàm F là sự thay thế bao gồm một nhóm tám hộp S. Mỗi bit trong số đó lấy 6 bit làm đầu vào và tạo ra 4 bit như sau - Các bit đầu tiên và cuối cùng của đầu vào hộp Si tạo thành một số nhị phân 2 bit để chọn một trong bốn sự thay thế được đại diện bởi bốn hàng trong bảng cho Si.

Bốn bit ở giữa chọn một trong mười sáu cột. Giá trị thập phân trong ô được chọn bởi hàng và cột sau đó được chuyển đổi thành mô tả 4 bit của nó để tạo đầu ra. Ví dụ, trong S1, đối với đầu vào 011001, hàng là 01 và cột là 1100. Giá trị trong hàng 1, cột 12 là 9, do đó đầu ra là 1001.

Nguyên tắc của S-box như sau -

  • Mỗi hộp S phải có sáu bit đầu vào và bốn bit đầu ra.

  • Không có bit đầu ra nào của hộp S nên quá gần hàm tuyến tính của các bit đầu vào. (Các hộp S là phần tử phi tuyến tính duy nhất của DES và tính phi tuyến tính của chúng là điểm mạnh của thuật toán.)

  • Mỗi “hàng” của hộp S phải bao gồm tất cả các đầu ra có thể có. (Điều này ngẫu nhiên hóa đầu ra.)

  • Nếu hai đầu vào của hộp S thực sự khác nhau một bit, thì đầu ra của chúng phải khác nhau tối thiểu hai bit.

  • Nếu hai đầu vào của hộp S khác nhau cụ thể ở hai bit ở giữa và đầu ra của chúng phải khác nhau tối thiểu là hai bit.

  • Nếu hai đầu vào của hộp S khác nhau về hai bit đầu tiên và đồng ý về hai bit cuối cùng của chúng, thì hai đầu ra sẽ không giống nhau.