Centrum badawcze firmy IBM udostępniło na licencji GPL bibliotekę HElib służącą do szyfrowania homomorficznego – rewolucyjnego sposobu zabezpieczania zbiorów danych, który pozwala przeprowadzać operacje bezpośrednio na szyfrogramach.
Szyfrowanie homomorficzne to sposób zabezpieczania informacji, w którym można operować na szyfrogramie (zaszyfrowanych danych) bez konieczności przekształcania go do tekstu jawnego. Dlaczego jest ono uznawane za rewolucyjne?
Wyobraźmy sobie sytuację, w której musimy ukrywać zawartość poszczególnych rekordów bazy danych, aby nie był ich w stanie odczytać potencjalny intruz ani nawet jej administrator. Z drugiej strony chcemy, aby przetwarzanie danych odbywało się możliwie blisko miejsca ich składowania, żeby nie tracić czasu na przesyłanie informacji między bazą a środowiskiem obliczeniowym.
Problem
Wspomniane wyżej założenia można zrealizować korzystając z szyfrowania symetrycznego lub asymetrycznego, jednak pod warunkiem, że system przetwarzający i baza danych działają w obrębie tej samej infrastruktury, a poza tym obdarzone są zaufaniem, które wynika z wiary w dobre intencje operatorów tych systemów i producentów sprzętu.
Przyczyną problemu jest tu w istocie brak możliwości przetwarzania danych w niezaufanym miejscu, np. w chmurze obliczeniowej, bazie danych czy w innym komponencie, w stosunku do którego nie ma pewności co do ochrony integralności i poufności informacji.
W ostateczności nawet elementy urządzeń elektronicznych (procesory główne komputerów, procesory kontrolerów napędów dyskowych i procesory przetwarzające grafikę) nie mogą być uznane za urządzenia w pełni bezpieczne, ponieważ już na etapie produkcji można w nich umieścić backdoora. Co to w praktyce oznacza?
Nie ma dziś chmur obliczeniowych
gwarantujących poufność.
Można wybrać albo chmurę, która wykona obliczenia, ale wymaga dostępu do danych w postaci jawnej, albo taką, która pozwoli przechowywać dane w formie zaszyfrowanej, lecz nie będzie potrafiła przeprowadzać na nich kalkulacji.
Przyznajmy, że jest to spore ograniczenie, które może być hamulcem niektórych przedsięwzięć, a w konsekwencji mieć ujemny wpływ na rozwój sektora nowych technologii jako całości. Niektórzy klienci nie mogą sobie pozwolić na to, aby obdarzyć zaufaniem zewnętrznego operatora, przekazując mu wszystkie dane, jednak potrzebują dodatkowej infrastruktury, której sami nie posiadają.
FHE
Przez lata badacze zajmujący się kryptografią próbowali rozwiązać opisany problem i skonstruować kryptosystem bazujący na algorytmach pozwalających operować na zaszyfrowanych danych bez znajomości ich tekstu jawnego. W roku 2009 Craig Gentry na sympozjum ACM dotyczącym teorii obliczeń przedstawił pracę zatytułowaną „Fully Homomorphic Encryption Using Ideal Lattices”. W ramach prac wspieranych przez Centrum Badawcze im. Thomasa J. Watsona (IBM) i Uniwersytet Stanforda udało mu się stworzyć pierwszą działającą implementację w pełni homomorficznego algorytmu szyfrującego (ang. Fully Homomorphic Encryption, FHE). Aby algorytm zasłużył na miano w pełni homomorficznego, musi obsługiwać zarówno operacje dodawania jak i mnożenia bez konieczności „otwierania” szyfrogramu.
Zaproponowany przez badacza system kryptograficzny bazuje na kryptografii opartej na tzw. kratach (ang. lattices) – matematycznych strukturach, które da się opisać algebraicznie lub jako częściowe porządki – a dokładniej na kratach doskonałych (ang. ideal lattices).
HElib
Głównym problemem omawianej implementacji FHE była i wciąż jest wydajność. W pracach nad usprawnieniem dzieła Gentry’ego i poprawą tego stanu rzeczy pracują teraz Victor Shoup i Shai Halevi ze wspomnianego ośrodka badawczego firmy IBM. Postanowili oni podzielić się kodem źródłowym ze społecznością i napisaną w języku C++ bibliotekę szyfrującą HElib wydali jako wolne oprogramowanie (na warunkach określonych licencją GPL). Każdy zainteresowany może ją pobrać, przeanalizować, użyć jej, a co ważniejsze wprowadzić poprawki i usprawnienia.
Szyfrowanie homomorficzne złote czasy ma jeszcze przed sobą, a prawdziwa rewolucja związana z zabezpieczaniem danych tą metodą nadejdzie, gdy tylko pojawią się sprzętowe szyfratory i/lub odpowiednie instrukcje procesorów, które przeprowadzą najbardziej żmudne obliczenia. Również w samej implementacji jest jeszcze trochę miejsca na optymalizacje pod względem czasu obliczeń.
Konsekwencje
Upowszechnienie homomorficznego szyfrowania danych pozwoli uniezależnić algorytmy szyfrujące od sprzętu, a tym samym tworzyć bezpieczne mechanizmy przetwarzania w chmurze. Oznacza to istotne zwiększenie wolności w domenie zabezpieczania informacji, w tym ochrony prywatności. Warto wspomnieć, że ośrodki badawcze dużych koncernów z branży IT pracują już nad praktycznym wykorzystaniem szyfrowania homomorficznego do obliczeń chmurowych.
Poza chmurami obliczeniowymi FHE możne znaleźć zastosowanie również w głosowaniu elektronicznym (ang. e‑voting), eliminując problem niezdefiniowanego poziomu bezpieczeństwa komputerów wyborczych czy braku gwarancji anonimowości (w przypadku głosowania przez Internet). W praktyce rozwiązana zostanie (na poziomie technicznym) kwestia weryfikacji przebiegu wyborów z głosowaniem elektronicznym bez pogwałcenia jego tajności.
Audycja
Cezary Łasiczka z radia TOK FM przygotował wyczerpującą audycję poświęconą tematowi, w której rozmawia z profesorem Arkadiuszem Orłowskim z SGGW. W programie pojawiło się sporo precyzyjnych wyjaśnień i przystępnych analogii tłumaczących działanie popularnych sposobów szyfrowania, w tym szyfrowania homomorficznego.
Zachęcamy do posłuchania!
Zobacz także
HElib, kod źródłowy biblioteki w serwisie GitHub
Ideal lattice cryptography, opis w Wikipedii
Fully Homomorphic Encryption Using Ideal Lattices, kopia publikacji C. Gentry’ego na stronach Carnegie Mellon University
Can Homomorphic Encryption be Practical?, wpis w blogu Microsoft Research