Co to jest szyfrowanie homomorficzne?

Pojęcie znane jako szyfrowanie homomorficzne, w którym można manipulować tekstem zaszyfrowanym i pracować z nim bez odszyfrowywania, zostało po raz pierwszy przedstawione społeczności naukowej w 1978 r. przez Ronalda Rivesta, Leonarda Adlemana i Michaela Dertouzosa jako homomorfizm prywatności. Semantycznie bezpieczny schemat szyfrowania homomorficznego został opracowany i zaproponowany przez Shafi Goldwassera i Silvio Micali w 1982 roku. W 2009 roku Craig Gentry udowodnił, że możliwy jest całkowicie homomorficzny schemat szyfrowania.

Rivest, Aldeman i Dertouzos rozwinęli swoją teorię w oparciu o fakt, że istniejące systemy bezpieczeństwa i szyfrowania poważnie ograniczają możliwość robienia czegokolwiek z danymi po ich zaszyfrowaniu i przekształceniu w tekst zaszyfrowany. Bez opracowania rozwiązania homomorficznego wysyłanie i odbieranie danych jest zasadniczo jedyną funkcją, którą można wykonać za pomocą zaszyfrowanych danych. Największe obawy budził poziom mocy obliczeniowej niezbędny do przetworzenia zaszyfrowanego żądania na zaszyfrowanych danych oraz to, czy taki schemat szyfrowania może być wystarczająco bezpieczny do praktycznego zastosowania.

Wraz z pojawieniem się i nieustanną ekspansją przetwarzania w chmurze, wymyślenie realnej metody szyfrowania homomorficznego ma kluczowe znaczenie. W przeciwnym razie ryzyko jest zbyt duże, aby powierzyć dane dostawcy usług przetwarzania w chmurze, gdy dane te muszą pozostać bezpieczne. Jeśli dostawca ma w jakikolwiek sposób dostęp do danych w formie odszyfrowanej, dane mogą zbyt łatwo zostać naruszone. Gentry udowodnił, że jest to realna teoria, chociaż ilość czasu, jaką zajmują obliczenia i potencjalna łatwość, z jaką można złamać szyfrowanie, budzą obawy.

System Gentry’ego przedstawia sposób tworzenia schematu szyfrowania, który umożliwi bezpieczne przechowywanie danych w środowisku chmury, w którym właściciel danych może wykorzystać moc obliczeniową dostawcy chmury do wykonywania funkcji na trwale zaszyfrowanych danych. Robi to w trzyetapowym procesie. Schemat szyfrowania jest skonstruowany tak, że jest „ładowalny” lub składa się z nieco homomorficznego schematu szyfrowania, który może działać z własnym obwodem deszyfrowania. Następnie budowany jest schemat szyfrowania z kluczem publicznym, który można prawie uruchomić za pomocą klucza publicznego, przy użyciu idealnych krat. Wreszcie schematy zostały zmodyfikowane tak, aby były bardziej uproszczone, umożliwiając ich ładowanie przy zachowaniu ich głębi.

Ta metoda tworzy całkowicie homomorficzny schemat szyfrowania, ale pozostaje stosunkowo niepraktyczna. Szyfrowanie homomorficzne ewoluowało, aby być w większości zabezpieczone przed wybranymi atakami z użyciem zwykłego tekstu, ale zabezpieczenie przed wybranymi atakami z szyfrogramem pozostaje problemem. Oprócz kwestii bezpieczeństwa, w pełni homomorficzne schematy są tak duże i złożone, że czynnik czasu wykluczył ich użycie w większości aplikacji. W pewnym stopniu homomorficzne systemy szyfrowania zostały opracowane, aby uwzględnić przynajmniej czynnik czasu, używając tylko najbardziej wydajnych części całkowicie homomorficznego schematu szyfrowania.