Czy istnieje jakiś wzorzec algorytmu chroniący jakąkolwiek treść w sieci, aby upewnić się, że jestem pierwszym, który ją stworzył?

29

Kilka lat temu był ten haker (nie pamiętam, kim był), który w pełni ujawnił lukę w danym systemie, ale aby się upewnić, że nikt nie bierze za to uznania, stworzył jakiś klucz PGP.

W tym momencie zrozumiałem, że stworzył klucz, aby upewnić się, że to on go odkrył, ale nie ujawnił, kim naprawdę był, po prostu stworzył mechanizm, aby móc udowodnić, że to on stworzył ujawnienie. .

Dobrze. Rozumiem, jak działają algorytmy i kryptografia. Ale nadal nie rozumiem, w jaki sposób możesz stworzyć klucz do ochrony danej treści ujawnionej w sieci, aby udowodnić, że to Ty ją stworzyłeś! To tylko słowa!

Czy to naprawdę możliwe? Jaki powinien być proces, aby upewnić się, że możesz to empirycznie udowodnić? Czy zrozumiałem to poprawnie, czy prawdopodobnie coś przeoczyłem w tej sprawie?

Mam nadzieję, że to pytanie jest wystarczająco szczegółowe, w zasadzie chodzi tylko o ochronę treści, którą utworzyłeś w sieci (akapit, kod, słowo itp.) I upewnienie się, że to ty ją stworzyłeś, wewnątrz podany kontekst.

Z moją wiedzą nie rozumiem, jak to możliwe, ale jestem zaintrygowany, jeśli istnieje praktyczny sposób, aby to zrobić. Jest tu?

Fagner Brack
źródło
9
Może lepiej zapytać na crypto.stackexchange.com ?
Euforia
5
@FagnerBrack - Nie kopiuj / wklej. Po prostu oznacz pytanie dotyczące migracji do 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!Istnieje różnica między udowodnieniem, że coś stworzyłeś, a udowodnieniem, że jako pierwszy coś stworzyłeś. Klucz PGP może udowodnić, że haker przesłał raport podatności. Nie ma żadnej gwarancji, że luka nie została wykryta ani zgłoszona przed nim, ale może przynajmniej wykazać, że zgłosił ją w określonym terminie.
Doval,
2
Była opowieść o matematyku, który odkrył dowód i nie chciał go jeszcze opublikować, ale też nie chciał, aby ktoś inny zdobył uznanie. Zamiast tego opublikował litery zdania dowodu posortowane alfabetycznie. Zapomniałem, jak miał na imię.
Paul
3
@Paul - byłby to Robert Hooke, Hooke's Law en.wikipedia.org/wiki/Hooke's_law
James McLeod

Odpowiedzi:

1

Prawdopodobnie coś przeoczyłem w tej sprawie?

Myślę, że kawałek, za którym tęsknisz, jest zaufanym bytem.

Po haszowaniu pliku z treścią, którą chcesz certyfikować, możesz pokazać światu, że jesteś właścicielem tego dokumentu, bez ujawniania tego dokumentu. Wszystko jest bardzo dobrze, ale jak możesz udowodnić, że miałeś ten dokument w określonym momencie w przeszłości?

Właśnie o to chodzi w Zaufanym znaczeniu czasu. Oto fragment z wikipedii :

Technika ta oparta jest na podpisach cyfrowych i funkcjach skrótu. Najpierw obliczany jest skrót na podstawie danych. Hash jest rodzajem cyfrowego odcisku palca oryginalnych danych: ciąg bitów, który jest inny dla każdego zestawu danych. Jeśli oryginalne dane zostaną zmienione, spowoduje to zupełnie inny skrót. Ten skrót jest wysyłany do TSA *. TSA konkatenuje znacznik czasu do skrótu i ​​oblicza skrót tego konkatenacji. Ten skrót jest z kolei podpisany cyfrowo za pomocą klucza prywatnego TSA. Ten podpisany skrót + znacznik czasu jest wysyłany z powrotem do requestera znacznika czasu, który przechowuje je z oryginalnymi danymi (patrz diagram).

(*) Urząd znaczników czasu

Korzystam z usługi znaczników czasu Universign, która ma ładny zestaw narzędzi, dzięki którym cała operacja jest łatwa do wykonania. Istnieje wiele firm oferujących podobne usługi.

Warto zauważyć, że jak wspomniano @JoelFan, bitcoin zapewnia sposób na uzyskanie zaufanego podmiotu, który nie jest scentralizowany (dlaczego mam komuś ufać?). Łańcuch bitcoinów zapewnia oś czasu (możesz udowodnić, że jeden dokument inkrustowany w łańcuchu bitcoinów został utworzony przed kolejnym w dalszej części łańcucha). W moim odczuciu nadal jednak przegapisz datę i godzinę wydarzenia.

Zaufany znacznik czasu jest również ważnym odniesieniem w sporze sądowym.

Mika
źródło
2
Czas jest osadzony w nagłówkach bloków w bitcoinach ... chociaż nie są one egzekwowane przez protokół, ogólnie uważa się, że są co najmniej „dokładne” (tj. Z dokładnością do 1 dnia) ... to również możliwe do sprawdzenia całego łańcucha bloków od tego bloku do dziś, aby upewnić się, że czasy są monotonicznie
wydłużone
Przepraszam, że zbyt długo trwa akceptacja odpowiedzi. Haker prawdopodobnie używał zaufanego podmiotu, nie mogłem znaleźć rozsądnego sposobu ochrony autorstwa bez zaufanego podmiotu.
Fagner Brack,
39

W dawnych czasach naukowcy publikowali anagramy swojej pracy, aby móc powiedzieć „pomyślałem o tym pomyśle”. (spójrz na sekcje „historia” i „ustalenie priorytetu”) Chodzi o to, że chcieli mieć możliwość uznania tego, ale także dać innym naukowcom publikację wyników, jeśli mieli inne pomysły, nie opierając się na oryginalnym pomyśle .

Na przykład Gallileo opublikował SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS, który był anagramem altissimvm planetam tergeminvm obseravi, który przetłumaczony z łaciny brzmi: „Obserwowałem najwyższą planetę w potrójnym kształcie”. Mylił się - Saturn („najwyższa” znana wówczas planeta) nie jest zbudowany z trzech części. Pięćdziesiąt lat później Christiaan Huygens opublikował AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU, który po łacinie to Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam inclinato to przetłumaczone na płaski pierścień, który go nie dotyka i jest nachylony w kierunku ekliptyki. ”

Chociaż są to obecnie interesujące fragmenty historyczne, pokazują one ważną koncepcję w tamtym czasie - dostarczenie „skrótu”, który można łatwo powiedzieć „ten skrót koduje ten tekst”. Łatwo jest przejść od znanego tekstu do anagramu lub skrótu, ale trudno jest zrozumieć, co to jest, jeśli nie wiesz, co to jest.

Dzięki nowoczesnym mechanikom mamy inne sposoby wykonywania skrótów. Wiele z nich jest bardzo ściśle związanych z kryptografią. Istnieje kryptograficzna funkcja skrótu . Chodzi o to, że nadal łatwo jest przejść od tekstu, który znasz, do skrótu, ale trudno jest przejść od skrótu do tekstu, którego nie znasz.

I tak, jeśli masz program można opublikować skrót programu, który robi coś i wtedy, gdy gotowe, aby je ujawnić (ewentualnie po poprawkach firmy IT lub czas później), można publikować rzeczywisty kod i wszyscy widzą, że tak, ten kod pasuje do tego skrótu.


źródło
1
Bardzo fajna odrobina historii na temat używania skrótu przed erą cyfrową :)
mika
30

Możesz to zrobić całkiem łatwo. Jeśli masz zwykły tekst text, tajny klucz Si klucz publiczny, Pto robisz to S(text)i dostajesz cipher.

Teraz możesz publikować ciphera Pjednak nie S. Dlatego każdy może odszyfrować cipherza Ppomocą P(cipher). Jeśli chcesz teraz udowodnić, że jesteś tym, który stworzył cipher(a zatem i oryginał text), możesz albo opublikować S, albo - jeśli nie chcesz, żeby ktokolwiek wiedział, że S - możesz stworzyć inny S("I was really the one who found the text first")i opublikować go. Ponieważ nie ma możliwości stworzenia szyfru, który jest odszyfrowany, P(cipher)co powoduje powstanie znaczącego tekstu.

W ten sposób możesz to udowodnić.

walenteria
źródło
13
Jak to pomaga? Każdy, kto może odszyfrować szyfr, może po prostu ponownie opublikować w ten sam sposób swój własny tajny klucz, a ty nie masz możliwości udowodnienia, która strona opublikowała jako pierwsza, a która skopiowała od drugiej, nie ufając jakimś innym stronom dotyczącym czasu publikacji.
R ..
2
@R .. Treści w Internecie zazwyczaj są powiązane z datą (np. Posty na forum). Jeśli wiele osób twierdzi, że jest oryginalnymi wynalazcami / odkrywcami, wystarczy sprawdzić daty.
Paul
2
Możesz również dołączyć część tekstu jako zwykłego tekstu, który jest zaszyfrowany za pomocą P (treść). Prawdziwy właściciel S będzie w stanie odszyfrować te dodatkowe informacje, podczas gdy reposter nie będzie w stanie tego zrobić.
Dancrumb,
10
@Paul: Ale szyfrowanie nie ma znaczenia. Jest to równoważne z opublikowaniem treści w postaci zwykłego tekstu i poleganiem na dacie.
R ..
2
@R .. chodzi o to, że bez wiedzy Sbardzo trudno jest wymyślić cipher2taki tekst , który P(cipher2)nie byłby bełkotem. Z Snim jest trywialne, a S("the text you want")= cipher2. Odwrotne sprowadza się do pokonania metody kryptograficznej.
congusbongus
21

Możliwe jest haszowanie danych, które chcesz datować, i przekształcenie ich w adres Bitcoin. Nazywa się to zaufanym znacznikiem czasu . Dokonując niewielkiej płatności (satoshi lub 0,00000001 BTC), płatność jest przechowywana w blockchain wraz z adresem, na który zapłaciłeś.

Ponieważ w łańcuchu bloków Bitcoin przechowywany jest tylko skrót, nikt nie może powiedzieć, jakie dane zapisałeś, ale biorąc pod uwagę dane z wcześniej zaszyfrowanego, możesz udowodnić, że dane zostały utworzone przed blokiem zawierającym płatność na ten adres.

JoelFan
źródło
1

Bardzo prosty sposób na ustalenie, że jesteś pierwszym, który coś opublikował, bez ujawnienia, kim jesteś od razu, ale masz możliwość zrobienia tego później:

  1. Opublikuj go w znanym źródle publicznym (tam każdy zobaczy, że go opublikowałeś)
  2. W tej publikacji dodaj wiersz: Pierwotnie opublikowany dd / mm / rrrr przez właściciela [email protected]

Nie musisz niczego szyfrować.

Oczywiście istnieje szansa, że ​​nie chcesz jeszcze publikować swoich wyników. W takim przypadku musisz zaszyfrować wszystko oprócz linii z adresem e-mail. Jednak teraz może być trudniej opublikować to na znanej stronie.

Dennis Jaheruddin
źródło
4
Co się stanie, jeśli „odnowiona witryna” zmieni datę lub e-mail publikacji? Może się to zdarzyć z powodu złych intencji, nawet jeśli witryna zostanie zhakowana. (Ok, jestem tutaj dość paranoikiem, ale o to chodzi. Jeśli istnieje sposób, w jaki ktoś inny niż oryginalny autor zmienia dowód, to twoje rozwiązanie nie jest tak naprawdę deterministyczne). Nie chodzi tu o poleganie wyłącznie na ludzkich świadkach, ale o to, że każdy może w określony sposób potwierdzić autorstwo bez konieczności „publikowania” lub „opatentowywania” treści przez zaufany podmiot.
Fagner Brack
@FagnerBrack, arxiv.org okazał wystarczające dla prawie prac naukowych 1m.
Brian S,
1
Czy mogę umieścić tam tylko coś, czy powinien przejść przez przegląd i będzie autoryzowany tylko pod określonymi ograniczeniami? To pytanie nie jest skierowane bezpośrednio do prac naukowych, dotyczy możliwości osiągnięcia tego samego wyniku (lub odpowiednika) w sposób programowy.
Fagner Brack,
2
Używaj archive.org do publikowania - podobnie jak arXiv, jest to bardzo trwałe i zaufane repozytorium, ale w przeciwieństwie do arXiv można tam bezpłatnie przesyłać treści. Znacznik czasu na cokolwiek, co tam opublikujesz, będzie uważany za bardzo niezawodny.
Steve Midgley,
1
Zgadzam się, sława jest jedynym sposobem na szybkie i niezawodne rozpowszechnianie wiedzy.
bigstones
0

To inne spojrzenie na odpowiedź walentynek.

Oto, jak zrobiłbyś to za pomocą PGP:

Wygeneruj parę kluczy publiczny / prywatny.

  1. Trzymasz klucz prywatny i upewniasz się, że pozostaje w tajemnicy.
  2. Zaszyfrujesz swój pomysł za pomocą klucza publicznego: P (pomysł)
  3. Umieszczasz P (pomysł) w miejscu, które jest zaufane (nie przez ciebie, ale ogólnie) i będzie rejestrować czas.
  4. Gdy musisz najpierw udowodnić, że wpadłeś na pomysł, otrzymujesz znacznik czasu od momentu zapisania danych i odszyfrowujesz je za pomocą tajnego klucza. S (P (idea)) => idea

Ta metoda nie wymaga zwolnienia twojego tajnego klucza, co ogólnie jest złym pomysłem. To prawda, że ​​zawsze możesz stworzyć nową parę kluczy PGP - nic nie kosztuje, ale nie powinieneś lekkomyślnie rozdawać tajnych kluczy, jeśli chcesz być wiarygodny.

Najtrudniejszą częścią jest udowodnienie czasu, ale jeśli chodzi o udokumentowanie luki w zabezpieczeniach, nie potrzebujemy w 100% kuloodpornego i weryfikowalnego rozwiązania w sądzie, potrzebujemy po prostu czegoś, co jest „wystarczająco dobre”. Dzienniki dostawcy pamięci masowej w chmurze (Dropbox, Rackspace, Google itp.) Są prawdopodobnie wystarczająco dobre, zakładając, że wdrażają bezpieczną usługę.

Warto również zauważyć, że jako pierwszy pomysł i znacznik czasu nigdy nie oznaczał, że byłeś pierwszą osobą, która pomyślała o tym pomyśle. Jeśli ktoś pomyślał o tym przed tobą, ale nigdy nie zarejestrował pomysłu za pomocą mechanizmu znacznika czasu, to nie może udowodnić, że zrobił to przed tobą. Tak więc, jeśli próbujemy dowiedzieć się, kto to zrobił jako pierwszy, i wiemy tylko, kiedy to wymyśliłeś, to musimy założyć, że wymyśliłeś to jako pierwszy (druga osoba może wyrzucać kłamstwa).

Shaz
źródło
-1

Ugh, tak wielu z tych odpowiedzi nie ma sensu.

1) To, co haker zrobił, nie miało nic wspólnego z szyfrowaniem.

2) To, co haker zrobił, nie miało nic wspólnego z czasem (znacznik czasu itp.).

Haker zrobił Publicznie podpisać dokument wydania. Kiedy podpisujesz coś przez PGP (e-mail, dokument słowny itp.), Tworzysz skrót, który jest sumą skrótu podpisywanego dokumentu i twojego prywatnego klucza. Teraz, aby udowodnić, że jesteś twórcą dokumentu, wystarczy „pokazać” klucz prywatny, ponieważ prawdopodobnie tylko autor go zna. Z kryptograficznego punktu widzenia możesz „pokazać”, że jesteś w posiadaniu klucza prywatnego, bez pokazywania samego klucza.

W rezultacie podpisał dokument cyfrowo. Jedyną osobą, która może skopiować ten podpis, jest ktoś z jego kluczem prywatnym. Nie ma nic do powiedzenia, że ​​dokument powstał dzisiaj, czy wczoraj, lub był to pierwszy przypadek jego istnienia. Żadna liczba znaczników czasu mieszania lub cokolwiek to zmieni.

Jedynym sposobem na cyfrowe podpisanie czegoś W CZASIE jest użycie blockchain a la bitcoin. Nie byłoby cyfrowej waluty bez weryfikacji czasu - fakt, że osoba A wysłała pieniądze do osoby B, jest nieistotny, chyba że wiemy, kiedy. Nie możesz iść do sklepu z kawałkiem papieru i powiedzieć: „moja mama wysłała mi kiedyś 100 $. Chciałbym kupić chleb”, ponieważ pokwitowanie transakcji nie oznacza, że ​​pieniądze nadal należą do ciebie. Być może w międzyczasie dałeś to komuś innemu. Blockchain rozwiązuje ten problem, zachęcając dużą liczbę osób (górników bitcoinów), aby wszyscy zgodzili się co do faktu, że transakcja nastąpiła w określonym czasie (a następnie zapisując ten czas w blockchainie na zawsze).

JJ
źródło
2
wydaje się, że nie oferuje to nic istotnego w porównaniu z punktami uzyskanymi i wyjaśnionymi w poprzednich 6 odpowiedziach (w szczególności wiele napisano o zaufanym znaczniku czasu, a podejście bitcoin zostało już przedstawione)
gnat