Аннотация:
При проведении анализа программного обеспечения актуальна задача контроля целостности данных больших массивов, при решении которой важно обеспечить приемлемый компромисс между криптографическими свойствами алгоритма контроля целостности и ресурсами, необходимыми для его реализации. Для блоков данных размера 1 кбайт (1024 байта) предложен алгоритм генерации 128-битового кода контроля целостности (ККЦ) с положительными (с позиции синтеза) эксплуатационными и криптографическими свойствами. Алгоритм построен на основе преобразований аддитивных генераторов и $s$-боксов и реализует функцию $\psi(g^t)\colon V_{2^{13}}\to V_{128}$ со свойством полного перемешивания входных данных. При $6\le t\le 100$ каждый бит кода существенно зависит от всех битов информационного блока. При случайном равновероятном выборе начального состояния $u$ вероятность получить любой код $Q$ оценивается величиной $2^{-128}$. Среднее число опробований пар блоков $(u,u')$, где $u\ne u'$ и $Q(u)=Q(u')$, приблизительно равно $2^{64}$. Сложность вычисления функции $\psi(g^t)$ имеет порядок $t(5u+8v)$, где $u$ — вычислительная сложность суммирования двух чисел по модулю $2^{64}$; $v$ — сложность вычисления $s$-бокса. В соответствии с проведёнными экспериментами скорость генерации ККЦ варьируется в пределах от 3500 ($t=6$) до 250 Мбит/с ($t=96$), соответственно при тех же значениях $t$ время генерации ККЦ варьируется в пределах от 18 до 250 мкс.