Почему невозможно доказать существование второго пароля в зашифрованном файле VeraCrypt?

konstrukt
Оффлайн

konstrukt

.
.
.
Регистрация
19.09.18
Сообщения
162
Реакции
79
Репутация
1
Всем привет. Разберу вопрос, который часто задают про скрытые тома VeraCrypt — как вообще можно математически гарантировать, что нельзя доказать существование второго, скрытого слоя данных. Это не просто "хорошо спрятано", а буквально недоказуемо в принципе, и стоит понять почему.


С чего всё начинается — как выглядит зашифрованный файл


Любой файл, зашифрованный современным алгоритмом вроде AES, для стороннего наблюдателя выглядит как последовательность абсолютно случайных байт. Это не побочный эффект, а прямое требование к хорошему шифрованию — если результат показывает хоть какую-то закономерность, значит с самим алгоритмом что-то не так, и криптографы такое сразу считают серьёзной уязвимостью.


Главный факт, на котором всё строится


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


Как это работает конкретно в скрытом томе


Представь контейнер на 10 гигабайт. Реальные видимые данные во внешнем томе занимают, скажем, 3 гигабайта. Остальные 7 гигабайт физически заполнены случайными данными — и это совершенно нормальное, ожидаемое поведение любого шифрования, тут нет ничего подозрительного самого по себе, потому что так выглядит любой обычный зашифрованный контейнер.


Скрытый том создаётся именно в этом "пустом" пространстве, с отдельным, независимым ключом. И вот тут вступает в силу тот самый принцип неотличимости — скрытый том, зашифрованный вторым паролем, выглядит абсолютно так же, как случайный мусор, заполняющий неиспользуемое место любого обычного контейнера.


Почему это принципиально невозможно доказать, а не просто трудно найти


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


Отсюда и юридическая сила этой конструкции


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


Что важно не испортить на практике


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