ГОСТ Р 70184—2022
Приложение Д
(обязательное)
Вычисление циклического избыточного кода
Циклический избыточный код (CRC-код) представляет собой контрольную сумму, позволяющую выявлять
ошибки передачи в приемнике. Слова CRC-кода должны быть включены в передаваемые данные.
Код CRC определяют с помощью полинома степени п
Gn(x) =хп+ дп_^-хп-1+ ... + д2х2+ д1х + 1
при п > 1 и д, е {0, 1}, / = 1....../7-1.
CRC-код определяется как остаток деления многочлена и(х)-хпна многочлен Gn{x) над полем GF(2).
CRC-код может быть вычислен с помощью сдвигового регистра, содержащего п ячеек, где п равно степени
полинома. Блок-схема вычисления CRC-кода представлена на рисунке Д.1. Ячейки обозначают как Ь0 ... bn_v где Ь0
соответствует 1; Ь1 соответствует х; Ь2 - х2;bn-1 соответствует х’7-1. Сдвиговый регистр дополняют с по
мощью вставки операторов XOR на входе тех ячеек, где соответствующие коэффициенты д; полинома равны 1.
Младший
Ь 0
бит
’п-2
Старший
бит
Рисунок Д.1 — Блок-схема вычисления CRC-кода
Перед вычислением кода CRC-8 все ячейки сдвигового регистра инициализируют нулями.
После поступления первого бита блока данных на вход данных (старший бит поступает первым) тактовый
генератор обеспечивает сдвиг ячеек регистра на одну ячейку в направлении ячейки старшего бита Ьп_г При этом в
промежуточные ячейки помещают данные после соответствующих операций XOR. Затем процедуру повторяют для
каждого входного бита данных. После поступления последнего бита (младший бит) блока данных на вход сдви
говый регистр будет содержать слово CRC-кода, которое вслед за этим считывают. При передаче данных и слова
CRC-кода старший бит следует первым.
53