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.[1] 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 BlowfishTwofish).

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".[2]

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 Coppersmith 1994) 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.[3]

Tham khảo sửa

  1. ^ Chandrasekaran, J.; và đồng nghiệp (2011). “A Chaos Based Approach for Improving Non Linearity in the S-Box Design of Symmetric Key Cryptosystems”. Trong Meghanathan, N.; và đồng nghiệp (biên tập). Advances in Networks and Communications: First International Conference on Computer Science and Information Technology, CCSIT 2011, Bangalore, India, January 2-4, 2011. Proceedings, Part 2. Springer. tr. 516. ISBN 978-3-642-17877-1.
  2. ^ Buchmann, Johannes A. (2001). “5. DES”. Introduction to cryptography . New York, NY [u.a.]: Springer. tr. 119–120. ISBN 978-0-387-95034-1.
  3. ^ RFC 4086. Section 5.3 "Using S-Boxes for Mixing"

Liên kết ngoài sửa