Существует ли какой-либо алгоритм алгоритма для защиты любого содержимого в Интернете, чтобы я был первым, кто его создал?

29

Несколько лет назад был один хакер (не помню, кто он), который полностью раскрыл уязвимость в данной системе, но чтобы убедиться, что никто не поверил в это, он создал какой-то ключ PGP.

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

Хорошо. Я понимаю, как работают алгоритмы и криптография. Но я до сих пор не понимаю, как вы можете создать ключ для защиты данного контента, раскрытого в Интернете, чтобы доказать, что вы тот, кто создал его первым! Это просто слова!

Это действительно возможно? Каким должен быть процесс, чтобы вы могли эмпирически доказать это? Правильно ли я понял или, возможно, что-то упустил из-за этого дела?

Я надеюсь, что этот вопрос достаточно конкретен, в основном это просто как защитить контент, который вы создали в сети (абзац, код, слово и т. Д.), И убедиться, что вы тот, кто создал его первым, внутри данный контекст.

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

Фагнер Брак
источник
9
Может быть, лучше спросить на crypto.stackexchange.com ?
Эйфорическая
5
@FagnerBrack - не копировать / вставлять. Просто пометьте вопрос для перехода на crypto SE.
mouviciel
10
But I still don't understand how you can create a key to protect a given content disclosed in the web to prove you are the one who created it first! It is just words!Существует разница между доказательством того, что вы создали что-то, и доказательством того, что вы первыми создали что-то. Ключ PGP может доказать, что хакер представил отчет об уязвимости. Нет никаких гарантий, что уязвимость не была обнаружена или сообщена до него, но он может по крайней мере показать, что сообщил об этом в определенную дату.
Довал
2
Была история о математике, который обнаружил доказательство и еще не хотел его публиковать, но также не хотел, чтобы кто-то другой получил кредит. Поэтому вместо этого он опубликовал буквы предложения доказательства, отсортированные в алфавитном порядке. Я забыл, как его зовут.
Пол
3
@Paul - это был бы Роберт Гук, закон Гука en.wikipedia.org/wiki/Hooke's_law
Джеймс Маклеод

Ответы:

1

Я наверное что-то пропустил по этому делу?

Я думаю, что вам не хватает того, что вам доверяют.

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

Это то, что Trusted Timestamping. Вот выдержка из википедии :

Методика основана на цифровых подписях и хэш-функциях. Сначала по данным вычисляется хеш. Хеш - это своего рода цифровой отпечаток исходных данных: строка битов, различная для каждого набора данных. Если исходные данные будут изменены, это приведет к совершенно другому хешу. Этот хеш отправляется в TSA *. TSA объединяет временную метку с хэшем и вычисляет хэш этой конкатенации. Этот хэш в свою очередь имеет цифровую подпись с закрытым ключом TSA. Этот подписанный хеш + временная метка отправляется обратно запрашивающей стороне временной метки, которая хранит их с исходными данными (см. Диаграмму).

(*) Временная метка

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

Интересно отметить, что, как упомянул @JoelFan, этот биткойн предоставляет способ получить доверенную сущность, которая не является централизованной (почему я должен кому-либо доверять?). Цепочка биткойнов предоставляет временную шкалу (вы можете доказать, что один документ, инкрустированный в цепочке биткойнов, был создан до того, как другой будет дальше в цепочке). Однако, насколько я понимаю, вы все равно пропустите дату и время проведения мероприятия.

Кроме того, Trusted Timestamping является действительной ссылкой в ​​судебном процессе.

Mika
источник
2
В биткойнах есть заголовки времени, встроенные в заголовки блоков ... хотя они не применяются протоколом, им обычно доверяют, по крайней мере, "приблизительная" точность (т. Е. С точностью до 1 дня) ... это также возможно проверить весь блокчейн из рассматриваемого блока до сегодняшнего дня, чтобы убедиться, что время-дата монотонно увеличивается
JoelFan
Извините, что занял слишком много времени, чтобы принять ответ. Хакер, вероятно, использовал доверенную сущность, я не мог найти разумный способ защитить авторство контента без доверенной сущности.
Фагнер Брак
39

В былые времена ученые публиковали анаграммы своей работы, чтобы иметь возможность сказать: «Я думал об этой идее». (посмотрите на разделы «история» и «установление приоритета»). Дело в том, что они хотели иметь возможность взять на себя ответственность за это, а также дать другим ученым возможность публиковать свои результаты, если у них были другие идеи, не опираясь на первоначальную идею ,

Например, Галлилео опубликовал SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS, которая была анаграммой altissimvm plantam tergeminvm obseravi, что в переводе с латыни гласит: «Я наблюдал самую высокую планету в тройной форме». Он ошибся - Сатурн (самая высокая планета, известная в то время) не состоит из трех частей. Пятьдесят лет спустя Христиан Гюйгенс опубликовал AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNNNO OOOO PP Q RR S TTTTT UUUUU, что на латыни - Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam to it, которое в переводе с английского на русский. плоское кольцо, которое не касается его и наклонено к эклиптике. "

Хотя это исторические фрагменты, представляющие сейчас интерес, они демонстрируют важную концепцию того времени - предоставляя «хэш», который легко сказать «этот хэш кодирует этот текст». Легко перейти от известного текста к анаграмме или хэшу, но трудно понять, что это такое, если вы не знаете, что это такое.

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

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


источник
1
Очень хорошая история об использовании хэша до цифровой эры :)
Мика
30

Вы можете сделать это довольно легко. Если у вас есть открытый текст text, секретный ключ Sи открытый ключ, Pвы S(text)получите и получите cipher.

Теперь вы можете публиковать cipherи Pнет S. Таким образом, каждый может расшифровать cipherс Pпомощью P(cipher). Если вы хотите доказать, что именно вы создали cipher(и, следовательно, оригинал text), вы можете опубликовать Sили - если вы не хотите, чтобы кто-то знал S - вы можете создать другое S("I was really the one who found the text first")и опубликовать его. Потому что не существует способа создать шифр, который расшифровывается с P(cipher)таким результатом, который приводит к некоторому значимому тексту.

Вот как вы можете это доказать.

valenterry
источник
13
Как это помогает? Любой, кто может расшифровать шифр, может просто так же переиздать его со своим секретным ключом, и у вас нет способа доказать, какая сторона опубликовала первую, а какая скопировала с другой, не доверяя какой-либо сторонней записи времени публикации.
R ..
2
@R .. Контент в интернете обычно связан с датой (например: сообщения на форуме). Если есть несколько человек, которые утверждают, что были изобретателями / первооткрывателями, то просто проверьте даты.
Пол
2
Вы также можете включить некоторый контент в открытый текст, который зашифрован с помощью P (контент). Истинный владелец S сможет расшифровать эту дополнительную информацию, тогда как репортер не сможет этого сделать.
Данкрамб
10
@ Пол: Но тогда шифрование не имеет значения. Это равносильно тому, что вы просто публикуете текст в открытом виде и полагаетесь на дату.
R ..
2
@R .. идея в том, что, не зная S, очень трудно придумать какой-нибудь фрагмент текста cipher2, который P(cipher2)не будет бессмысленным. С Sэтим тривиально, как S("the text you want")= cipher2. Делать обратное означает победить криптографический метод.
congusbongus
21

Можно хэшировать данные, которые вы хотите пометить, и превратить их в биткойн-адрес. Это называется надежной отметкой времени . Сделав небольшой платеж (сатоши, или 0,00000001 BTC), платеж сохраняется в блокчейне вместе с адресом, на который вы заплатили.

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

JoelFan
источник
1

Очень простой способ установить, что вы первый, кто что-то опубликовал, не раскрывая, кто вы есть, но имея возможность сделать это позже:

  1. Опубликуйте его на известном общедоступном источнике (там каждый может увидеть, что вы его опубликовали)
  2. В этой публикации добавьте строку: Первоначально опубликовано в формате dd / mm / yyyy владельцем xxx@gmail.com

Не нужно ничего шифровать.

Конечно, есть шанс, что вы еще не хотите публиковать свои результаты. В этом случае вам необходимо зашифровать все, кроме строки с адресом электронной почты. Однако теперь может быть сложнее опубликовать это на известном сайте.

Деннис Джаэруддин
источник
4
Что если «обновленный сайт» изменит дату или электронную почту публикации? Это может произойти из-за плохих намерений, даже если сайт взломан. (Хорошо, я здесь довольно параноидален, но в этом суть. Если есть способ, которым кто-то другой, кроме оригинального автора, меняет доказательство, тогда ваше решение не является действительно детерминированным). Дело здесь не в том, чтобы полагаться только на свидетелей-людей, а на то, чтобы каждый мог определенным образом подтвердить авторство без необходимости того, чтобы ваш контент был «опубликован» или «запатентован» доверенным лицом.
Фагнер Брак
@FagnerBrack, arxiv.org оказалось достаточно для почти 1 млн. Научных работ.
Брайан С.
1
Могу ли я поместить туда что-нибудь или это должно пройти через некоторую экспертную оценку и будет разрешено только при определенных ограничениях? Этот вопрос не направлен непосредственно на научные статьи, речь идет о возможности достижения того же результата (или его эквивалента) программным путем.
Фагнер Брак
2
Используйте archive.org для публикации - как и arXiv, это очень долговечный и надежный репозиторий, но, в отличие от arXiv, он может свободно загружать туда контент. Временная метка для всего, что вы там публикуете, будет считаться очень надежной.
Стив Мидгли
1
Я согласен, слава - это единственный способ быстро и надежно распространять знания.
большие камни
0

Это другой взгляд на ответ Валентери.

Вот как бы вы сделали это с помощью PGP:

Создайте пару открытый / закрытый ключ.

  1. Вы храните закрытый ключ и сохраняете его в секрете.
  2. Вы зашифруете свою идею с помощью вашего открытого ключа: P (идея)
  3. Вы помещаете P (идею) в такое место, которому доверяют (не вы, а в целом), и будете записывать время.
  4. Когда вам нужно доказать, что вы вначале выдвинули идею, вы получаете временную метку, с которой вы сохранили данные, и расшифровываете свои данные с помощью секретного ключа. S (P (идея)) => идея

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

Самое сложное - доказать время, но с точки зрения документирования уязвимости нам не нужно 100% -ное пуленепробиваемое и проверяемое в суде решение, нам просто нужно что-то «достаточно хорошее». Журналы провайдера облачного хранилища (dropbox, rackspace, google и т. Д.), Вероятно, достаточно хороши, если предположить, что они внедрили безопасный сервис.

Также стоит отметить, что быть первым с идеей и отметкой времени никогда не означало, что вы были первым человеком, который задумался над этой идеей. Если кто-то думал об этом раньше вас, но никогда не регистрировал идею с помощью механизма отметки времени, то он не может доказать, что сделал это до вас. Итак, если мы пытаемся выяснить, кто сделал это первым, и все, что мы знаем, это время, когда вы придумали это, то мы должны предположить, что вы придумали это первым (другой человек мог извергать ложь).

Shaz
источник
-1

Тьфу, так многие из этих ответов не имеют смысла.

1) То, что сделал хакер, не имело ничего общего с шифрованием.

2) То, что сделал хакер, никак не связано со временем (отметка времени и т. Д.).

Хакер публично подписал документ о выпуске. Когда вы что-то подписываете PGP (электронное письмо, текстовый документ и т. Д.), Вы создаете хеш, который представляет собой сумму хеша подписываемого документа, и ваш собственный закрытый ключ. Теперь, чтобы доказать, что вы являетесь создателем документа, вам просто нужно «показать» закрытый ключ, так как, предположительно, его знает только автор. Говоря криптографически, вы можете «показать», что вы обладаете закрытым ключом, фактически не показывая сам ключ.

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

Единственный способ цифровой подписи чего-либо IN TIME - это использовать цепочку блоков биткойнов. Не может быть цифровой валюты без проверки времени - тот факт, что человек А отправил деньги человеку Б, не имеет значения, если мы не знаем, когда. Вы не можете пойти в магазин с листком бумаги и сказать: «Моя мама однажды прислала мне 100 долларов. Я хотел бы купить немного хлеба», потому что получение транзакции не означает, что деньги все еще принадлежат вам. Вы могли бы дать это кому-то еще в промежуточный период. Блокчейн решает эту проблему, заставляя большое количество людей (майнеров биткойнов) согласиться с тем фактом, что транзакция произошла в определенное время (а затем путем записи этого времени в блокчейне навсегда).

JJ
источник
2
кажется, это не дает ничего существенного по сравнению с замечаниями, сделанными и объясненными в предыдущих 6 ответах (в частности, много было написано о надежной метке времени, и уже был представлен подход биткойнов)
gnat