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 54 bit bên trong
0000000100100011010001010110011110001001101010111100110111101111
2 bit ngoài000010110001000001011110101011011010000101001111111101000011101001
011110101100101100010001111101000101010000111110100011100110000110
100100001000011011101011010111100011111001110001010110001100001110
111011100011000111000111100010110101101111000010011010010001010011

Đư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