Чи є шаблон алгоритму для захисту будь-якого вмісту в Інтернеті, щоб переконатися, що я перший, хто створив його?


29

Кілька років тому там був цей хакер (не пам'ятаю, ким він був), який повністю виявив вразливість у певній системі, але, щоб переконатися, що ніхто не брав за це кредит, він створив якийсь ключ PGP.

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

Добре. Я розумію, як працюють алгоритми та криптографія. Але я все ще не розумію, як ви можете створити ключ для захисту певного вмісту, розкритого в Інтернеті, щоб довести, що ви той, хто створив його першим! Це просто слова!

Чи справді це можливо? Яким має бути процес, щоб можна емпірично довести це? Чи правильно я це зрозумів чи, мабуть, щось пропустив у цій справі?

Я сподіваюся, що це питання є достатньо конкретним, в основному це лише те, як захистити вміст, який ви створили в Інтернеті (абзац, код, слово тощо) і переконатися, що ви саме той, хто створив його першим, усередині заданий контекст.

Зі своїх знань я не бачу, як це можливо, але мене заінтригує, якщо є практичний спосіб зробити це. Є там?


9
Можливо, запитання на crypto.stackexchange.com було б кращою ідеєю?
Ейфорія

5
@FagnerBrack - Не копіюйте та не вставляйте. Просто позначте питання про міграцію до крипто 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

Я, мабуть, щось пропустив щодо цього випадку?

Я думаю, що біт, який вам не вистачає, є надійною сутністю.

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

Це те, про що йдеться у довіреному часовому маркуванні. Ось витяг із Вікіпедії :

Методика заснована на цифрових підписах та хеш-функціях. Спочатку хеш обчислюється з даних. Хеш - це свого роду цифровий відбиток пальців вихідних даних: рядок бітів, який відрізняється для кожного набору даних. Якщо вихідні дані будуть змінені, це призведе до зовсім іншого хешу. Цей хеш надсилається до TSA *. TSA об'єднує часову позначку в хеш і обчислює хеш цього конкатенації. Цей хеш у свою чергу цифровим чином підписується приватним ключем TSA. Цей підписаний хеш + часова марка відправляється назад запитувачу часової позначки, який зберігає їх з оригінальними даними (див. Схему).

(*) Орган, що відзначає час

Я використовую службу Timestamping Universign, яка має чудовий набір інструментів для полегшення виконання всієї операції. Є безліч компаній, які пропонують подібні послуги.

Цікаво відзначити, що, як згадував @JoelFan, цей біткойн забезпечує спосіб отримати довірену особу, яка не є централізованою (навіщо мені комусь довіряти?). Ланцюжок біткойн забезпечує часовий шкала (ви можете довести, що один документ, інкрустований у ланцюжку біткойн, був створений ще до подальшого вниз по ланцюжку). Наскільки я розумію, ви все одно пропустите ефективну дату та час події.

Крім того, Trusted Timestamp є дійсним посиланням у судових справах.


2
У заголовках блоків у біткойн є вбудовані дати ... хоча вони не застосовуються за допомогою протоколу, вони, як правило, довіряють точності принаймні "Ballpark" (тобто, точніше за 1 день) ... це також можливо перевірити весь блокчейн від розглянутого блоку до сьогодні, щоб переконатися, що дати монотонно збільшуються
JoelFan

Вибачте, що прийняти відповідь занадто багато часу. Хакер, ймовірно, використовував довірену сутність, я не міг знайти розумного способу захисту авторського вмісту без довіреної сутності.
Фагнер Брек

39

За старих часів вчені публікували анаграми своєї роботи, щоб мати можливість сказати «я подумав про цю ідею». (подивіться на розділи "Історія" та "Встановлення пріоритетів"). Справа в тому, що вони хотіли мати змогу взяти на це кредит, а також дати іншим ученим опублікувати їх результати, якщо вони мали б інші ідеї, не будуючи на початковій ідеї .

Наприклад, Галлілео опублікував SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS, який був анаграмою altissimvm planetam tergeminvm obseravi, що в перекладі з латини говорив : "Я спостерігав за найвищою планетою в три рази". Він помилився - Сатурн (найвища відома на той час планета) побудований не з трьох частин. П'ятдесят років по тому Крістіан Гюйгенс опублікував AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNNN OOOO PP Q RR S TTTTT UUUUU, що латинською мовою є Annulo cingitur, tenui, plano, nusquam cohaerente, it is it округлене, а це заокруглено, " плоске кільце, яке його не торкається і нахилене проти екліптики ".

Хоча це історичні біти, які зараз цікавлять, вони виявляють важливу концепцію тоді - надаючи "хеш", який легко сказати "цей хеш кодує цей текст". Перейти від відомого тексту до анаграми чи хешу легко, але важко зрозуміти, що це таке, якщо ви не знаєте, що це в першу чергу.

З сучасними механізмами ми маємо інші способи робити хеші. Багато з них дуже тісно пов'язані з криптографією. Є криптографічна хеш-функція . Ідея, однак, легко перейти від тексту, який ви знаєте, до хешу, але важко перейти від хеша до тексту, який ви не знаєте.

Отже, якщо у вас є програма , яку ви могли б опублікувати хеш програми , яка робить що - то , а потім , коли ви перебуваєте готові розкрити його (можливо , після виправлення компанії це або період часу пізніше), ви можете опублікувати фактичний код і кожен може побачити, що так, цей код відповідає тому, що хеш.


1
Дуже приємна історія використання хешу до цифрового століття :)
mika

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)цього, приведе до якогось змістовного тексту.

Саме так ви можете це довести.


13
Як це допомагає? Кожен, хто може розшифрувати шифр, може просто опублікувати той самий спосіб за допомогою свого секретного ключа, і ви не можете довести, яка партія опублікувала першу, а яку скопіювала з другої, не довіряючи сторонній запис часу публікації.
Р ..

2
@R .. Вмісту в Інтернеті зазвичай пов’язана дата (наприклад: повідомлення на форумі). Якщо є кілька людей, які претендують на першочергових винахідників / відкривачів, то ви просто перевіряєте дати.
Павло

2
Ви також можете включити деякий вміст у відкритий текст, який зашифрований за допомогою P (content). Справжній власник S зможе розшифрувати цю додаткову інформацію, тоді як репортер не зможе цього зробити.
Dancrumb

10
@Paul: Але тоді шифрування не має значення. Це еквівалентно просто опублікувати вміст у простому тексті та покладатися на дату.
Р ..

2
@R .. ідея полягає в тому, що, не знаючи S, дуже важко придумати фрагмент тексту, cipher2такий, що P(cipher2)не є химерним. З Sним тривіально, як S("the text you want")= cipher2. Зворотне значення означає перемогу над крипто-методом.
congusbongus

21

Можна хеш даних, які ви хочете відмітити, і перетворити їх на адресу Bitcoin. Це відомо як довірене позначення часу . Здійснюючи невеликий платіж (сатоши, або 0,00000001 BTC), платіж зберігається на блокчейні разом з адресою, яку ви заплатили.

Оскільки в блокчейн Bitcoin зберігається тільки хеш, ніхто не може сказати, які дані ви зберегли, але, враховуючи попередньо хешовані дані, ви можете довести, що дані були створені до блоку, який містить платіж, здійснений за цією адресою.


1

Дуже простий спосіб встановити, що ти перший, хто щось опублікував, не розкриваючи, хто ти зараз, але маючи можливість зробити це пізніше:

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

Не потрібно нічого шифрувати.

Звичайно, є ймовірність, що ви ще не хочете публікувати свої результати. У такому випадку вам потрібно зашифрувати все, крім рядка з адресою електронної пошти. Однак зараз може бути складніше опублікувати це на відомому сайті.


4
Що робити, якщо "відомий сайт" змінить дату або електронну пошту публікації? Це може статися через погані наміри, навіть якщо сайт зламаний. (Гаразд, я тут доволі параноїчний, але в цьому справа. Якщо є спосіб, як хтось інший, крім оригінального автора, змінить доказ, то ваше рішення насправді не детерміновано). Суть у тому, щоб не покладатися лише на свідків людини, а в тому, щоб кожен міг певним чином підтвердити авторство, без того, щоб ваш вміст був "опублікований" або "запатентований" довіреною особою.
Fagner Brack

@FagnerBrack, arxiv.org виявився достатнім для майже 1 млн наукових робіт.
Брайан S

1
Чи можу я помістити що-небудь там або це повинно пройти певний експертний огляд і буде дозволено лише за певних обмежень? Це питання не спрямоване безпосередньо на науково-дослідні роботи, а про можливість досягнення того ж результату (або еквівалента) програмним шляхом.
Fagner Brack

2
Використовуйте archive.org для публікації - як arXiv, це дуже довговічне і надійне сховище, але на відміну від arXiv, воно безкоштовно завантажувати вміст туди. Позначення часу на будь-що, що ви там публікуєте, вважатиметься дуже надійним.
Стів Мідглі

1
Я згоден, слава - єдиний спосіб швидко та надійно поширювати знання.
bigstones

0

Це різне сприйняття відповіді валентери.

Ось як би це зробити за допомогою PGP:

Створіть пара відкритих та приватних ключів.

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

Цей метод не вимагає звільнення секретного ключа, що в цілому є поганою ідеєю. Зрозуміло, ви завжди можете створити нову пару ключів PGP - вона нічого не коштує, але вам не слід безрозсудно роздавати секретні ключі, якщо ви хочете бути надійними.

Найскладніше - це довести час, але з точки зору документування вразливості нам не потрібно 100% рішення, яке може бути підтверджене кулею та перевірене в суді, нам просто потрібно щось, що достатньо добре. Журнали постачальника хмарних сховищ (Dropbox, Rackspace, Google і т.д.), ймовірно, досить хороші, якщо припустити, що вони реалізують захищену послугу.

Варто також зазначити, що бути першим із ідеєю та тимчасовим маркуванням це ніколи не означало, що ви були першою людиною, яка думала про цю ідею. Якщо хтось подумав про це до вас, але ніколи не зареєстрував ідею за допомогою механізму відмітки часу, то він не може довести, що зробив її перед вами. Отже, якщо ми намагаємося з’ясувати, хто це зробив першим, і все, що ми знаємо, це час, коли ти це придумав, тоді ми повинні припустити, що ти придумав це першим (інша людина може вигадувати брехню).


-1

Фу, так багато з цих відповідей не мають сенсу.

1) Те, що зробив хакер, не має нічого спільного з шифруванням.

2) Те, що зробив хакер, не мало нічого спільного з часом (штамп часу тощо).

Хакер зробив публічно підписати документ про випуск. Коли PGP щось підписує (електронний лист, текстовий документ тощо), ви створюєте хеш, який є сумою хешу документа, який підписується, та власний приватний ключ. Тепер, щоб довести, що ви творець документа, вам просто потрібно "показати" приватний ключ, як це, мабуть, знає лише автор. Криптографічно кажучи, ви можете "показати", що у вас є приватний ключ, не показуючи власне ключ.

Отже, по суті, він цифрово підписав документ. Єдиною особою, яка може скопіювати цей підпис, є хтось із його приватним ключем. Немає нічого сказати, що документ був зроблений сьогодні чи вчора, або це був перший екземпляр його коли-небудь. Жодна кількість часових позначок хешування або що інше це не змінить.

Єдиний спосіб цифрового підписання чогось В ЧАСУ - це використовувати блокчейн a la bitcoin. Не могло бути цифрової валюти без перевірки часу - той факт, що людина A надсилав гроші людині B, не має значення, якщо ми не знаємо, коли. Ви не можете зайти в магазин з аркушем паперу і сказати, що "мама прислала мені один раз 100 доларів. Я хотів би придбати трохи хліба", оскільки отримання транзакції не означає, що гроші все ще належать вам. Ви, можливо, передали його комусь іншому тимчасово. Блокчейн вирішує цю проблему, змушуючи велику кількість людей (шахтарів біткойна), щоб усі погодилися з тим, що транзакція відбулася в певний час (а потім, записавши цей час у блокчейн назавжди).


2
це, здається, не пропонує нічого суттєвого щодо пунктів, викладених та пояснених у попередніх 6 відповідях (зокрема, багато було написано про довірену мітку часу, і вже був представлений підхід bitcoin)
gnat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.