Безопасно ли хранить хэш sha256 исходного незашифрованного файла, который должен храниться в зашифрованном виде? - PullRequest
3 голосов
/ 25 сентября 2019

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

Вопрос в том, безопасно ли сохранять дайджест для незашифрованного файла.

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

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

1 Ответ

1 голос
/ 25 сентября 2019

Сопротивление прообразу SHA-256 составляет 2 ^ 256, а сопротивление столкновению - 2 ^ 128 ( краткое резюме ).С другой стороны, вы можете просто проверить количество комбинаций, необходимых для угадывания ключа для расшифровки файла.Сложная атака прообраза SHA-256 сравнима с взломом 256-битного ключа для симметричного шифрования.Так что, в целом, я бы сказал, что этот подход достаточно безопасен, потому что восстановить исходный файл легче, угадав ключ, а не найдя прообраз из SHA-256.

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

...