Здравствуйте!
Требуется реализовать алгоритм блочного шифрования ГОСТ 28147-89 в следующих режимах
шифрования: режим простой замены; режим гаммирования; режим гаммирования с обратной связью.
Программа должна запрашивать имя входного и выходного файлов,
ключ, вектор инициализации (синхропосылку), режим работы
(зашифрование или расшифрование), режим шифрования.
У меня прежде всего вопрос по организации данных..
В соответствии с алгоритмом
размер блока – 64 бита;
- размер ключа – 256 бит. Ключ представляется как массив из
восьми 32-битных подключей K={K0,K1,…,K7};
- количество S-блоков – 8. Каждый S-блок (в терминах стандарта –
узел замены) содержит 16 четырехбитных значений, представляющих
собой произвольную перестановку чисел от 0 до 15. Совокупность всех
S-блоков можно представить в виде матрицы (таблицы замен) размером 8 на 16.
Скажите пожалуйста, какие типы правильнее использовать для массива ключей и таблицы замен?
Блочное шифрование данных, алгоритм ГОСТ 28147-89 |