Доброго времени суток.
В качестве первой статьи решил выбрать разбор реализации отечественного шифра «кузнечик». Постараюсь объяснить сложные вещи простым языком.
В качестве рабочего примера моя реализация на C.
Используемые определения:
-
Блок — последовательность из 16ти байтов.
-
Мастерключ — основной ключ для расшифрования(длина 32байта). Из него мы получаем раундовые ключ. Сам ключ в преобразованиях не используется.
-
Раундовый ключ — ключ, получаемый из мастер ключа, используемый непосредственно внутри преобразований