
У меня есть текстовый документ, для которого я не хочу раскрывать все содержимое, но я хочу опубликовать некоторую информацию о нем заранее, чтобы позже заявить об оригинальности. Например, если текстовый документ — это X, то я могу использовать любую хорошую хэш-функцию h и опубликовать h(X). Позже, если я захочу заявить, что у меня уже был документ X заранее, я могу просто опубликовать весь X.
Но раскрытие всего X для доказательства того, что у меня есть X, также раскрывает все содержимое X. В связи с этим мне интересно, есть ли утилита, которая создает «хэш» h(X) и какую-то схему доказательства с нулевым разглашением, чтобы я мог утверждать, что у меня есть X, который соответствует значению has h(X), не раскрывая фактического содержимого X.
Так что в принципе я думаю, что мне нужно что-то похожее на какую-то утилиту командной строки (например, PGP) для доказательства с нулевым разглашением. Будет ли хорошая утилита для этого?
решение1
Я считаю, что стандартный способ сделать это — предоставить контрольную сумму SHA файла. Это тот тип хеша, который вы, кажется, рассматриваете, но он не имеет ничего общего с PGP.
Они являются стандартом NIST, поэтому авторитетны. Не используйте SHA1, так как его теоретически можно взломать — SHA2 подойдет.
sha256sum может создать этот хеш из файла в Linux, а в Windows есть команда PowerShell get-filehash, которая делает то же самое.
Для дополнительных доказательств вы можете дополнительно предоставить альтернативные хэши (например, sha3 и md5, но имейте в виду, что md5 сам по себе недостаточно надежен). Также учтите, что у юристов, являющихся членами коллегии адвокатов, есть обязательства, поэтому вы можете попросить их сохранить копию, а в некоторых странах мировые судьи также могут помочь с заверением.