S-box je pojem z oboru kryptografie, kde označuje jeden ze základních prvků používaných pro výstavbu symetrických šifer. Název je zkratkou anglického substitution box (tedy doslova zhruba zaměňovací krabička). Z matematického hlediska se jedná o funkci , tedy z m-bitového prostoru do n-bitového prostoru. Obvykle je zadán a implementován jako vyhledávací tabulka. Některé šifry mají S-boxy pevně zadané (například DES), jiné je mají dynamicky generované na základě klíče (například Blowfish a Twofish).
Následující příklad je S-box S5 z šifry DES.
S5 | Prostřední čtyři bity vstupu | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Krajní bity | 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 |
V tomto článku byl použit překlad textu z článku S-box na anglické Wikipedii.