Pytanie:
Wykorzystanie FHE w zaciemnianiu?
perror
2013-03-20 14:35:02 UTC
view on stackexchange narkive permalink
Wykorzystanie FHE w zaciemnianiu?
Dość powiązane: [Jak konstruować zaszyfrowane funkcje (z danymi publicznymi lub prywatnymi)?] (Http://crypto.stackexchange.com/questions/1710/how-to-construct-encrypted-functions-with-either-public- lub-private-data)
Trzy odpowiedzi:
Jeremy Salwen
2013-04-17 17:23:22 UTC
view on stackexchange narkive permalink

W pełni homomorficzne szyfrowanie nie jest tak dobre, jak mogłoby się wydawać w przypadku zaciemniania kodu. Chociaż prawdą jest, że można by wykonywać obliczenia na zaszyfrowanej maszynie Turinga, korzyści z zaciemniania zamkniętego systemu nie są tak duże, po prostu dlatego, że każde wejście lub wyjście systemu musi być zaszyfrowane lub odszyfrowane. Zatem jakakolwiek inżynieria wsteczna programu rozpoczęłaby się po prostu od wyodrębnienia kluczy szyfrujących z tego kodu szyfrującego lub deszyfrującego.

Korzyści stają się znaczące tylko wtedy, gdy IO jest zaszyfrowane i odszyfrowane przez stronę trzecią, w którym to przypadku jest niemożliwe do odszyfrowania kodu bez uzyskania dostępu do tej strony trzeciej. Więc w sytuacjach, w których chcesz zaciemnić czyste obliczenia, możesz użyć szyfrowania homomorficznego, aby uruchomić w pełni nieprzejrzysty botnet. Na przykład, kontroler mógłby wysyłać hashe do cracków lub bitcoinów do kopania, a patrząc na klienta, nie byłoby możliwe wiedzieć, jakie kody są uruchamiane bez informacji z zewnątrz.

Oczywiście kluczowa część chodzi o to, że klucze szyfrowania / deszyfrowania są przechowywane zdalnie, a zatem nie można ich wyodrębnić z zaciemnionego programu.

Andrew
2013-03-20 16:54:12 UTC
view on stackexchange narkive permalink

Już miałem powiedzieć „to brzmi jak coś, co zespół INSIGHT chce zatrudnić stażystę do zbadania tego lata”, ale potem spojrzałem na twoją nazwę użytkownika i lokalizację :)

Myślę, że to na pytanie bardzo trudno odpowiedzieć jednoznacznie, ponieważ poszukujesz mechanizmu, który skutecznie spowolniłby ręczną analizę. I tak przedstawię to, co uważam za odpowiedź.

Wygląda na to, że masz dwie opcje wysokiego poziomu: „zaszyfruj kod programu” lub „zaszyfruj dane programu”. Szyfrowanie danych programu wydaje się mniej wydajne, ponieważ analiza ręczna może nadal zebrać wiele wskazówek dotyczących programu, obserwując jego strukturę, więc wydaje się, że to, co chciałbyś zrobić, aby spowolnić analizę, to odmówić analitykowi możliwości zobaczenia struktury programu.

Co by było, gdybyś przekształcił program w język kodu bajtowego i interpreter, podobnie do tego, co robią VMProtect i inne. Następnie szyfrujesz bufor kodu bajtowego i używasz FHE, aby uzyskać dostęp do bufora podczas wykonywania kodu.

Ach, zauważyłeś mnie! :-) Właściwie nie znaleźliśmy odpowiedniego kandydata na pracę magisterską, więc będę musiał sam popracować nad tym tematem i staram się wyłapać kilka pomysłów, ale myślę też, że FHE (i kryptografia w ogólnie) należy wziąć pod uwagę przy zaciemnianiu. Problem z kryptografem polega na tym, że mają tendencję do ekstremizmu w swoim podejściu. Jest więc miejsce, aby wyobrazić sobie ścieżkę pośrednią, w której potrzebujesz silnej, ale nie doskonałej ochrony przed wyciekiem informacji. Ale bardzo się zgadzam z twoimi punktami tutaj.
StefanS
2016-05-11 17:06:46 UTC
view on stackexchange narkive permalink

Co to jest szyfrowanie funkcjonalne dla wszystkich obwodów i zaciemnienie nierozróżnialności dla wszystkich obwodów?

  1. Proponowane zaciemnienie nierozróżnialności dla obwodów NC1, dla których zabezpieczenia są oparte na tzw. Jigsaw Puzzles (uproszczony wariant map wieloliniowych).
  2. Sparuj wkład w 1 z w pełni homomorficznym szyfrowaniem i uzyskasz zaciemnienie nierozróżnialności dla wszystkich obwodów.
  3. Połącz 2 z szyfrowaniem za pomocą klucza publicznego i nieinteraktywnymi dowodami wiedzy zerowej oraz funkcjonalnym szyfrowaniem dla wszystkich obwodów . Uważam, że przed tym funkcjonalne szyfrowanie wszystkich obwodów nie było możliwe.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...