A criptografia de chave simétrica é onipresente no mundo de hoje - armazenando e transmitindo informações, e-mail e até mesmo assistindo a vídeos no YouTube. Cifras simétricas fortes incluem S-box bem formadas. Nesta postagem, vou mostrar as diferentes maneiras de criar S-box e compará-las.
1. O que é bloco S
O bloco S é uma função que pega n bits na entrada, os transforma de acordo com um determinado algoritmo e retorna m bits na saída. Caixas S são amplamente utilizadas na maioria das cifras de bloco. Eles podem diferir em tamanhos de entrada e saída (n e m), podem ser gerados deterministicamente ou aleatoriamente e também podem ser imutáveis (fixos) ou gerados com base em uma chave. As S-boxes podem ser representadas como uma tabela (como no DES) ou como uma função booleana algébrica (como no AES). Critérios importantes na composição de uma S-box são sua não linearidade e o critério de propagação de funções booleanas. Para ver a S-box como uma sequência de funções booleanas, primeiro entendemos como as funções booleanas geralmente se relacionam com a criptografia.
2. Funções booleanas em criptografia
Em sistemas de criptografia tradicionais, que traduzem uma mensagem aberta em uma criptografada com uma chave secreta, o aparato de funções booleanas é amplamente utilizado. O principal requisito para eles é que eles complicem a descriptografia da mensagem por uma pessoa que não é seu destinatário.
Para ilustrar o uso de funções booleanas, apresentamos um esquema de criptografia de fluxo, em que cada caractere de entrada é imediatamente convertido em um caractere de texto cifrado. O texto original, a chave e o texto cifrado são cadeias binárias do mesmo comprimento. Na prática, o remetente e o receptor costumam escolher uma sequência pseudo-aleatória em vez de uma chave na cifra Vernam, que é gerada a partir de uma chave secreta curta de acordo com o algoritmo acordado. Essa sequência é chamada de keystream ou gama .

, (Linear Feedback Shift Register, LSFR).
. ( ) ( ). LSFR , , LSFR.
, , L. ,
,
.

, .
3.
- 2 (
),
-
.
S- :
:
, S- :
- (
).
.
.
( ) :
2.
, :
, () . "".
4.
, , .
,
- .
:
(
-
,
-
.
- ,
.
- ,
- . -
.
( )
.
,
,
-
,
- ,
. -.
- .
5.-
- - , . - .
, -, .
-
,
- .
,
.
,
,
.
.
6. -
6.1
-
.
1.
: .
: - - 8 .
: , :
2.
: -
,
,
- -.
: -
.
:
( -)
. . 4 6 . - "" (, ), .
3.
: ,
,
- .
: - , .
:
,
-
-
.
- , -. .
6.2 -
"" - , . , , , .
, - 6 . . . - , , - .
- , . - , -
. .
.
, , .
, ,
.
, .
- -, -. . . - ( ).
- , - . , , - .
. -, - . (, 6
). -, - .
4. ( -)
:
- (
- )
,
,
:
(1.1) (1.2)
,
:
-
.
:
(1.1) (1.2)
,
:
1.1
,
,
1.2 1
.
.
.
, (3),
,
- -, ; (1).
, 4 . - (. - ), (4) - , , .
7. S-
S- - ,
, ,
. ,
S-, . S-.
S-, 8- .

1. S-, ,

2. S-, ,
1 2, , S-, , S- (98 100).

3. S-, ,
, S- , S- - ( 2) (. 3). , 98, S- .

4. S-, -,
S-, - (. 4). S- 112, ( , 104). 20 S- 100, S-, - .
, - S- .
, , - S- (80, ). S- (, ) S- .
8.
, S- . , , . S-, -.
. -
Anna Grocholewska-Czurylo and Janusz Stoklosa - Random Generation of S-Boxes for Block Ciphers
Meier, W., Staffelbach, O - Critérios de não linearidade para funções criptográficas
Wikipedia - S-box (ciência da computação)
Wikipedia - S-box
Wikipedia - Funções Bent