[an error occurred while processing this directive]
|
В ГОСТе используется 32 раунда, каждый раунд представляет собой следующие преобразования:
СМ1:=ADD_32(R(i),K(i)), где i – номер раунда, K – ключ, R – правая половина;
PM := PERMUTE_4x4(CM1);
LR:=ROL(PM,11);
R(i):=XOR(LR,L);
L(i):=R(i-1), L – левая половина;
Все функции здесь - комбинационные схемы, R и L – 32-х битные регистры. (они ещё называются N1 и N2).
Это и есть один раунд – он выполняет частичное зашифрование одного куска в 64 бита.
Таких раундов – 32.
Плюс раунд на первоначальную загрузку в R и L, плюс сохранения результата в выходных регистрах, плюс разрешение следующей загрузки.
Все функции выполняются в течение одного такта – 128 МГц. За 35 тактов производится 64 бита. Так что всё верно. :)
Но я бы лично использовал режим гаммирования – IMHO, более удобен для синхронного трафика E1. Загрузил вектор инициализации, подготовил гамму и наложил на поток. Тем более, что это заодно и улучшит спектр сигнала – при качественном начальном векторе и ключевом материале распределение сигнала близко к равномерному.
Сделать устройства зашифрования – это не сложно, значительно сложнее реализовать протокол установление соединения. Почитайте книгу, которую Вам рекомендовал – там это расписано.
E-mail: info@telesys.ru