Shanraq.org Shanraq.org
Как заметить повреждённые данные
Общество

Информатика: создаём своего цифрового помощника Урок 17 из 18

Как заметить повреждённые данные

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

Текст переведён с помощью ИИ.

Где мы на карте

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

Как заметить повреждённые данные

Жизненный образ и точная модель

Кассир сверяет число предметов с чеком. Если числа расходятся, ясно, что что-то не так; если совпали, это ещё не доказывает, что все предметы те же. При передаче файла нужен похожий, но более точный способ сверки.

Учебная контрольная сумма: сложите числа 4, 7, 2 и возьмите остаток от деления на 10. Получится 13 mod 10 = 3. Если среднее число изменится с 7 на 8, сумма станет 14 mod 10 = 4: повреждение заметно. Но набор 5, 6, 2 тоже даёт 13 mod 10 = 3. Одинаковые контрольные суммы возможны для разных данных — это коллизия. Криптографические хеши, например SHA-256, резко снижают шанс случайного совпадения, но простой хеш без доверенного источника не доказывает, кто создал файл.

Граница образа

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

Опорный сигнал

данные → вычислить сумму → сохранить эталон → пересчитать → сравнить; совпадение не равно доказательству авторства

Разобранный пример

Для 4,7,2 получите 3. Измените 7 на 8: получите 4. Измените 4 на 5 и 7 на 6: снова получите 3. Эти три шага показывают и обнаружение, и ограничение метода.

Предскажите до наблюдения

Сможет ли учебная сумма отличить 4,7,2 от 5,6,2? Сначала посчитайте оба остатка, потом ответьте. Оба дают 3, поэтому нет.

Не прокручивайте сразу к ответу: запишите прогноз и причину. Сравните не только итог, но и каждый промежуточный шаг. Если результат совпал случайно, повторите опыт с другими числами.

Воспроизведите без подсказки

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

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

Найдите и исправьте ошибку

«Контрольная сумма совпала, значит файл точно подлинный и неизменённый». Исправьте: совпадение означает лишь, что выбранный метод не выявил различия. У слабого метода есть коллизии.

Перенос в новую ситуацию

Файл скачан вместе с хешем с одного неизвестного сайта. Сравнение обнаружит случайную порчу при загрузке, но может ли доказать надёжность самого сайта? Обоснуйте ответ.

Изменение проекта

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

Задание

Покажите одно изменение, которое учебная сумма замечает, и одно, которое пропускает. Сформулируйте, что именно проверяется и чего метод не обещает.

Сдавайте не фразу «понял», а проверяемое доказательство: таблицу, расчёт, файл или точный ответ с объяснением. Используйте вымышленные данные. Попросите другого человека повторить действие по вашему описанию; если ему приходится угадывать, уточните правило.

Возврат через 1, 7 и 30 дней

Завтра восстановите пример 4,7,2. Через неделю придумайте коллизию. Через месяц объясните, зачем эталон должен поступать из доверенного источника.

Следующий урок: Контрольная точка: формат данных помощника

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.