2017-02-17 31 views
1

Я работаю над шифрованием & дешифрование данных с использованием AES-CCM.S-box в AES CCM 128 бит

Изучая AES, я наткнулся на слово под названием S-Box.

Что такое S-Box, а также отношения с AES? Как он может быть рассчитан? Это зависит от симметричного ключа или нет?

Как будет генерироваться шифровальный текст в AES-CCM 128 бит?

ответ

2

S-Boxes - это система, которая используется в симметричных криптографических алгоритмах для замены и скрытия взаимосвязи между ключом и текстом, который вы хотите шифровать.

Вы можете увидеть больше в этом article. Здесь вы найдете информацию:

Существуют различные типы шифров в соответствии с их дизайном [68]. Одна из них - это Substitution-PermutationNetwork (SPN), которая генерирует зашифрованный текст, применяя раунды замещения и перестановки к исходному тексту и симметричному ключу для создания путаницы. Для этого необходимо использовать ящики подстановки (S-box) и блоки перестановки (P-box). S-боксы заменяют друг на друга битами блока входного текста в раунде с битами выходного текста. Этот вывод принимается как вход в P-боксы, а затем он переставляет все биты, которые будут использоваться как вход S-box в следующем раунде.

1

Как сказано в @CGG, S-боксы являются компонентом сети Substitution-Permutation. У Wikipedia entry есть хорошие диаграммы, которые помогут объяснить, как они работают.

Подумайте о S-box как о простом шифровании замещения - A = 1, B = 2 и т. Д. В SPN вы запускаете ввод через S-box для замены новых значений, затем вы запускаете этот результат через P-box (перестановка) для распределения модифицированных битов до максимально возможного количества S-блоков. Этот цикл повторяется, чтобы распространить изменения на весь текст шифрования.

В общем, S-box заменяет входные биты одинаковым количеством выходных бит. Этот обмен должен быть 1: 1, чтобы обеспечить обратимость (т. Е. Вы должны иметь возможность отменить операцию для дешифрования), использовать эффект лавины (поэтому изменение 1 бит входных изменений происходит примерно на половине выходных бит) и должно зависеть от каждый бит ввода.