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

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

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

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

Функции контрольной суммы связаны с хэш – функции , отпечатки пальцев , функции рандомизации , и криптографические хэш – функции . Тем не менее, каждая из этих концепций имеет различные приложения и поэтому разные цели проектирования. Например, функция , возвращающая начало строки может обеспечить хэш , подходящий для некоторых приложений , но никогда не будет подходящей контрольной суммы. Контрольные суммы используются в качестве криптографических примитивов в больших алгоритмах аутентификации. Для криптографических систем с этими двумя конкретными целями проектирования см HMAC .

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

содержание

Алгоритмы

Четность байт или слово четности

Простейший алгоритм контрольной суммы является так называемым продольным контролем четности , который разбивает данные на «слова» с фиксированным числом п бит, а затем вычисляет исключающий или (XOR) все эти слова. Результат добавляется к сообщению в качестве дополнительного слова. Для проверки целостности сообщения, приемник вычисляет исключающий или все его слова, включая контрольную сумму; если результат не слово , состоящее из п нулей, приемник знает , что произошла ошибка передачи.

С помощью этой контрольной суммы любой ошибки передачи , который переворачивает один бит в сообщении, или нечетного число бит, будет обнаружено как неправильная контрольная сумма. Тем не менее, ошибка , которая влияет на два бита не будет обнаружен , если эти биты лежат в одной и той же позиции в двух различных слов. Кроме того, замена двух или более слов , не будет обнаружена. Если пораженные биты независимо друг от друга выбраны случайным образом , вероятность двух битовых ошибок в настоящее время составляет 1 незамеченным / л .

Модульная сумма

Вариант предыдущего алгоритма , чтобы добавить все «слова» в качестве знака двоичных чисел, отбрасывая любые переполнения бит, и добавьте в дополнительном двоичном от общей суммы в качестве контрольной суммы. Чтобы подтвердить сообщение, приемник добавляет все слова в том же порядке, в том числе контрольной суммы; если результат не является словом , полный нулей, должно быть , произошла ошибка. Этот вариант тоже обнаруживает какую – либо одну битовую ошибку, но promodular сумма используется в SAE J1708 .

Позиционно-зависимый

Простые контрольные суммы , описанные выше , не может обнаружить некоторые общие ошибки , которые влияют на многие биты сразу же , например, изменение порядка слов данных, или вставки или удаления слов со всеми битами , установленных в нуль. Алгоритмы контрольной суммы наиболее часто используемые на практике, такие как контрольная сумма Флетчера , Adler-32 , и циклические проверки избыточности (ЗПК), устранения этих недостатков, рассматривая не только значение каждого слова , но и его положение в последовательности. Эта особенность , как правило увеличивает стоимость вычисления контрольной суммы.

Общие Соображения

Сообщение, м длиной бит можно рассматривать как угол м – мерный гиперкуб. Эффект алгоритма контрольной суммы , что дает н-битовую контрольную сумму, чтобы отобразить каждый м сообщение -разрядного к углу большего гиперкуба, с размерностью . В 2 т + п углы этого гиперкуба представляют все возможные полученные сообщения. Допустимые принятые сообщения (те , которые имеют правильную контрольную сумму) содержат меньший набор, только с 2 м углов. м + N < Displaystyle т + п>

Читать еще:  Где взять 25000 рублей срочно

Ошибка передачи одного бита , то соответствует смещению от действительного угла (правильное сообщение и контрольной суммы) к одному из м смежных углов. Ошибка , которая влияет на K битов перемещает сообщение в угол , который K шагов удален от его правильного угла. Цель хорошего алгоритма контрольной суммы, чтобы распространить действительные углы , как далеко друг от друга , насколько это возможно, с тем, чтобы повысить вероятность того, «типичную» ошибка передачи в конечном итоге в недопустимом углу.

Проверка контрольной суммы Linux

Контрольная сумма – это цифра или строка, которая вычисляется путем суммирования всех цифр нужных данных. Ее можно использовать в дальнейшем для обнаружения ошибок в проверяемых данных при хранении или передаче. Тогда контрольная сумма пересчитывается еще раз и полученное значение сверяется с предыдущим.

В этой небольшой статье мы рассмотрим что такое контрольная сумма Linux, а также как выполнять проверку целостности файлов с помощью контрольных сумм md5.

Что такое MD5?

Контрольные суммы Linux с вычисляемые по алгоритму MD5 (Message Digest 5) могут быть использованы для проверки целостности строк или файлов. MD5 сумма – это 128 битная строка, которая состоит из букв и цифр. Суть алгоритма MD5 в том, что для конкретного файла или строки будет генерироваться 128 битный хэш, и он будет одинаковым на всех машинах, если файлы идентичны. Трудно найти два разных файла, которые бы выдали одинаковые хэши.

В Linux для подсчета контрольных сумм по алгоритму md5 используется утилита md5sum. Вы можете применять ее для проверки целостности загруженных из интернета iso образов или других файлов.

Эта утилита позволяет не только подсчитывать контрольные суммы linux, но и проверять соответствие. Она поставляется в качестве стандартной утилиты из набора GNU, поэтому вам не нужно ничего устанавливать.

Проверка контрольных сумм в Linux

Синтаксис команды md5sum очень прост:

$ md5sum опции файл

Опций всего несколько и, учитывая задачи утилиты, их вполне хватает:

  • -c – выполнить проверку по файлу контрольных сумм;
  • -b – работать в двоичном формате;
  • -t – работать в текстовом формате;
  • -w – выводить предупреждения о неверно отформатированном файле сумм;
  • –quiet – не выводить сообщения об успешных проверках.

Сначала скопируйте файл /etc/group в домашнюю папку чтобы на нем немного поэкспериментировать:

cp /etc/group groups

Например, давайте подсчитаем контрольную сумму для файла /etc/group:

Или вы можете сохранить сразу эту сумму в файл для последующей проверки:

md5sum groups > groups.md5

Затем каким-либо образом измените этот файл, например, удалите первую строчку и снова подсчитайте контрольные суммы:

Как видите, теперь значение отличается, а это значит, что содержимое файла тоже изменилось. Дальше верните обратно первую строчку root:x:0: и скопируйте этот файл в groups_list и

cp groups groups_list

Затем опять должна быть выполнена проверка контрольной суммы linux:

Сумма соответствует первому варианту, даже несмотря на то, что файл был переименован. Обратите внимание, что md5sum работает только с содержимым файлов, ее не интересует ни его имя, ни его атрибуты. Вы можете убедиться, что оба файла имеют одинаковые суммы:

md5sum groups groups_list

Вы можете перенаправить вывод этой команды в файл, чтобы потом иметь возможность проверить контрольные суммы:

md5sum groups groups_list > groups.md5

Чтобы проверить, не были ли файлы изменены с момента создания контрольной суммы используйте опцию -c или –check. Если все хорошо, то около каждого имени файла появится слово OK или ЦЕЛ:

md5sum -c groups.md5

Но теперь вы не можете переименовывать файлы, потому что при проверке утилита будет пытаться открыть их по имени и, естественно, вы получите ошибку. Точно так же все работает для строк:

echo -n “Losst” | md5sum –
$ echo -n “Losst Q&A” | md5sum –

Выводы

Из этой статьи вы узнали как выполняется получение и проверка контрольной суммы linux для файлов и строк. Хотя в алгоритме MD5 были обнаружены уязвимости, он все еще остается полезным, особенно если вы доверяете инструменту, который будет создавать хэши.

Проверка целостности файлов Linux – это очень важный аспект использования системы. Контрольная сумма файла Linux используется не только вручную при проверке загруженных файлов, но и во множестве системных программ, например, в менеджере пакетов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение небольшое видео по теме:

Проверка контрольных сумм файлов в Linux

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

Читать еще:  Что такое вклад до востребования

Зачем нужно выполнять проверку файлов?

Контрольные суммы загружаемых файлов позволяют определить, что файл — точная копия того, что хранится на сервере, с которого он был загружен. Структура файлов, особенно таких больших и сложных, как например, ISO-образы может быть повреждена в процессе загрузки (могут удаляться TCP-пакеты из-за некачественной связи и т. п.) и таким образом, загруженные файлы нельзя будет полноценно использовать. Например, не откроется или не распакуется архив.

Есть и другой важный аспект в использовании контрольный сумм — это безопасность. Удалённый сервер, с которого происходит загрузка файлов может быть взломан, а сами загружаемые файлы на нём — изменены. Изменения могут быть не самыми безобидными, как можно понимать. Проверка контрольных сумм может выявить «подлог» ещё до того как загруженный файл будет обработан пользователем, конечно, если эта проверка будет своевременной.

Конечно же злоумышленник, может подменить и сами контрольные суммы, соответственно «испорченным» файлам. Но «лишняя» посторонняя активность на сервере легко может быть замечена и, соответственно, пресечена. Да и для того, чтобы злоумышленнику отредактировать соответствующие публикации на сайтах, предоставляющих загрузки, ему нужно, возможно, преодолевать защиту ещё и самих сайтов, а значит, неоправданно рисковать. Поэтому в подавляющем большинстве случаев такие действия ограничиваются быстрой подменой оригинальных файлов на «контрафактные». Но независимо от того, каким образом были модифицированы загружаемые файлы, всегда следует их проверять, когда предоставляются их контрольные суммы.

Каким образом это работает?

Создание контрольных сумм файлов называется хешированием. Сама же контрольная сумма — это некоторая строка определённой длины, состоящая из последовательности букв и цифр. Нужно заметить, хеширование никоим образом не зашифровывает файл, а контрольная сумма ничего не расшифровывает. Контрольная сумма называется суммой потому, что это результат однонаправленного криптографического «суммирования» — специального алгоритма. А контрольной она называется потому, что её значение (как и длина контрольной строки — обычно 32 символа) будет всегда одним и тем же, если файл никак не изменялся, независимо от того, сколько раз и при каких условиях вычисляется его контрольная сумма. Но стоит над файлом произвести даже самые незначительные изменения (например, вставить один лишний пробел в текстовом файле), как значение контрольной суммы изменится. Таким образом, значение контрольной суммы меняется, если хотя бы один бит файла изменился.

Для создания и проверки контрольный сумм существует два основных метода: MD5 и SHA. Первый считается устаревшим, поскольку для задач шифрования может быть относительно нетрудно взломан. Однако, на работу с контрольными суммами файлов это никак не влияет. Главным же плюсом MD5 является его скорость — она быстрее, чем у SHA, да и вообще других методов шифрования.

Но нельзя не упомянуть также и о том, что в настоящее время всё-таки популярность SHA быстро растёт. В большинстве случаев именно его контрольные суммы публикуются для выкладываемых для загрузки файлов.

SHA имеет несколько версий. Обычно, при публикации это указывается, например: SHA1, SHA2. Это подсказывает пользователю, каким именно инструментом, реализующим одну из версий SHA нужно воспользоваться при проверке. Если же контрольная сумма указана без номера, то это SHA1. Вообще, для проверки целостности файлов оба метода одинаково хороши, выбор зависит от того, контрольная сумма какого метода опубликована для загружаемых файлов.

Что для этого нужно?

Для проверки файлов в системах Linux используются утилиты, которые практически всегда предустановлены в системе. Для этого достаточно вызвать соответствующие команды в командной оболочке.

В качестве проверяемых файлов используются любые файлы, для которых публикуются исходные контрольные суммы, например образы дистрибутивов Ubuntu или Rosa Linux. Далее в примерах будет использоваться образ ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.

Как проверить файл в Linux?

Для начала скачаем сам файл, т. е. ISO-образ. На странице загрузки в списке рядом со ссылкой на образ есть также и ссылки на текстовые файлы

содержащие значения соответствующих (как видно из расширений этих файлов) контрольных сумм. Их тоже нужно скачать.

Итак, загрузка образа, используя утилиту wget:

Читать еще:  Какие документы нужны для получения социальной карты

Загрузка файла с контрольной суммой SHA1:

Просмотр содержащегося в файле ROSA.FRESH.PLASMA5.R11.x86_64.uefi.iso.sha1sum значения контрольной суммы SHA1 с помощью команды cat:

Как можно видеть, представлены контрольная сумма и имя образа, для которого она была вычислена. Теперь можно, собственно, проверить сам образ, используя для этого команду sha1sum;

Зрительно сопоставив значения контрольных сумм из вывода команды sha1sum и из содержимого файла PLASMA5.R11.x86_64.uefi.iso.sha1sum, можно убедиться, что они полностью совпадают. Таким образом, загруженный образ идентичен тому, что находится на сервере и его можно смело использовать.

Следует отметить, что версии SHA отличаются количеством следующих друг за другом запусков SHA – 256, 384 и 512. Для всех этих версий существуют соответствующие команды: sha256sum, sha384sum и sha512sum. Аналогичным образом можно использовать и команду md5sum для проверки контрольных сумм MD5.

Заключение

Итак, были рассмотрены самые распространённые способы проверки файлов. Как можно видеть, это совсем не сложно и выполняется стандартными средствами в любой системе Linux буквально одной командой.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Контрольная сумма файла или Checksum.

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

Итак, вы качаете файл большого размера? Фильм это или игра – не суть: вы должны быть уверены, что игра установится без ошибок, а видео будет проигрываться гладко.

Вы купили SD-диск или флешку на АлиЭкспресс? Вам нужно удостовериться, не побита ли она и соответствует ли реальный объём указанному продавцом… Вот самый быстрый и простой способ подделать объём флешки.

Вы скачали файл, но есть сомнения в его подлинности? Перед установкой можно проверить, не “добавил” ли к его содержимому некий злоумышленник что-то зловредное, которое после инсталляции или даже простого открытия файла начнёт работать против вас…

Что такое контрольная сумма?

Название появилось от summation check (саммэйшен чек) – число, вычисляемое по особым правилам по содержимому блока данных с целью проверки получателем целостности данных при хранении или передаче. Если контрольная сумма, вычисленная получающим устройством, не совпадает с принятой суммой, то вывод один – целостность данных нарушена. Причиной тому может быть “кривое” интернет-соединение, подделка на этапе составления/копирования файла на стороне сервера, или неисправность принимающего устройства (а иногда и просто подлог со стороны его продавца).

Откуда её взять-то?

Составьте сами (если файл создаётся вами или готовится к пересылке/копированию) и сверьте с имеющимся/поставляемым. Если не стесняетесь, а для вас обладание файлом/программой очень важно, запросите контрольную сумму у поставщика. Для этого у нас есть все возможности: у самой Windows или несколько очень хороших, бесплатных и легковесных программ. О всех способах по порядку.

Что может Windows?

Уже в версии Windows 7 есть замечательная утилита certutil.exe, и с её помощью мы научимся вычислять и сверять контрольную сумму. В примере будет использоваться самый ходовой на данный момент алгоритм MD5 – именно он подходит для описанных в начале статьи задач (с командами, нижеописываемыми, прокатят также SHA256 и другие). Согласно Microsoft, утилита certutil.exe призвана снимать и выводить на экран информацию о конфигурации CA (авторизованной сертификации), работать со службами сертификатов, резервировать и восстанавливать компоненты CA, а также сверять сами сертификаты, парные ключи и цепочки хранящихся сертификатов. А мы сейчас с вами вычислим контрольную сумму любого файла.

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

Но подробности я пока опущу и остановлюсь на вседоступных вариантах расчётов.

К примеру, мне нужна контрольная сумма файла pdf:

Команда примет вид:

Если вы желаете у видеть чек-сумму в текстовом файле, можно просто воспользоваться заданием к cmd на вывод результатов команды в указанный файл:

Ищите файл с именем checksum.txt корне диска С:.

Если вам нужна исключительно контрольная сумма, можно воспользоваться дополнительными флагами к команде:

Контрольная сумма файла есть – сверяем

Если вы пытаетесь проверить контрольную сумму, её можно узнать у “поставщика” файла. Обнаружить их нетрудно, ибо добросовестный хозяин особо на это укажет на сайте или вложит файл с информацией для сверки в архив.

Ссылка на основную публикацию
Adblock
detector