Dalam kriptografi, kotak-S (kotak substitusi) adalah komponen dasar yang melakukan pertukaran (substitusi) nilai dalam kriptografi kunci simetris. Dalam penyandian blok, kotak ini biasa dipakai untuk menyembunyikan hubungan antara kunci dan teks tersandi (prinsip pengacakan Shannon).
Secara umum, kotak-S menerima beberapa bit masukan, m, dan mengubahnya ke beberapa bit keluaran, n, dengan catatan bahwa n tidak harus sama dengan m.[1] Kotak-S berukuran m × n dapat diimplementasikan sebagai tabel pencarian. Tabel tetapan (konstan) biasa dipakai, seperti Standar Enkripsi Data (DES), tetapi juga bisa dibuat secara dinamis sesuai kunci, seperti Blowfish dan Twofish.
Salah satu contoh tabel tetapan adalah kotak-S DES (S5) yang memetakan masukan 6 bit ke keluaran 4 bit sebagai berikut.
S5 | Empat bit tengah | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Bit-bit terluar | 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 |
Bila diberikan masukan 6 bit, keluaran 4 bit ditemukan dengan memilih baris dari bit-bit terluar (bit pertama dan terakhir) dan memilih kolom dari empat bit tengah. Misalnya, 011011 memiliki bit-bit terluar 01 dan empat bit tengah 1101 sehingga keluarannya adalah 1001.[2]
Delapan kotak-S DES telah menjadi subjek penelitian selama bertahun-tahun karena kekhawatiran tentang keberadaan pintu belakang, yaitu celah yang hanya diketahui oleh pembuatnya. Kriteria desain kotak-S akhirnya dipublikasikan (Coppersmith, 1994) setelah penemuan analisis kriptografi diferensial yang menunjukkan bahwa kotak-S tersebut telah diatur untuk meningkatkan kekebalan khusus terhadap serangan ini. Biham dan Shamir menemukan bahwa perubahan kecil terhadap kotak-S dapat melemahkan DES secara signifikan.[3]
Kotak-S yang kombinasi linear bit keluarannya dihasilkan dari fungsi bengkok dari bit masukan disebut kotak-S sempurna.[4]