Что представляет собой контрольная сумма

Контро́льная су́мма — некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении. Также контрольные суммы могут использоваться для быстрого сравнения двух наборов данных на неэквивалентность: с большой вероятностью различные наборы данных будут иметь неравные контрольные суммы. Это может быть использовано, например, для обнаружения компьютерных вирусов. Несмотря на своё название, контрольная сумма не обязательно вычисляется путём суммирования.

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

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

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

Использование термина сумма связано с тем, что на заре цифровой связи при байтовых передачах информационными были 7 бит, а восьмой — контрольный — рассчитывался как младший разряд сложения информационных.

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

Формирование контрольной суммы файла

Чтобы создать контрольную сумму, следует запустить специальную программу, которая вычислит её, используя соответствующий алгоритм. Типичные алгоритмы, используемые для этого, включают MD5, SHA-1, SHA-256 и SHA-512.

Алгоритм использует криптографическую хеш-функцию, которая принимает входные данные и создает строку (последовательность чисел и букв) фиксированной длины. Входной файл может быть небольшим, например, на 1 МБ, или массивным файлом размером 4 ГБ, но, в любом случае, вы получите контрольную сумму одной длины.

Читайте также:  1С поле составного типа

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

После запуска встроенной утилиты расчета контрольных сумм Windows 10 мы увидели очень разные контрольные суммы. Различие в одном знаке базового файла даёт совершенно другую контрольную сумму.

Когда контрольные суммы полезны

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

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

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

В чем разница между MD5, SHA-1 и SHA-256

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

Однако, эти криптографические хэш-функции не идеальны. Исследователи безопасности обнаружили «изъяны» в функциях MD5 и SHA-1. Они обнаружили два разных файла, которые дают один и тот же результат для хэша MD5 или SHA-1, но отличаются друг от друга.

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

Пока ещё не было сообщений о компрометации SHA-256, поэтому приложения теперь создают суммы SHA-256 вместо сумм MD5 и сумм SHA-1. SHA-256 – более сильный, более безопасный алгоритм.

Различные алгоритмы контрольной суммы дают разные результаты. Файл будет иметь разные контрольные суммы MD5, SHA-1 и SHA-256. Если вы знаете только сумму MD5 исходного файла, вы должны вычислить хэш MD5 вашей копии, чтобы проверить, соответствует ли она оригиналу.

Читайте также:  Вывод изображения с телефона на монитор

Как рассчитать контрольные суммы

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

В Windows команда Get-FileHash в PowerShell вычисляет контрольную сумму файла. Чтобы использовать её, сначала откройте PowerShell. В Windows 10 щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Windows PowerShell». Вы также можете запустить его, выполнив поиск в меню «Пуск» для «PowerShell» и щелкнув ярлык «Windows PowerShell».

В командной строке введите Get-FileHash, а затем нажмите клавишу пробела.

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

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

Если вам нужен другой тип контрольной суммы, добавьте соответствующий параметр -Algorithm в конец команды, например:

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

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

Контрольная сумма файла используется для проверки оригинальности и целостности файла.

Например с помощью контрольных сумм мы проверяли оригинальность скаченных образов в этих статьях:

О контрольной сумме файла из википедии:

Контро́льная су́мма — некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении. Также контрольные суммы могут использоваться для быстрого сравнения двух наборов данных на неэквивалентность: с большой вероятностью различные наборы данных будут иметь неравные контрольные суммы. Это может быть использовано, например, для обнаружения компьютерных вирусов. Несмотря на своё название, контрольная сумма не обязательно вычисляется путём суммирования.

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

Читайте также:  Уравнения кирхгофа для цепи переменного тока

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

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

Использование термина сумма связано с тем, что на заре цифровой связи при байтовых передачах информационными были 7 бит, а восьмой — контрольный — рассчитывался как младший разряд сложения информационных.

Подсчет контрольной суммы файлов в windows.

Для операционных систем windows существует множество программ которые подсчитывают контрольную сумму.

Самой распространенной программой считается программа HashTab.

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

Если у вас Windows 10 — то этот функционал уже встроен в файловый менеджер.

Кликаем по файлу правой кнопкой мыши, далее пункт CRC SHA и выбираем как посчитать контрольную сумму или выбираем пункт » * » который посчитает все возможные контрольные суммы из предоставленного списка.

Контрольная сумма файлов в Linux.

Подсчет контрольных сумм в linux осуществляется при помощи терминала.

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

Для проверки контрольной суммы sha1:

Для проверки контрольной суммы sha256:

Для проверки контрольной суммы sha384:

Для проверки контрольной суммы sha512:

Для проверки контрольной суммы CRC:

Все эти программы входят в пакет coreutils — который должен быть предварительно установлен, например с помощью менеджера пакетов Sinaptic.

Для тех кто не любит терминал.

Можно установить расширение gtkhash для файлового менеджера и с помощью него производить все манипуляции.

Расширение есть для файловых менеджеров nautilus, nemo и thunar. Устанавливается через файловый менеджер Sinaptic.

После установки при выборе свойств файла появится вкладка в которой можно сравнить контрольную сумму или узнать ее.

Как то так. В комментариях добавляйте кто знает о других способах или использует другие методы.