S-box

Trong mật mã học, S-box (substitution-box) là thành phần cơ bản của thuật toán mã khóa đối xứng, được dùng để thực hiện các phép thay thế phi tuyến. Trong mã khối, chúng thường được sử dụng để che giấu mối quan hệ giữa khóa mật mã và bản mã — tính hỗn loạn do Shannon đề xuất.

Nhìn chung, S-box lấy m bit đầu vào và biến đổi chúng thành n bit đầu ra, trong đó n không nhất thiết phải bằng m. Một S-box kích thước m × n có thể được biểu diễn như một bảng tra với 2 m chuỗi n bit. Chúng ta thường sử dụng các  bảng chuẩn đã được công bố, như trong Data Encryption Standard (DES), nhưng trong một số mã, các bảng được tạo động từ khóa (ví dụ: thuật toán mã hóa Blowfish và Twofish).

Một ví dụ điển hình cho bảng chuẩn là S-box trong DES (S 5), 6 bit đầu vào được ánh xạ thành 4 bit đầu ra: 
 S 5  4 bit bên trong  0000  0001  0010  0011  0100  0101  0110  0111  1000  1001  1010  1011  1100  1101  1110  1111  2 bit ngoài  00  0010  1100  0100  0001  0111  1010  1011  0110  1000  0101  0011  1111  1101  0000  1110  1001  01  1110  1011  0010  1100  0100  0111  1101  0001  0101  0000  1111  1010  0011  1001  1000  0110  10  0100  0010  0001  1011  1010  1101  0111  1000  1111  1001  1100  0101  0110  0011  0000  1110  11  1011  1000  1100  0111  0001  1110  0010  1101  0110  1111  0000  1001  1010  0100  0101  0011 
Đưa vào 6 bit, 4 bit đầu ra sẽ thu được bằng cách chọn chỉ số hàng bằng hai bit ngoài (bit đầu tiên và bit cuối cùng) và chỉ số cột sử dụng bốn bit bên trong. Ví dụ: đầu vào " 0 1101 1 " có các bit ngoài " 01 " và các bit bên trong "1101"; đầu ra tương ứng sẽ là "1001".

S-box thứ 8 của DES là chủ đề của các nghiên cứu trong nhiều năm vì lo ngại rằng một backdoor — một lỗ hổng mà chỉ những người tạo ra nó biết — có thể đã được đính trong mật mã. Tiêu chí thiết kế S-box cuối cùng đã được công bố (trong ) sau khi tái khám phá công khai về thám mã vi phân, cho thấy rằng chúng đã được điều chỉnh cẩn thận để tăng sức đề kháng chống lại cuộc tấn công cụ thể này. Biham và Shamir nhận thấy rằng ngay cả những sửa đổi nhỏ đối với hộp chữ S cũng có thể làm suy yếu đáng kể DES.

Đã có rất nhiều nghiên cứu về thiết kế S-box tốt, và người ta hiểu nhiều hơn về việc sử dụng chúng trong mật mã khối so với khi DES được phát hành.
Bất kỳ S-box nào trong đó bất kỳ tổ hợp tuyến tính nào của các bit đầu ra được tạo ra bởi chức năng uốn cong của các bit đầu vào được gọi là một S-box hoàn hảo.RFC 4086.
Section 5.3 "Using S-Boxes for Mixing"

Tham khảo

 Liên kết ngoài 
 A literature survey on S-box design
 John Savard's "Questions of S-box Design"
 "Substitution Box Design based on Gaussian Distribution"

Thể loại:Thuật toán mật mã
Thể loại:S-box