Firma Google opublikowała otwarty zestaw bibliotek i narzędzi z implementacją systemu w pełni homomorficznego szyfrowania, który umożliwia przetwarzanie danych w postaci zaszyfrowanej, bez ich ujawniania w formie jawnej na żadnym etapie obliczeń. Zestaw narzędzi pozwala tworzyć programy do poufnych obliczeń, zdolne do pracy na danych bez ich odszyfrowywania, w tym do wykonywania operacji matematycznych i prostych operacji na ciągach znaków na zaszyfrowanych danych. Kod projektu został napisany w języku C++ i jest udostępniany na licencji Apache 2.0.
W przeciwieństwie do szyfrowania end-to-end, szyfrowanie homomorficzne oprócz ochrony transmisji danych umożliwia również ich przetwarzanie bez konieczności odszyfrowywania. Pełna homomorficzność oznacza możliwość wykonywania operacji dodawania i mnożenia na zaszyfrowanych danych, co pozwala realizować dowolne obliczenia. Wynikiem jest zaszyfrowany rezultat, odpowiadający zaszyfrowaniu wyniku takich samych operacji wykonanych na danych źródłowych.
Praca z danymi w przypadku szyfrowania homomorficznego sprowadza się do tego, że użytkownik szyfruje dane i bez ujawniania kluczy przekazuje je do przetworzenia zewnętrznej usłudze. Taka usługa wykonuje zadeklarowane obliczenia i generuje zaszyfrowany wynik, nie mając możliwości ustalenia, na jakich dokładnie danych pracuje. Użytkownik za pomocą swoich kluczy odszyfrowuje otrzymane dane i uzyskuje wynik w postaci jawnej.

Wśród zastosowań szyfrowania homomorficznego wymienia się tworzenie usług chmurowych do poufnych obliczeń, wdrażanie systemów głosowania elektronicznego, budowę anonimizowanych protokołów routingu, przetwarzanie zapytań na zaszyfrowanych danych w systemach DBMS oraz poufne trenowanie systemów uczenia maszynowego.
Na przykład szyfrowanie homomorficzne może znaleźć zastosowanie w aplikacjach medycznych, które będą otrzymywać poufne informacje od pacjentów w postaci zaszyfrowanej i umożliwią personelowi medycznemu prowadzenie analiz oraz wykrywanie odchyleń bez odszyfrowywania danych. Szyfrowanie homomorficzne może również pomóc w badaniach analizujących związek między chorobami a określonymi mutacjami genetycznymi, gdzie konieczna jest analiza tysięcy próbek informacji genetycznej.
Cechą wyróżniającą opublikowany zestaw narzędzi jest możliwość tworzenia programów do przetwarzania zaszyfrowanych danych z użyciem typowych metod programowania w języku C++. Za pomocą udostępnionego transpilerа program w C++ jest przekształcany do specjalnego dialektu FHE-C++, zdolnego do pracy na zaszyfrowanych danych.

Źródło: opennet.ru
