Проблема

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

Причины

1. Изменение метаданных (EXIF): Редакторы изображений перезаписывают теги, связанные с оригинальным размером (PixelXDimension/PixelYDimension), датой создания и моделью камеры.
2. Артефакты пережатия: Повторное сохранение в JPEG (даже с высоким качеством) оставляет характерные блочные структуры (8x8 пикселей), которые выявляются при анализе частотного спектра.
3. Нарушение корреляции шума: Сенсор камеры генерирует уникальный шумовой паттерн (PRNU — Photo Response Non-Uniformity). При ресайзе или пережатии этот паттерн нарушается, что видно при вычитании кадров.
4. Ошибки квантования: Изменение качества в JPEG приводит к рассинхронизации гистограммы коэффициентов ДКП (DCT).

Решение (легальные методы, tools для форензики)


#### 1. Анализ EXIF и прогнозируемого размера
Инструмент: ExifTool (бесплатно, кроссплатформенно).

Проверьте соответствие размера в метаданных фактическому. Если файл сжат или ресайзнут, ExifTool может выявить несоответствие тегов. Ключевой прием — сравнение поля `Image Width`/`Image Height` с фактическим разрешением файла.

exiftool
-ImageWidth -ImageHeight -FileName -DateTimeOriginal photo.jpg


Признаки:
- Оригинал с 12-Мп камеры (4000x3000) имеет размеры 4000 и 3000; после ресайза — 1920x1080.
- Отсутствие тегов `Make`/`Model` или `Software` (например, "Adobe Photoshop" вместо "Nikon").

#### 2. Выявление редакторов (strings)
Команда (Linux/macOS):
strings
photo.jpg | grep -i -E "photoshop|lightroom|gimp|pixlr|snapseed|editor" | sort -u


#### 3. Анализ на артефакты двойного сжатия (Double JPEG Detection)
Инструмент: `jpegsnoop` или `foremost` + визуальный осмотр в режиме 8x8 grid.

Практический тест: Если исходник был JPEG, а затем снова сохранен как JPEG — в DCT-коэффициентах остаются два набора таблиц квантования. Используйте `jpegsnoop` (GUI, Windows) или скрипт `detect_double_jpeg.py` из пакета `forensic_tools`.

Пример вывода: "Double compression detected: first compression quality 95%, second 80%".

#### 4. Анализ PRNU (шума сенсора) для проверки размера фото
Метод: Требуется эталонное фото с той же камеры.
- Сравнивается шумовая сигнатура подозрительного фото и эталона.
- Если фото ресайзнуто — корреляция падает, а фрактальный анализ показывает билинейную/бикубическую интерполяцию (против шума сенсора — это детерминированная структура).

Инструмент: `Aletheia` (Open Source) или `Dust & Scratches` фильтр в ImageJ/Fiji.

#### 5. Анализ частотных характеристик (градиент)
Инструмент: `FotoForensics` (онлайн, бесплатно).
- Загрузите фото → вкладка "Error Level Analysis" (ELA).
- При пережатии ELA показывает неестественную яркость в плоских областях.
- При ресайзе — появление линий артефактов на границах объектов.

Важно: ELA не дает 100% гарантии, но указывает на вероятную модификацию.

#### 6. Проверка на бинарное соответствие (MD5/SHA256)
Если есть доступ к предполагаемому оригиналу:
sha256sum
original.jpg modified.jpg

Разные хеши = изменение (размер или качество), но причина не раскрывается.

Критерии вывода

- Resize (изменение размера): Несоответствие `ImageWidth`/`ImageHeight` фактическому, потеря EXIF-данных камеры, следы интерполяции (градиентный шум/артефакты на краях контрастных объектов).
- Change quality (смена качества): Двойная структура DCT-коэффициентов (double JPEG), неестественная ELA-карта, отсутствие шума сенсора в плоских зонах.

Легальное примечание (РФ)

Все перечисленные инструменты (ExifTool, Aletheia, jpegsnoop, forensics on local machine) не нарушают УК РФ, действующих как средства киберэкспертизы при согласии владельца файла или в рамках официального расследования. Не используйте для вмешательства в чужие данные без согласия (ст. 272, 273).