Открыть сервис

Контрольная сумма

Контрольная сумма — это значение, вычисленное по определённому алгоритму из набора данных (блока данных), используемое для проверки целостности этих данных при передаче или хранении. Контрольная сумма представляет собой, как правило, небольшое число фиксированной длины (например, 32 или 128 бит), которое существенно меньше размера исходных данных. Основное назначение контрольной суммы — обнаружение случайных ошибок, возникших в результате помех при передаче по каналу связи, сбоев в работе запоминающих устройств или намеренных искажений. Если вычисленная заново контрольная сумма полученных данных не совпадает с исходной, это с высокой вероятностью свидетельствует о наличии ошибки. Контрольные суммы являются фундаментальным понятием в теории кодирования, информатике и вычислительной технике.

История

Идея использования избыточной информации для обнаружения ошибок восходит к работам Клода Шеннона по теории связи (1940-е годы). Однако практическое применение контрольных сумм стало возможным с развитием цифровых вычислительных машин. Одним из первых и наиболее простых методов является контрольная сумма по модулю (или простая арифметическая сумма), которая использовалась в ранних магнитных лентах и перфолентах.

В 1961 году Вернер Бухгольц (IBM) предложил циклический избыточный код (CRC), который стал стандартом де-факто для обнаружения ошибок в сетях передачи данных и накопителях. В 1970-х годах, с появлением первых компьютерных сетей (например, ARPANET), возникла необходимость в более надёжных алгоритмах. В 1977 году Рональд Ривест, Ади Шамир и Леонард Адлеман разработали алгоритм MD5 (Message Digest 5), который, хотя и предназначался для криптографических целей, долгое время использовался как контрольная сумма для проверки целостности файлов. В 1990-х годах Национальный институт стандартов и технологий США (NIST) разработал семейство алгоритмов SHA (Secure Hash Algorithm), которые являются криптостойкими хеш-функциями и применяются в современных системах для проверки целостности и аутентификации.

Принципы работы

Процесс работы с контрольной суммой включает два этапа:

  1. Вычисление: На стороне отправителя (или при записи данных) к исходным данным применяется алгоритм, который преобразует их в короткое значение — контрольную сумму. Этот алгоритм является детерминированным: одинаковые входные данные всегда дают одинаковую контрольную сумму.
  2. Проверка: Полученные данные (или данные, считанные с носителя) снова обрабатываются тем же алгоритмом. Полученное значение сравнивается с эталонной контрольной суммой. Если значения совпадают, данные считаются неповреждёнными с высокой, но не абсолютной, вероятностью.

Важным свойством контрольных сумм является лавинный эффект: даже минимальное изменение исходных данных (например, изменение одного бита) приводит к кардинальному изменению контрольной суммы. Это свойство особенно важно для криптографических хеш-функций.

Классификация и виды

Контрольные суммы можно классифицировать по нескольким признакам.

По назначению

По алгоритму

Применение

Контрольные суммы используются практически во всех областях, где требуется надёжное хранение или передача данных.

В компьютерных сетях и протоколах

В системах хранения данных

В криптографии и безопасности

В повседневной жизни

Ограничения и критика

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →