Czy można utworzyć „Time Capsule” przy użyciu szyfrowania?


14

Chcę stworzyć cyfrową kapsułę czasu, która pozostanie nieczytelna przez pewien czas, a następnie stanie się czytelna. Nie chcę polegać na usługach zewnętrznych, aby na przykład zachować klucz w tajemnicy, a następnie ujawnić go w wymaganym czasie. czy to możliwe? Jeśli nie, to czy istnieje jakiś dowód, że tak nie jest?

Jedna strategia opierałaby się na prognozach przyszłych możliwości obliczeniowych, ale jest to niewiarygodne i zakłada założenia, ile zasobów zostanie zastosowanych do zadania.


1
Jeśli masz pewność, że urządzenie nie zostanie naruszone, możesz użyć (lekko) radioaktywnych składników o znanym okresie półtrwania, więc możesz przyznać dostęp tylko wtedy, gdy radioaktywność spadła wystarczająco.
Raphael

Odpowiedzi:


5

Problem ten znany jest jako kryptografia o czasowym wydaniu . Niektóre referencje / wprowadzenie zobacz:

Naszą motywacją jest pojęcie „szyfrowania w określonym czasie”, w którym celem jest zaszyfrowanie wiadomości, aby nikt, nawet nadawca, nie mógł jej odszyfrować, dopóki nie upłynie określony czas. Celem jest „przesłanie informacji w przyszłość” ...


7
Czy mógłbyś przynajmniej streścić papiery?
sick

5
W artykułach dokonano dogłębnej analizy dwóch „naturalnych” podejść: albo użyj zaufanej strony trzeciej, albo wymagaj od odbiornika wykonania obliczeń, które nie są dobrze równoległe i zajmują w przybliżeniu odpowiednią ilość czasu.
a3nm

1

Wpadłem na częściową odpowiedź, ale nie ściśle mówiąc, jak stwierdzono. Podejrzewam, że może być tak blisko, jak to możliwe, ale nie jestem pewien.

Najpierw kodujemy kapsułkę kluczem wymaganym do odszyfrowania.

Nie wiem, jak ominąć posiadanie jakiegoś uprawnienia do trzymania klucza, ale można rozpowszechniać tę funkcję. Jeśli podzielimy klucz na n kawałków, możemy poprosić n władz o zatrzymanie kawałków. Następnie w odpowiednim czasie mogą opublikować swoje utwory, aby umożliwić rekonstrukcję klucza.

To rozwiązanie jest podatne na niedostępność któregokolwiek z n organów, ale stosując kodowanie m-out-n, możemy rozpowszechniać fragmenty do n uprawnień, ale tylko m musi opublikować swoje fragmenty.

Nawet w tym przypadku pewna liczba organów z dokładnym zegarem musi zapewnić prawidłową usługę zarządzania kluczami. Czy można osłabić to założenie poza sugerowanym powyżej m-out-n-n?


1

Myślę, że jest to realne podejście:

Wygeneruj zestaw kluczy, używając preferowanego schematu szyfrowania, używając losowo generowanego hasła. Sztuką jest hasło. Klucz jest znany, ale utworzymy kapsułę czasu za pomocą hasła.

Wybierz hasło takie, że jeśli utworzymy z niego solony skrót, obliczenie hasła przy użyciu znanej soli i skrótu zajmie około "n" lat przy użyciu dzisiejszej mocy obliczeniowej. Jeśli chcemy stworzyć kapsułę na 20 lat, oszacuj naszą moc obliczeniową za 20 lat i utwórz skrót, który będzie obliczany za miesiąc przez użytkownika lub superkomputer za 20 lat, w zależności od celu dla kapsułki. Wyobraź sobie, że przez 20 lat kapsuła czasowa będzie odszyfrowywana przez megakorp za 15 lat lub użytkownika za 20.

Szyfruj dane przy użyciu kluczy z losowym hasłem, przechowuj klucz i hasło z hashowaniem i nie przechowuj rzeczywistego hasła. Teraz zachowaj dane, a w przyszłości będziesz mieć moc obliczeniową do odzyskania danych!


0

Nie jestem kryptografem, tylko inżynierem, więc moje rozwiązanie jest bardziej fizyczne niż obliczeniowe, ale i tak spróbuję. Proponuję następującą procedurę:

  1. Wygeneruj asymetryczną parę kluczy
  2. Zaszyfruj wiadomość tekstową za pomocą klucza publicznego
  3. Przechowuj klucz prywatny w nietrwałej pamięci mikrokontrolera i spraw, aby wyprowadzał klucz dopiero po upływie określonego czasu.
  4. Zniszcz wszystkie pozostałe kopie klucza prywatnego
  5. Połącz szyfrogram i mikrokontroler razem i poczekaj.

Powstaje zatem oczywiste pytanie: po co zawracać sobie głowę szyfrowaniem, gdy można po prostu zapisać wiadomość tekstową w układzie scalonym? Odpowiedzią na to jest to, że w ten sposób tekst jawny może być dowolnie długi, bez naruszania pojemności pamięci układu, ponieważ jest tam przechowywany tylko klucz o stałej długości. Ponadto możesz zachować kopię klucza publicznego, generując z nim więcej wiadomości, które następnie są odblokowywane w tym samym czasie. Ale to jest o tym.

Aby uczynić to jeszcze bardziej bezpiecznym, możesz podłączyć czujnik światła do mikroukładu i zamknąć zestaw w nieprzepuszczalnej dla światła obudowie (lub mieć przełącznik przymocowany do drzwi lub inny mechanizm wykrywania manipulacji), w którym wystawienie czujnika na światło spowoduje usunięcie klucza. Zapobiega to uzyskaniu klucza przy użyciu metod inwazyjnych, takich jak trawienie. Niektóre układy mają również swoje struktury krzemowe ustrukturyzowane w taki sposób, aby prawie niemożliwe było odczytanie inwazyjne, poprzez umieszczenie innych niezbędnych obwodów nad pamięcią, aby zasłonić poszczególne bity.


Jeśli jest zegar wewnętrzny, ktoś może go przyspieszyć lub usunąć. Pod żadnym względem nie jest to dobre.
Zły

@ Evil Myślałem o tym i nie jest to tak naprawdę problem, ponieważ układ może być podkręcony tylko tyle, zanim stanie się niestabilny, więc zrobienie tego ryzykowałoby utratą klucza. Na przykład większość 8-bitowych AVR będzie działać do 20 MHz, może zostać przetaktowana do około 25 MHz, ale powyżej tej szansa na awarię znacznie wzrasta.
programagor

1
Wymyślasz sprzęt odporny na manipulacje ... coś, co jest trudne do zrobienia, szczególnie w długich skalach czasowych.
DW
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.